EA: The Saboteur -Odin Engine: The Birth of a God
When The Saboteur hits the market in the fall of 2009, gamers won’t just see an incredibly intricate 1940s Paris, they’ll run through it, climb over it, interact with it, and go most anywhere they want to in it. Bringing this amazingly detailed world of Paris to life is the new Odin game engine, the result of years of blood, sweat and tears spilled by a highly dedicated and enthusiastic team of programmers and engineers.
In the Beginning...
The Odin engine started with a single polygon—just one simple shape rotating on the screen. Four years and several hundred thousand lines of code later, Odin has evolved into an incredibly powerful and versatile engine, one which promises to bring an open-world WWII-era Paris to life like never before. Co-lead programmers Dan Andersson and Fidde Persson were members of the original strike team assembled by the Pandemic studio shortly after they received their first Alpha Xbox 360 kit in 2004. At that time, the team consisted of four tech leads and a director. Today there are more than 30 people on the engineering team, plus a few more external contractors.
Andersson, Persson, and the rest of the Odin team have seen their excitement grow over the years as the game engine developed into the tool that it is today. These guys are passionate gamers who want to get every aspect of the gameplay just right—so although The Saboteur is an action-adventure game involving a lot of mechanics, the team wanted to make sure the climbing felt right, the driving part of the game felt like a real driving game, and the shooting component played like a top-notch shooter. As Persson says, if the game were proposed today, it would probably be considered too complex to get built.
Getting Down to Detail
When developing Odin, the team worked extremely hard to get the level of detail just right. They wanted to build a huge open-world environment but they didn’t want to compromise detail in doing so. In The Saboteur, you get more up-close and personal with the city than in most open-world games, so making Paris detailed would be vital to making it believable.
To get the detail right, the team used very detailed blocks to construct the world. For instance, a building is not a single rendered object, but instead a construction of many individual blocks. Thus, instead of having to render an entire building, the Odin engine can figure out which of the building’s blocks are seen by the user and which are not at any given moment, and then only render those which are seen. This “real-time occlusion” spares the graphics card, improves the game’s overall performance, and helps the team get “as much love per square meter as possible,” as Andersson puts it.
The team also increased the level of detail by making sure the textures were as high-res as possible. There’s a limit to how many high-res textures an engine can support, but the team did not want to settle for low-res. Instead they decided to create several very high-res textures and have the blocks re-use the textures between them. To avoid everything looking the same, the artists then use advanced shader techniques to make blocks using the same textures look significantly different.
The team also had to tackle this issue of level of detail (LOD) popping. LOD works like this: when you cross a certain distance threshold the CPU replaces one LOD for another—for example, when you get within 200 meters of a building, the CPU stops displaying the 200-polygon version of the building and instead displays the more detailed 20,000-polygon version. In other games, this can be a jarring transition as the scene pops from one LOD to the other. With the Odin engine, however, LODs fade into each other, creating a very smooth transition.
Innovation and the Will to Fight
All of this is important in The Saboteur for creating a living 1940s Paris and also for achieving the game’s highly innovative “Will to Fight” effect. With this effect, the world changes visually as you move in and out of Nazi-controlled areas. A strong Nazi presence, for instance, gives the world more a black-and-white, dark, and generally evil looking appearance. As you fight to liberate France, the world takes on a brighter, more colorful, more “free” appearance.
It took more than two years—and tons of ingenious programming—to achieve the Will to Fight effect as it was originally envisioned. Lighting, contrast levels, fog, and rain are all rendered in real time. Nothing is pre-calculated, which means these effects can be manipulated greatly to set different tones for the environment. With the dynamic rain effects, for example, visually stunning water splashes, reflections off the rain, and “wet” textures can be applied anywhere in the world at any time to provide a sense of gloom, and just as easily turned off to lighten the atmosphere.
Odin’s dynamic lighting system allows the game to have objects cast multiple shadows from multiple lights, ambient occlusion techniques to achieve detailed lighting around objects, and real-time reflections, adding to the variety of appearances and moods any given scene can take on.
The Birth of a God
Though they never met each other until joining Pandemic, Andersson and Persson are both from the same small town in Sweden. It’s no coincidence then that the game engine they’ve helped to create shares its name with the second mythological king of Sweden and main god in the Norse mythology. Odin (the deity) is associated with many things, including wisdom, war, death, magic, poetry, prophecy, victory, and the hunt—an appropriate namesake for a game engine designed to accomplish so much.
Creating Odin has been “like giving birth to a child,” says Andersson. Thanks to the dedication and passion of this extraordinary team, players of The Saboteur will soon be able to step into 1940s Paris like never before and enjoy the fruits of their labor.