Game Engine Helps Create EA BioWare’s Dragon Age: Origins
It’s May 2004 at E3 in Los Angeles. Fresh on the heels of success with the Neverwinter Nights series and Star Wars: Knights of the Old Republic , BioWare -- based in Edmonton, Canada -- offers a glimpse of a planned new role-playing game, Dragon Age: Origins . The cursory preview amounts to not much more than a “tease for PC RPG fandom,” writes Sean Malloy for 1up.com.
Then the company goes more or less mum on the subject for the next five years.
Fast-forward to late 2009. After half a decade of work, Dragon Age: Origins launched to great buzz. “Dragon Age is a deep, dark and meaty fantasy adventure, with an epic storyline, dozens of memorable characters and all the collectible goods, upgradable stats and other staples that make fans of this genre giddy with glee,” declared the Toronto Sun ’s Steve Tilley.
One reason for the five-year development process was the company’s must-have technical criteria for the game: to take maximum advantage of multicore chip architectures. Although these technologies had been around since 2002, when Dragon Age: Origins was announced in 2004 it was still mostly a single-core world. By the end of that year, profound change was in the air.
“In 2005, microprocessors sold for personal computers will sprout what amounts to two heads each,” explained Matthew Fordahl, a technology writer for The Associated Press. “Instead of building processors with a single core to handle calculations, designers will place two or more computing engines on a single chip. They won’t run as fast as single-engine models, but they won’t require as much power, either, and will be able to handle more work at once.”
By the middle of 2005, the cognoscenti at BioWare began to realize their game would be released onto a platform that was very different from the one most PC gamers had used until then.
Moving to Embrace Multicore Potential
“Multicore, multithreaded development -- along with the emergence of HD graphics -- was the foundation of the huge technology transition that happened within Dragon Age: Origins development,” says Mark Darrah, BioWare’s executive producer of the Dragon Age franchise. “It actually sent the team back to the drawing board at least once, asking themselves, ‘What’s the right way to take advantage of this shift?’ The team was clear that they weren’t going to build a multithreaded platform just for the sake of it. They wanted real, tangible gameplay benefits for our players.”
BioWare’s approach to multicore can be summed up with three bits of advice: iterate toward success with the entire team of developers and artists, lean on experts for development tools and engineering help, and always strive for simplicity.
One of BioWare’s most important decisions was to insist that the designers and artists work to understand some of the pitfalls and challenges of multicore development. This sort of mutual understanding helped everyone pull toward the same set of realistic goals to benefit gamers, such as providing more creatures on the screen or achieving smoother load transitions.
“Designers had to learn too,” says Darrah. “With a game design as broad and deep as Dragon Age: Origins, it’s easy to fall into the traps associated with multicore development.”
When it comes to encouraging its designers and programmers to collaborate, BioWare does much more to insist that everyone speak the same language about new chip architectures. Four years ago, the company implemented Scrum methodology, an iterative, incremental framework for managing complex work that is commonly used with agile software development. The hallmark of Scrum is a development cycle of short two- to four-week sprints during which a cross-functional team works to finish a particular product increment.
Dragon Age: Origins was BioWare’s first product of Scrum development. The company also used it on Mass Effect 2, released in 2010.
Revving up a New Game Engine
The most prominent multicore payoff of this collaboration is the heart of the game, the Eclipse Engine. Dragon Age: Origins’ multithreaded engine uses a job-dispatching scheme that takes core engine tasks -- such as AI actions, physics calls and so on -- and deploys them to the available thread.
The engine was intentionally designed to be generic and easy to use so that BioWare programmers could iterate over the development cycle to move more and more of the engine functionality to dispatched jobs.
Of course, creating a game means more than writing lines of code. And in the case of Dragon Age: Origins, the storytelling challenge was paramount. Unlike BioWare’s success with titles such as Star Wars: Knights of the Old Republic and Sonic Chronicles: The Dark Brotherhood, Dragon Age: Origins is set in a brand-new world of the company’s creation.
“When you’re working with licensed intellectual property (IP) you actually have an established set of lore and story and understanding of the universe,” says Darrah. “When you’re building your own IP, you have to build all that lore, all that backstory yourself in order to create a compelling vision, and then you have to use that to fill in the world that you tell the story within. So you have to build a world as well as build a game.”