Posted April 15, 2025 by 124sangaming
On my quest of "making everything deterministic so that the replay system works", I encountered a bunch of issues while viewing the code for stages. In my current code, I hardcoded enemy spawn patterns in script and specify difference in behaviors in different enemy prefab varients. This makes the stage implementing process much less flexible. Also, I was using coroutines to act as a timer for stage events and enemy spawns, and coroutines are not deterministic. Therefore, I figured out that I need to rewrite the script for stage and enemy spawning logic.
As a result, I completely revamped the code for stages, and it now supports adding events via editor instead of hardcoding them in script. This will make stage a lot more manageable, and implementing a new stage will take much less time. Stages will also be deterministic so that replay system can work properly.