Industrial Annihilation is the sequel to Planetary Annihilation developed in Unreal 5 with a custom game simulation layer written in C++. I began working on the project when it was first being spooled up for Early Access development. Industrial Annihilation mixes the gameplay of a factory sim like Factorio or Dyson Sphere Program with the familiar RTS gameplay of the Annihilation series. The project provided a lot of unique challenges, particularly with the large amount of individual units, machines and infrastructure players could build stressing performance.
My work was on a small, tight knit team of developers as a Senior Gameplay Programmer. The team communicated well but individually we acted with a lot of independence. Much of my work was within in the simulation layer working on the task and order logic for units. I worked extensively on the logic for orders and tasks given to units. Much of my focus was on building structures and other units, inventory and item management, repairing other units, navigability validation when placing structures, and multiplayer replication. The order and task system was robust, allowing for units to make decisions on which sub-tasks they would need to employ to accomplish their goals, meaning the player only had to issue high level orders while the units figured out the details. I also worked extensively on the in-game UI, both in its implementation and brainstorming with the designers on how to best convey information to the player. All of this was developed with runtime efficiency in mind and supporting massive numbers of units, items and simulation actions taking place.
The design of this title contains a lot of detail and complexity, and I found the eternal question of “how to best convey this to the player?” a compelling part of the work.