Phoenix engine

The "Phoenix engine" is a game engine designed for the real-time strategy (RTS) genre, which was developed between 2005 and 2009. The engine takes its name from the eponymous cancelled video game project by Ensemble Studios, for which it was originally created. Circa 2006, when Microsoft directed Ensemble to retool the pitched project as a Halo game, the Phoenix engine was retained and would go on to power the final product, Halo Wars, and its eventual sequel Halo Wars 2.

Motivation
Circa 2005, around the same time Ensemble Studios was shipping Age of Empire 3, Ensemble employee Angelo Laudon was experimenting with a prototype of Ensemble's previous game, Age of Mythology, that allowed the previously PC-only game to be played with a controller "without too much friction". This prototype would come to form the basis of Ensemble's next project after the release of Age of Empires III, known as Phoenix, which would be a real-time strategy game released on the Xbox 360.

Before the Phoenix engine ever entered development, Ensemble initially attempted to port the Age of Empire 3's iteration of the Bang! engine, an older, PC-exclusive engine originally created for Age of Mythology. Engineers Rich Geldreich and Billy Khan spent around 3 months in 2005 porting the engine from PC to Xbox 360, in what Geldreich described as "the most painful and mind numbing task [he] ever did [at Ensemble]". Ultimately, it was a waste of time, as while the game was made to run and the Win32 networking backend was rewritten for the Xbox 360 to allow for multiplayer on the console, the game's performance was incredibly poor, averaging between only 3-8 frames per second, and load times were as long as 5 minutes due to a slow, custom interpreter used by the script processor component of the map generator.

Geldreich attributed the poor performance to the significant difference in target hardware between the original target platforms of the Bang! engine and the Xbox 360. While he praised the engine itself, particularly its resilience with respect to corrupted, modified or deleted data, which helped significantly with the 360 port, and its random map generation, it was fundamentally designed for single-threaded x86 systems with a large amount of RAM and a virtual memory system. These specifications differed significantly from those offered by the Xbox 360, which had an in-order PowerPC CPU, limited RAM, no virtual memory and no built-in hard drive.

Ultimately, this port of the Bang! engine was only used for some internal playtesting and prototyping, running multiplayer matches with new maps and custom game scripts created by Graeme Devine and Angelo Laudon. Attempting to play the ported version of the engine, though, highlighted indisputably to the team that a direct PC to Xbox 360 port would never properly work for the engine, due to not being fun to work on for the Ensemble staff, very few of whom truly understood the Bang! engine, and due to the fact that such a port would not be competitive with other Xbox 360 first-party releases. In addition, the Bang! engine was heavily single-threaded, and thus even with extensive optimisation of the engine, performance still wouldn't have been acceptable. Consequently, the port of Bang! engine was abandoned in favour of starting a new engine from scratch.

Development begins
Initial development of the Phoenix engine started at some point in late 2005. As a base, the Ensemble team used a core engine and renderer developed by Geldreich for the Xbox Advanced Technology Group, between 2003 and 2004. A number of middleware solutions were licensed to simplify development, including Scaleform for UI and HUD rendering, Audiokinetic Wwise for audio creation and authoring, Havok for physics and Granny 3D for animation. In addition, a server-class heap system created by Microsoft Research, called Rockall, was repurposed for the engine by Geldreich. Finally, a small number of components from the Bang! engine were retained, including the pathfinding implementation.

The engine and its toolset were worked upon between 2005 and 2007 by a group of at least 6 engineers, among a development team of roughly 25 for the project overall. Angelo and his team focussed on producing a new RTS simulation engine optimised for the 360. Meanwhile, for the engine tools, an entirely new editor was created for the engine in C# by Andrew Foster and Colt McAnlis, while David Bettner created audio-related tools and engine code.

Some time in 2006, after it had been in development for between 12 and 18 months, Ensemble formally pitched the Phoenix project to Microsoft, who agreed to produce it provided that it be reworked as a Halo title, due to concerns that an entirely new real-time strategy IP on a console would not be successful. This set the project down the path that led it to becoming Halo Wars.

Development of Halo Wars
For approximately a year, the ~25 person Phoenix team continued to work on the project, retooling it as a Halo game. Eventually, in mid-to-late 2007, the first playable demo of Halo Wars was shown, after roughly two years of development on the Phoenix project and engine. The demo required significant crunch on behalf of the developers in order to have it ready in time, with some resorting to sleeping in their offices in order to meet the deadline.

Around the same time, another ongoing Halo project at Ensemble, Titan, was cancelled by Microsoft. This led to the entire studio being folded into the Halo Wars project, which increased the number of people working on Halo Wars to over 100.

Halo Wars was ultimately released on March 3, 2009 in the USA, marking the first commercial release of a game on the Phoenix engine.

Development of Halo Wars 2
A sequel to Halo Wars, Halo Wars 2, entered pre-production in 2014 but did not enter development until at least 2015, under a different studio from the original, Creative Assembly. Despite the different studio, Halo Wars 2 was developed under the Phoenix engine, just like the original.

Halo Wars 2 was released on February 21, 2017.

Games using the Phoenix engine
The following games were built upon the Phoenix engine:


 * Halo Wars (2009)
 * Halo Wars: Definitive Edition (2016)
 * Halo Wars 2 (2017)