Assassin's Creed 2 PC is DX9 only
The PC version of Assassin's Creed 2 is finally going to hit the markets in early March. PC Games Hardware interviewed the 3D Lead Programmer of the game about the technical background.
Again PC gamers had to wait for a highly anticipated game will be released after the console owners had their fun for months already. But in March the PC version of Assassin's Creed 2 is finally going to hit the markets. PC Games Hardware got into contact with Ubisoft to get some technical information from the developers. Our questions were answered by David Champagne, 3D Lead Programmer of Assassin's Creed 2.
PCGH: Do you have to reprogram/alter/add parts of the Anvil/Scimitar engine for Assassin's Creed 2? If so, can you please describe what technical modification you have made and why they have been necessary?
David Champagne: Several new features have been added to the engine. A lot of them came from the AI and level design but still a lot came from the graphics side. We also had to develop new tools and plug-ins to help artists and designers integrate those new features.
PCGH: Regarding the different release dates for the Console and PC version we assume, that you develop the console and PC version separately to fully take advantage of the technical possibility the PC as a platform has to offer? Is that correct?
David Champagne: Even though it is not obvious at first glance, a lot of small things need to be addressed in order to successfully port a console game to PC. Enough to keep a team working for a couple of months. We worked a lot on improving the PC version to support all the possible hardware and to take advantage of multi-core processors.
PCGH: What are the main differences between the console and the PC version as far as general technical aspects as well as the visuals is concerned? What technical features can only be realized with the PC as platform?
David Champagne: As mentioned, we spent quite some time improving the performances of the PC version by taking advantage of multi-core processors. The PC version also supports much higher resolutions than the console version and multi-sampling modes up to 8X (as opposed to the console version which only supports 2X).
PCGH: Is it correct that Assassin's Creed 2 will offer improved shadow rendering and lighting as well as a day and night cycle? Do you integrate other new visuals into the game? If yes, what rendering techniques do you apply?
David Champagne: Efforts have particularly been put on improving our lighting system to support day and night cycle. New techniques such as support for spot lights and reflections have also been implemented into the engine.
PCGH: Can you explain why you removed support for DX10.1 in Assassin's Creed with the patch 1.02 although DX10.1 improved the quality of FSAA as well as the performance on Radeon cards? Is it really true that DX10.1 caused errors when calculating post processing? Will the renderer of Assassin's Creed 2 support DX10.1 or once again just DX10?
David Champagne: I personally didn't work on the first Assassin's Creed PC so it would be hard for me to answer this question. For Assassin's Creed II, we decided to stick to DX9. This allowed us to focus on a single version of the renderer and helped us to achieve the best possible performances.
PCGH: When benchmarking Assassin's Creed we found out that the title scale very well with multi core CPUs with up to four cores. Have you nevertheless overhauled the thread structure of the engine or improved the code to profit from more than four cores? Can you tell us what different systems run in different threads and how you have managed to parallelize the code?
David Champagne: We now support up to 8 threads. Our engine being mainly task-based since AC1, it has been pretty easy to scale up and parallelize the various tasks all over the multiple threads. Most of our game systems, including AI, physics, animation and rendering, are taking advantage of multi-threading.
PCGH: In Assassin's Creed physics were calculated on a separate thread. Do you keep this or do you alter the thread structure or even program a new physics engine? Have you thought about integrating support for Nvidia's Physx technology or is this still no topic?
David Champagne: Physics is a task as any other tasks in our engine. We don't reserve a specific thread to perform the physics calculations. We didn't have the chance to look into Nvidia's Physx.
PCGH: Assuming that Assassin's Creed 2 will support DX10 too, will the DX10 visualization differ substantially from the graphics that are rendered with DX9 hardware or will DX10 just speed up the rendering process? If there are special DX10 visuals, what are the graphical features that can only be rendered with shader model 4.0 hardware?
David Champagne: Assassin's Creed II has no specific support for DX10 (but the game still runs smoothly on both DX10 and DX11 systems).
David Champagne: No.
PCGH: Why do you decide against supporting DX11? Would the integration of the API into the renderer have consumed too much developing time? Are there any plans to patch in DX11 support later?
David Champagne: We are using the same rendering engine as the Xbox 360 version which is based on DX9. Integrating DX11 in our renderer would have definitely been too much time-consuming given our release date.
PCGH: Your Games does still support Windows XP and the DX9-API. When do you think game development will be at a juncture where it's more viable to put all the effort into one rendering-path using only DirectX 11 (with downlevel-paths) and drop support for XP?
David Champagne: I guess when most of the gamers will have switched to DX11. ;) According to Steam HW Survey, 40% of the gamers are still playing under Windows XP. I think we'll have to wait a bit...