Game Design Update (November 2020)

Personal Update

I took a break (July to October) from the game programming to work on other projects, as well as just relax. With the end of the year coming, I find myself with an excess of paid time-off from my work. I'll be taking off a lot more time to really focus on my game. Thankfully (?), I haven't been enjoying some games as much, which gives me less distraction from working on personal projects or writing. I had played a lot of Hades, which has game design that inspires me. It's a Rogue-like dungeon-crawler with powerful upgrades that provides diverse possible playstyles, which promotes replayability. The gameplay is straightforward, but this game design and presentation has made it very successful 

Design Freeze

One milestone that I had reached was development of the level architecture. I created some development tools for designing different level designs, which is compatible with the pathfinding algorithm (A* Search) I have implemented. 

I wrote the functions for spawning enemy AI dependent on time and level. I'm currently planning that each map will spawn waves of enemies, based on time. After the player has defeated all enemies, their units will gain experience and the game will display a summary of the damage, healing, etc. for each unit. Next, the next map will load, the rinse & repeat. This structured setup has been a big step towards me visualizing how the actual gameplay will feel.

And with the actual enemies on the screen, I've found it difficult to efficiently manage all four unit positions, let alone multiple skills among them. I realized that I should transition the designed active skills into passive traits innate for each unit. This should help prevent the gameplay from feeling overwhelming, and emphasize importance of positioning for every unit

Another part is adding some subtle AI to the player units, so that they automatically perform actions that would be logical. This includes actions like:

  • If targeted enemy dies, change targets to another enemy in range
  • If targeted enemy gets out of attack range, set pathfinding towards enemy (within vision)
  • Start attacking nearby enemy when getting attacked

Steps Forward

The next steps I'm going to work on are the following milestones:
  • Design several levels and enemy waves 
    • Define different enemy types (minions, specials, bosses)
  • At level completion, display a report of damage dealt/taken for each unit
  • After report, display a "Level Up!" screen at end to display the unit stats
    • This will be the window for selecting class advancements and other decisions
  • Design the function for advancing to the next level after completing current level
    • Need to carry over global attributes (unit properties)

Comments