So as a very special Christmas present to you all, we are releasing the video of our Battle System today. Remembering that this isn’t going to be an overused feature of the game and is more intended as a little bit of fun. The system was created entirely inside Ren’Py using nothing but their commands and API.
In the demo, the player is controlling Yukito, though the player can be placed in control of any of the characters. At the moment, the AI is simply just getting each character to attack back the first player on the opposing team using the Attack command.
A little look inside the internals of the system….
battle_chars['yukito'] = battle_character('Yukito',100,30,'b_yukito',None, ["attack","defend","magic","heal","fire","water","special"])
battle_chars['kazuko'] = battle_character('Kazuko',100,30,'b_kazuko',None, ["attack","defend","magic","fire","water","special"])
Quite simply, the first parameter refers to the Real Name of the character (ie, the name that appears in the menus). The second parameter is the characters health. The third is their skill, which affects how much health they take off. The fourth is an internal reference to the sprites used during the battle. The fifth is a way to show if a character has an elemental weakness, of which there are “None” for these two characters. The sixth parameter gives a list of all command options that are available to that character. This is actually pretty cool, because it intrinsically allows the characters to level up and to receive more commands as the game progresses. Each spell is also customisable, allowing us to add new spells as the people level up. The bottom line though is that we are going to keep the battle side of the game fairly simple and light.
As the characters are actually drawn on the main background and not on a special screen, we can also hide the battle menu system and have plain “say” screens come up, so that dialog can be continued during a battle.
All in all, we’re pretty happy with how the system is coming along, considering that most of it was written over the course of three evenings.