Breaking Out

This is usually my go to game when teaching myself a new language or media library.

Virgin Ritual

Never seen that one before and I'm not sure how to fix it. I use a library called cx_freeze to bundle Python packages into an executable since that's sort of the easiest way to distribute a Python project to most people. The executable is inside the lib folder--the '.lnk' is just a windows shortcut to that, if you're wondering what that is, but that's not information that will help you run the software.

Something you can try is downloading Python 3.4.4, which you'll need to install first, and then the Pygame library, and then my source code. I suggest getting the 32-bit version of Python if it prompts you, and then make sure you get the corresponding Pygame package (1.9.2a, win32-py3.4, sixth link down... amd64 if you installed 64-bit Python, which is the third link).


I've uploaded the source, which is available on the downloads page. You can run the scripts directly and that should work, assuming I'm not overlooking any other dependencies.

For the source, you'll want to execute main.py in the scripts folder.

And feel free to tinker with and do whatever you want with the source, but I wouldn't use it as a great reference for good habits because it's hacked together for a game jam and does a lot of things I normally wouldn't recommend doing. You can also modify the level if you've got Tiled Map Editor.

Shadows of Adam

Really didn't think your crowdfund would succeed, but it made a pretty strong push in the end. Was it mostly new backers or did the existing ones bump up their contribution?


Good update. First odd thing I noticed is my thief attempted to use a spell when they have an empty spellbook. Now that you have the character sprite lerping from tile-to-tile, you could also get rid of the pause in between steps.

Battledome Alpha

I implemented saving Friday afternoon. It was surprisingly simple... Java has come a long way in file operations since v1.1! I just made serializable classes and used basic output steams to save your battler to a file for now. I'll upload the latest version soon.

I actually avoid serializing objects. It gets really messy when I make updates to a game and those objects no longer match the current objects in the game. It's much safer to save straight data and build new objects from those.

Battledome Alpha

For saving I just make flat text files. I don't bother encrypting or anything because I don't care if somebody cheats. But this is for single player games... It sounds like you plan on putting this online. If you plan on saving everything server-side, then a database would be a lot cleaner to keep track of all the players. JSON works well.

Battledome Alpha

For turn order it just depends on what you want. I've done ATB like Final Fantasy 4-9, turn-based like Dragon Quest, and turn-based like Final Fantasy Tactics. Basically you just need to decide if you want speed to make entities act first or if you want speed to make entities act more frequently.

I built ability-selection into the abilities themselves. First of all, abilities have a priority attribute, such that the highest priority ability is attempted first. After that, abilities have a conditions attribute, which is just an array of functions that must all return True for it to execute. The functions can be anything, like checking for a cooldown, if there are any status conditions in play, if there are multiple enemies, if the actor's HP is below a certain value, etc, etc. The game this was for was about collecting abilities, so choosing abilities for -when- they'll be used was equally important to what the ability actually did. If your game has fewer abilities, you might want to make the conditions/priority adjustable by the player.

My damage formula just looks like this:
damage = power * modifier * (100 / (25 + reducer))

The Power being the strength of the ability, like 1.0 or 1.5 or 0.5. Modifier being the stat that increases it: attack, magic, whatever. Reducer being the target stat that diminishes it: defense, resist, whatever. You can modify the 100 or 25 in that formula to whatever feels right, but it creates a nice curve. Straight "damage = offense - defense" works just fine too, but it depends on what your goals are. Necropolis used that, for example, but that was because it was built around multi-hitting-but-weak attacks being stronger versus low defense, but ineffective against higher defense values.

Consider implementing saving earlier than later. It can become a headache later on if you don't take care of it now.

Battledome Alpha

Look at you, actually using your computer science education. I dig it. I don't know how far along you are, but if you need ideas on how to go about making certain things, I've done a lot of work with simulators like this and have probably already solved whatever problem you end up encountering.


I'm a little confused. Are there other entities in the world that are triggering combat encounters? Because most of these battles don't appear to feature the user-created character. Edit: Actually, yes, that appears to be what the red E's are doing. I think you should simulate these outside of view, since they eat up a lot of time.

Anyway, if you're looking at what to do next I suggest removing some of the abstraction with equipment acquisition. Defeated enemies drop money or some other market-ready resource and the user-created entity uses it to acquire new equipment at shop locations.

Also some entity variance. Right now everything seems to be identical at Lv1, with the same HP, damage, and defense.

Also the entities seem to try to use skills even when they possess none. Some more intelligent behavior would be nice.

Wyrm Warriors

Gracias. Unfortunately you can't manage subscriptions on things you are "developer" for--you just have to accept any and all updates.