A Brief History of Time (And the Age ...
Hi, I’m Rob “Xemu” Fermier, the lead programmer on Age of Empires Online. I’ve been involved with almost every Age of Empires game since Age of Empires 2, so I have a good perspective on how the technology we use in our real time strategy games has evolved in the past 10+ years, leading up to our latest iteration.
Development on the Age franchise starts back in the mid 90’s, with Age of Empires 1 (1997) and Age of Empires 2: The Age of Kings (1999). Both of these games used beautiful 2D bitmaps, which were typically generated by pre-rendering snapshots of a 3D model at various angles and animation poses. They established the bright, colorful, and inviting Age “look” as well as the delightful blend of economic and military real-time gameplay that the series is known for.
Age of Mythology Screenshot
By 1999 it was becoming clear that the future of PC graphics was in 3D rendering, and we wanted to find a way to bring that distinctive Age "look" forward, beyond just pre-rendered sprites. At the same time, pre-acquisition Ensemble Studios was looking to build a new code base, independent of Microsoft. So aside from some experience gained, we pretty much started over from scratch for Age of Mythology, what was internally called the “Bang Engine”.
- FUN FACT: Almost all the C++ classes used in the code base even to this day start with “B” (for Bang), such as BString, BPlayer, and BWorld.
A big complex RTS has many more systems than just a renderer, so the Bang engine also involved building from scratch new technologies for UI, animation, pathfinding, combat simulation, terrain, random map generation, AI, editing tools, multiplayer, and a host of others. The games we make are very intricate and require a wide range of technologies to support not just the gameplay experience but also the complex pipelines to get all the game content in: audio, animations, models, textures, databases, and scenarios. Going into any one of those systems could be an entire article by itself. Many different systems, large and complex in their own right – all have to work together in harmony to bring you the Age experience.
The first game shipped on the Bang engine was Age of Mythology (2002). For Age of Empires 3 (2005) it received some major upgrades – a modern shader-based rendering system, physics integration, new particle effects, and numerous unit sim improvements. Several expansion packs also were built to enhance those games, leveraging the extensibility and flexibility of the Bang engine.
Halo Wars Screenshot
While Halo Wars (2009) was not technically part of the Age franchise, it was also based largely on this technological lineage. Large parts of the code base were reworked to run on the Xbox 360 console, the terrain engine, trigger, and UI systems were entirely rewritten, and the core economic and unit combat model was restructured for the high intensity Halo-style combat featured in that game.
- FUN FACT: Age of Empires Online is over 1.2 million lines of code! And that’s not even counting the tools…
Age of Empires Online is the latest entry in the series, and is also based off of the same core engine systems and architecture. It has had some major upgrades too – dramatically more customization and control of your civilization’s tech tree, an entirely new equipment system, a brand new quest and map generation system, and of course the bold new art style that reaches back to the very first Age of Empires.
The evolution in online play is of particular interest in the progression of the series. From “The Zone” in Age 2 and onwards through 2 major iterations of Ensemble Studios Online and then Xbox Live, we have always made a major technical investment in the online aspect of our games. Age of Empires Online takes this even further, built from the ground up as an online-only play experience. Fully integrated chat and player presence, customizable capital cities that your friends can visit, and complete co-op play support is all part of earning that “Online” in the game’s title. As a player of the game, it may not be obvious that there is a vast amount of server code and infrastructure required to provide a seamless online experience. For Age of Empires Online more than any of our past games, we’ve basically had to make two entire products at the same time, one for the game “client” that users install and play, and another for the hidden world of the servers.
Age of Empires Online Code Snippet
- FUN FACT: Age of Empires Online runs 7 different major “services” (server roles) behind the scenes.
As you play Age of Empires Online (sign up for the Beta here), the technology powering your game experience is a mix of brand new online tech, new gameplay systems, and battle-tested core RTS mechanics that we have been constantly improving for over a decade. It is always amusing to come across a comment from yourself in 1999. Game technologies are often abandoned after a few years, so it has been very rewarding to work with this particularly robust game engine for so long.