Real World

Phoenix engine

From Halopedia, the Halo wiki

Revision as of 19:47, March 15, 2022 by CIA391 (talk | contribs)
This article is about the game engine. For other uses of the word "Phoenix" in Halo, see Phoenix.

This article's title is a callsign, an alias, or a nickname, as no proper name for the subject has been revealed.
"Phoenix engine"

Also known as:

Halo Wars engine

Developed by:

Ensemble Studios

Entered development:

2005

First use:

Halo Wars (2009)

Latest use:

Halo Wars 2 (2017)

 

The "Phoenix engine"[Note 1] 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.

Development history

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.[1]

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.[2] 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 compoment of the map generator.[1]

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.[1]

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.[1]

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.[1]

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.[1]

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 is 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.[3]

Development of Halo Wars

Help.png This section needs expansion. You can help Halopedia by expanding it.

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.[1]

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,[4] which increased the number of people working on Halo Wars to over 100.[1]

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

Help.png This section needs expansion. You can help Halopedia by expanding it.

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.[Note 2][citation needed]

Halo Wars 2 was released on February 21, 2017.

Games using the Phoenix engine

The following games were built upon the Phoenix engine:

Notes

  1. ^ The name "Phoenix engine" is not an official term, and is instead inferred from the codename of the project it was originally developed for, Phoenix, and the fact that many internal Halo Wars files are prefixed PHX, for PHoeniX. Though unofficial, the name "Phoenix engine" is the most commonly used term in the community, and thus it is adopted here.
  2. ^ It is believed that Halo Wars 2 uses an evolution of the same engine as Halo Wars, due to similarities in the internal file structure and naming scheme.

Sources

  1. ^ a b c d e f g h Rich Geldreich, Halo Wars (Retrieved on Jan 21, 2022) [archive]
  2. ^ GameSpot, Ensemble Studios interview (Retrieved on Mar 6, 2009) [archive]
  3. ^ gamesindustry.biz, Tony Goodman: "The publisher as we know it may become extinct" (Retrieved on Sep 21, 2021) [archive]
  4. ^ IncGamers, Windstorm's Dusty Monk Interview - Part One - Page 2: "For two years, before we all moved onto Halo Wars, we were working on an MMO prototype, and it was codenamed Titan." (Retrieved on Apr 17, 2010) [archive]