Key Learnings
Developed alongside the Unity learn programmer pathway. The focus of this project was to learn
the unity fundamentals and not worry about too much about code quality as I already had lots of
software engineering experience.
Later revisited and ported + optimized.
Ported to Mobile
Later revisited the game and ported the game to Android and added in mobile controls. Used conditional compiler to implement specific mobile U.I and controls. Ensured U.I fit in safe area and was anchored properly.
Optimized
Reduced lag spikes to ensure game runs at a smooth 60 fps on Android. Used the profiler to identify the two
major problems. Learnt importance of profiling on target device and not personal PC.
Noticed the physics collision detection was taking up a lot of CPU time for how basic the game was.
The moving floor level was using a mesh collider. Replaced with a simple box collider to improve performance
of collision detection.
Used object pooling for text popups and enemy spawning. Interestingly it was the TextMeshPro objects that were spiking the performance more so than the enemies being instantiated/destroyed. Clear example of why profiling is more important than guessing/assuming where a performance issue is!