Destroy All Humans! 2 - Reprobed

My longest running project to date, Destroy All Humans 2 was a dream for me. I was a huge fan of the first game in the series when I was young, so getting to work on the even more popular sequel was very exciting. Being a generalist, I took on many different roles within the project. Immediately I dived into upgrading the engine to the latest version working closely with the Tech Director. Much of this took place remotely so I quickly encountered a bottleneck of recompiling thousands of files. To speed up the process I assessed and documented the use of multiple distributed-compilation tools.

Moving into the concept phase I was tasked with modifying the Unreal Engine movie sequencer. The goal was to allow rapid iteration for our outsourcing team who needed to create thousands of dialogue sequences. This was my first experience of extending the Unreal Editor but I was successful in implementing real-time resampling of the sequence editor which provided support for frame-exact scrubbing, drastically increasing the production time of dialogues within the game.

Upon getting used to the codebase I started to take on my primary role for the project. Working closely with our primary AI programmer, I helped implement smaller features at first before my colleagues unfortunate departure from the company. Quickly I had to fill his shoes, learning about many aspects of the codebase that nobody had knowledge of. Eventually I would come to work extensively on the AI for the Blisk Spores, Blisk Mutant and the entirety of the Blisk Warrior, all of which are frequently seen in the above trailer. During this time I was working with designers, animators and visual effects artists, making sure that the requirements of each were taken into account as well as raising issues and conflicts in a timely manner.

Towards the end of the project I once again became more of a generalist, helping to track down and fix bugs. Many were in systems I had never touched before, some were platform-specific, some were extremely rare timing issues caused by deep engine optimisations.

  • As the project progressed and more low-level optimisations were made the mutation system acted as a seemingly endless bucket of bugs. Eventually I created a stress-test which featured over 50 NPCs all trying to transform into Blisk Mutants at 100x speed every single frame. To this day I can’t be sure that I truly found and fixed all of the insane edge cases

  • Windows, Playstation 5, Xbox Series S/X

  • 29 months

  • 60-80 people

  • AI Programming, Engine Programming, Tools Programming

  • C++, Blueprint, Powershell, Unreal Engine 4, Perforce, Visual Studio, JetBrains Rider, Jenkins, Incredibuild, SN-DBS, FASTBuild, Favro, Redmine

Next
Next

Civilization VI (Android)