Joining us today is Claude Langlais, Technical Director on Assassin's Creed, the new video game just released by Ubisoft. In Assassin's Creed, says Ubisoft, you are a warrior shrouded in secrecy and feared for your ruthlessness. Your actions can throw your immediate environment into chaos, and your existence will shape events during this pivotal moment in history.
DDJ: Claude, can you briefly tell us about the software development process that goes into creating a game like Assassin's Creed? What tools do you use? What programming languages?
CL: With Assassin's Creed, we had a great opportunity of creating a new production pipeline from scratch. Building on our previous experiences, we built a engine and a tool suite that could be used not only for this game but for others games within Ubisoft as well. Starting from the ground up allowed us to take full advantage of the new architectures that came with the Xbox 360 and Playstation 3. The engine is coded in C++, our tools suite written in C# and some of the build process is written in Perl with some Python.
DDJ: Did Assassin's Creed require any new or unique technology/algorithms?
CL: Access to multiple processors was "relatively" new with the architectures we were targeting. We had to find creative ways of processing as many things in parallel as possible while still being compatible across all platforms. Even though we had more memory than before, we still had to find ways of using it as efficiently as possible, e.g. we have many animations in AC and managed to compress them a lot while still maintaining acceptable quality.
Right from the start, we knew we wanted to give players a sense a freedom and being able to go anywhere they wanted. To reach that goal, we had to play around with behaviors to allow climbing on anything that sticks out of the walls (with IK), develop detection algorithms to allow efficient interaction with the environment and build AI so that non player characters can also interact with the environment.
And of course, dealing with crowd simulation was something quite challenging. Combining simulation and usefulness to the player was interesting :) .
DDJ: What was the most difficult aspect of developing this game?
CL: I think that getting everything together and managing to have a crowd simulation that works in a meaningful way to the player while being able to render a full city to immerse the player in a rich environment was quite a challenge.
DDJ: Is there a web site that readers can visit to find out more about the game?
CL: Sure, www.assassinscreed.com.