Crustacean Nations Update 4
Tricky technical situations
Crustacean Nations is a very technically complicated project. There are a lot of moving parts associated with this game. It is an RTS with hundreds of controllable units, so there needs to be a certain level of project architecture in-place to make sure everything works correctly. This week was particularly challenging because we started to test the limits of what the game can handle. This coupled with a lack of communication on the team led to a few technical issues that needed to be addressed immediately.Tricky technical situations
Crustacean Nations has more controllable units per team than Age of Empires IV
Bugs, optimization and profiling
This week we started to notice that some frame drops were happening as more units came on-screen. Luckily, Unity has a really helpful profiling tool that tells you exactly how much processing power is going to each facet of the game. I expected rendering to be the culprit as each of the crab models has a pretty high poly count, but to my surprise this was not the problem. Rendering was using about 15% of the frame budget which is far better than I expected. At some key points of gameplay, AI started to eat up over 90% of the frame budget. This should never happen in a game, so I did a deep dive into all team members' code and managed to find the issues. The problem was not the individual algorithms we used for AI, it was misuse of the project architecture that we set up last week.Bugs, optimization and profiling
The updated building feedback system implemented this week.
Smoothing out workflow
This issue ultimately came down to a lack of communication and understanding as to how each of the game systems work. Not everyone was up to speed on how to properly use these systems, so the problem came down to a few issues akin to a memory leak and ended up crashing the game after a few minutes. Luckily, this has been pointed out and we are adjusting our workflow to avoid these problems in the future. We're putting a bigger emphasis on documentation and testing so that we can identify issues before they start to cause problems for the rest of the team. Additionally, we are reworking our git branching workflow as to make sure there are always stable versions of the game available. These changes should allow us to avoid major performance issues and to ensure the team is on the same page in upcoming weeks.Smoothing out workflow