How System Status: SuperCritical Started as an Experiment


Like many projects, System Status: SuperCritical started as a simple experiment.
The first prototype was built on top of a template scene in Unity. It featured multiple paths for enemies to follow from their spawn points towards the player’s base, although these paths were entirely fixed. The enemies’ behaviour was straightforward: move towards a destination, stop when the base was within range, and begin firing.
At this stage, enemies used a standard CharacterController. This works well under typical conditions, but quickly becomes problematic when gravity does not consistently point in a single direction (i.e. downwards), or when perfectly spherical colliders are not suitable for traversal. In this case, neither condition was met, and a different approach was clearly needed.
The current system is considerably more flexible. Enemy pathfinding is still guided by waypoints, but enemies can now traverse the entire walkable surface of the planet. They are also able to change their objectives dynamically—for example, diverting to seek out and destroy one or more of the player’s turrets—before recalculating their paths to new destinations.
This is made possible by the excellent A* Pathfinding Project Pro asset by Aron Granberg (available on the Unity Asset Store). The game uses its FollowerEntity components in a hybrid configuration: enemies remain as traditional GameObjects with MonoBehaviours, while their pathfinding is processed on the Entity side. FollowerEntities are configured to use gravity, with the direction determined as the inverse of the NavMesh surface normal at each enemy’s position.
Looking back, this was one of the first changes that made the project feel like more than just an experiment. It set the foundation for the kind of systems-driven gameplay I want to build, and it’s something I’ll continue refining as development progresses.
