I made some solid progress towards adding more content this week, providing a scaleable foundation.
- Added a new device and card combo with a new mechanic (evade)
- A global persistent player now exists, along with an abstracted file-based configuration
- The engine now supports multiple opponents with a dynamic layout and repositioning
- Added deck counters such as draw, discard, and spent
- Added hover hints to improve ease of use and improved internal naming for debugging
- Controller Focus is much more complete and user friendly, including sticky targeting
- Intents are smaller, more accurate (off by one), and have a shader effect
- Mouse controls are cleaner on the backend and less buggy
- Implemented a JSON schema for all my data types, facilitating adding more content
- GUT was broken in CI, which I didn’t notice because it was failing silently
- Removed some clutter and old prototypes from the codebase (they’re still in Git)
Sticky targeting is important to me from a usability perspective; I want the game to be smart about minimizing the amount of effort the player needs to put into performing actions. For example, if there are two opponents, you aim at the second and attack, then defend yourself, then go back to attack, assume they still want to attack the second opponent. Same goes for using cards; don’t default to the first card, default to the nearest card of the same type, else the closest card. This is supposed to be a strategy card game, not a clicker.