Last post I had shown the prototype’s combat UI, but I hadn’t shown it in action. Here’s a video of a full battle sequence, from encountering enemies while wandering the dungeon, to gaining loot after killing them:
What was deceptively challenging was syncing up the UI and the underlying data model to carry out the steps of the combat sequence, stuff like waiting for an animation to complete playing before proceeding to the next step. Code normally executes immediately, so I couldn’t simply calculate each enemy’s action and move to the next character, or everything would happen at once. Fortunately, Unity’s coroutines are perfect for sequencing actions over time.
Particularly cool from a technical perspective is that anything can be selected as a target for any action, since there is a common ICombatant interface used for both player and enemy characters. That’ll be especially useful once I get in abilities like healing spells, where a player character will want to target a player character instead of an enemy.
From a visual effects perspective, I got a surprising amount of mileage out of simply applying the camera shake to UI elements. Or rather “camera” shake, since I removed shake from the camera itself, and instead put the script on 2D images. Here’s a gif focusing on just those portions:
In less pleasant news, I decided it’s still too soon to release a prototype for people to start trying. My original plan was to release a prototype as soon as battle is playable, but I realized you can really only just fight a couple battles, die, and then that’s it. Not a ton of feedback you could give from that other than “want to see more.”
The new plan is to get to a complete game loop and then release a first prototype. By “complete game loop” I’m referring to the entire gameplay flow that players will repeat over and over until the game is over. Once the core loop is complete then there is a complete (if primitive) game structure, and every other feature will be embellishing the loop.
Towards that end, I also put in the overworld map and am starting to work on the town. Here’s a gif of the scrollable map:
The idea is players click on dungeons to enter them, or the town to browse shops. There will be a fairly standard RPG loop, where the player crawls dungeons to collect loot, then goes to town to spend the loot, returns to the dungeon with the new equipment they purchased, etc.
In order to achieve a complete game loop quickly, I’ll probably implement the first version of the town simply as a menu that opens when players click the town on the map. Where I go from there is a subject for next month…