Since the last update, I have been working hard on the Battle System. I am still in the "prototyping phase" which means that I am making the battle system visually work, but it is not attached to any data and can be best summarized as "organized chaos" behind the scenes. But regardless, this initial prototyping phase is needed to make rapid, visual progress and we can always make improvements on future iterations. So let's dive in and start talking about what progress has been made!
The Turn Meter in RpgLegend allows you to see the real-time status of any entity in battle. A quick run down of how this works:
Phase 1: Waiting for Turn:
Everyone who is moving up the lower portion of the bar (the blue part) is building up to their next turn. Each entity's rate of movement is based on their Haste stat. The Haste Stat will also dictate (only on the first turn of battle) the starting position. So the more Haste you have the more often you take your turn and the sooner you will go!
Phase 2: Move Selection:
Once an entity reaches the edge of the blue and red portions of the bar, it is time for them to make their move selection. In the example above you can see the entities making their selection with a swirling circle icon. An entity can take as much time as they want selecting their move. However, the longer you take, the more attacks your enemies may do!
Note: in the example above player 1 (green) is taking their time making a selection and everyone else is moving past him.
Phase 3: Move Selected:
Once an entity selects their move they get to cast. Only one entity may cast at a time. If multiple entities select their move at the same time, the server will determine who will go first, and the the other entities will wait for their turn. A green checkmark icon means that the entity has selected their move and is waiting for their turn to cast.
Phase 4: Casting:
The entity that casts their move will move up the red portion of the bar. All other entities will freeze while this entity casts, giving everyone else their full attention on the caster. While someone is casting anyone has the ability to modify the cast during the small cast window. Such as an enemy could block your cast, or an ally could amplify the cast.
Once you are done casting you are moved back to the bottom of the bar and the whole thing repeats.
The rest of the time since the last update has been protoyping the simulation of attacks. This preview shows what I mean. Here is exactly what you are seeing:
Monsters will show that they are charging up their attack by flashing white and optionally showing a cast animation (in this case the bee turns around).
Damage is shown on the target with numbers that ripple down, a cool effect that matches the retro feel we are aiming for.
Players move forward when they are about to attack, and show a casting animation.
When an entity gets damaged they may show a taking damage animation.
Inconsistencies: There are no spell animations, and the player moves forward on cast completion which would not happen.
Overall this visual prototype, while not functional, better showcases how the battle will look, and it is very exciting to see it coming together.
The next step is to convert this visual prototype into an interactable prototype. It still will not use real data or be functional. But my goal is to allow the selection of moves, and having the actual move you select be animated and displayed. I will include a few different moves so each type can be demo'd including: Weapon attack, Spell Cast (Fire spell), and Item usage (Potion healing). I would also like to prototype in the real-time spells that you may use when another entity is casting (such as blocking or amplifying your ally's move).
To support this goal I will need to add additional UI elements to select your move and to select your target. Additionally, I would like to show the status of any entity you click on so you can see their current health/mana/etc.
It is a very exciting time for RpgLegend and the battle system is really coming together! More soon!
Be sure to follow me on Twitter for more frequent updates!
Check out RpgLegend on IndieDb!