Charles Beauchemin, Ubisoft
PCGH: In general how difficult is it to port a console version of a game to the PC? In the case of Assassin's Creed, what were the major difficulties you have faced so far? Did you have to reprogram the complete engine code or did you have to rebuild only parts of the engine? Are there any technical features that are especially hard to realize on the PC as a gaming platform? The most important challenge when adapting a "next-gen” console game to PC is to make the right compromises so the game can run on a large variety of PCs, like being able to have less objects in the scenes and/or less vertices for the objects. With Assassin's Creed, at the beginning, we didn't want to touch the data, or at least minimize the amount of artist work. However, some choices had to be made with the help of artists.
PCGH: On the other Hand: Are there any technical features that can't be realized with the console version or in other words are there any features the PC is the ideal platform to develop for? The PC machines can support various resolutions, making it possible to run the game with more details than on a console (which usually displays on a TV). Also, the support of a mouse and keyboard interface can make the experience more agreeable to the user.
PCGH: Will there be a lot of differences between the Console and the PC Version as far as technical aspects is concerned (Visuals, Physic, AI, Level size, memory management)? Can you please give some examples? Our objective was to minimize the visual difference between the console and PC versions but in order to support a wide variety of PCs, we had to add some settings to be able to adjust the video quality and level of details. As for the interface, the use of the mouse makes the navigation easier in the map and the menus.
PCGH: At the moment Cross Platform Development is very popular. Do you as a developer have a possible explanation for this? Regardless of financial interests do you think that the gap between PC and consoles as far as base and engine technology is concerned is closing nowadays? A lot of the code from the engine can be reused from one platform to another. Also, the work of the artists is leveraged when porting the game to multiple platforms. Most differences have to do with the graphic interface and some system specific APIs which can be abstracted in a base layer. Later, some specific system optimizations can be done.
Beauchemin: "We wanted Assassin's Creed to be a true next-gen game, so we needed an engine that could support our high expectations"
PCGH: Did you develop your own engine for Assassin's Creed or did you license a technology? What were the reasons for developing your own technology/using a commercial product? What are the advantages when utilizing your own technology/a commercial product? Assassin's Creed uses the Anvil/Scimitar engine, which was developed in-house for the game. Since we wanted Assassin's Creed to be a true next-gen game, we needed an engine that could support our high expectations. Some components, like the physics, the video player, and the face animations use 3rd party libraries (Havok, Bink, FaceFX).
PCGH: Having a close look at the already released console version of the game one realizes that a detailed and even improved visual presentation has played an important role while developing Assassin's Creed. What would you describe as graphical highlight of renderer? Do you use modern rendering techniques like Parallax Occlusion Mapping, Soft Shadows, HDR, a lighting model with Deferred Shading, Shader 4.0 support etc.? If yes, can you please give examples how this modern rendering techniques are utilized in Assassin's Creed? Our engine supports ambient occlusion, HDR (not used on Assassin's Creed), deferred shading (not used on Assassin's Creed), DirectX 10 (shader model 4.0), custom soft shadows, and next-generation post-effects processing. However, the major achievement of Assassin's Creed graphic engine is the integration of many proven techniques, combined with multiple dynamic lightsources, high definition textures and object models.
Beauchemin: "I strongly believe the visuals are next-gen in Assassin's Creed"
PCGH: Do you think the visuals of Assassin's Creed can be described as next gen? If yes why? I strongly believe the visuals are next-gen in Assassin's Creed. For example, when you climb the Cathedral in Acre, you can see the entire city below you and it's absolutely stunning. Also, the size of its worlds, the fluidity of the controls and movements, the freedom of choosing your missions, where you want to go, and how to achieve them makes Assassin's Creed stand out.
PCGH: Another well advertised PC technology is SLI or Crossfire. As far as overall performance is concerned, can players increase it remarkably by buying a second graphics card? Do you have to add the support for multi GPU setting when developing the PC Version? Because of the size of our scenes, our current bottleneck is mostly between the CPU and the graphic card. This means that adding a 2nd card will only give a few percent of performance. The support for SLI/Crossfire has been integrated in the game and as CPUs go faster, the game will be able to take full advantage of this technology.
PCGH: It is no secret that the Xbox 360 and even the PS3 is a suitable platform for a multi threaded engine. Did you keep the support for dual or even multi core CPUs in the PC version of the game? If the engine supports multi threading, what different tasks can be or are split up into different threads and what is the expected performance gain resulting from two respectively four or even more cores? Do you personally prefer to develop and optimize an engine for CPUs that have multiple cores? Yes, the multi task architecture has been a major asset for the support of multiple CPUs. All tasks are separated in small chunks which can run on any CPU. However, because of limitations in the DirectX interface, all graphic calls have to be made from one thread. This means that if your system is very powerful in terms of CPU, you will eventually reach a point where the graphic thread will become your bottleneck.
PCGH: Many Next Gen Games offer a detailed physic simulation. Yours too? Do you program your own physics engine or do you utilize a middleware like Havok or Novodex? Does the game support hardware accelerated physics like Ageias PhysX or physics calculation on the GPU? What is your personal opinion about that topic? Assassin's Creed is using Havok. Eventually, engines will be able to take advantage of hardware accelerated physics calculations, but with Assassin, the amount of data transferred to the graphic card makes the PCI traffic very heavy and having the physics run on the CPU is helping avoid increasing this traffic.
PCGH: Do you utilize the physics simulation just to add more eye candy or will it have an important impact on gameplay? We use physics for merchant stands, ragdoll, characters (collisions), plates and pots. Part of it is for gameplay and some is eye-candy.
Direct X 10 Beauchemin: "No new content has been added to the DX10 version."
PCGH: When porting for the PC have you thought about integrating support for DirectX 10 into the engine? Will there be a version of Assassin's Creed that will utilize the new Vista API? Yes, Assassin's Creed supports DX10 as well as DX9.
PCGH: What are the technical advantages of that API? Beauchemin: "No performance hit occurs, since no improved optics are implemented."
DirectX 10 enables us to make fewer calls to the API to perform the same actions. Therefore, it will be possible for the drivers to make optimizations making the game faster without any change to the game engine. Since most of the DX10 drivers are still young, we can expect a lot of gain to come from the optimization of these drivers.
PCGH: Do you use advanced features of Direct X 10/Shader Model 4 like Geometry Shader, Virtual Texture Management etc.? Can you please give examples how they are utilized? In what way do these features improve or simplify the rendering process? No. Most of the porting to DX10 involves optimizations of the existing calls, without any new content.
PCGH: Will the DX 10 visualization differ substantially from the graphics that are rendered with DX 9 hardware? What are the visuals that can only be rendered with shader model 4 hardware? Can you supply us with a visual proof via screenshot too? No new content has been added to the DX10 version.
PCGH: How much of a performance hit will the improved optics of DX 10 incur? With all details maxed out is a typical first gen DX 10 card already running at its limits? No performance hit occurs, since no improved optics are implemented. However, when running on Vista, DirectX 10 version speed will be much faster than its DirectX 9 counterpart (also running on Vista).