The console version of Prince of Persia: The Forgotten Sands has been released. PC Games Hardware interviewed the Lead Programmer of the game about the technical background of the latest part of the Prince of Persia series.
Prince of Persia: The Forgotten Sands (9) [Source: view picture gallery]
Prince of Persia: The Forgotten Sands is the latest part of the PoP series. The game is currently developed by Ubisoft and will be released for PS3, Xbox 360 and other consoles on May 18, 2010 (North America) respectively May 20, 2010 (Europe). The PC version is scheduled for release on June 8 (NA) respectively June 10 (EU). PC Games Hardware interviewed Alain Dessureaux via mail in order to get information about the technology The Forgotten Sands is based on. According to the Lead Programmer the game will utilize up to six CPU cores and offer nice Screen Space Ambient Occlusion although the Scimitar engine is still a DirectX 9 renderer.
Alain Dessureaux is the Lead Programmer of Prince of Persia: The Forgotten Sands [Source: view picture gallery]
Is Prince of Persia: The Forgotten Sands still based on the Scimitar Engine or have you programmed a new technology from scratch for the new Prince of Persia part? If you reuse the Scimitar Engine do you have to modify the code or add code to tailor your in-house technology to the requirements of the game?
Alain Dessureaux: Yes we still use the scimitar engine that was used on the last Prince of Persia title. The engine has greatly evolved during the project. Since the basic elements were done, we were able to develop nice features to improve productivity. We developed a new set of tools to create cinematics within a new pipeline which helped a lot during the production of cinematics.
Prince of Persia: The Forgotten Sands (13) [Source: view picture gallery]
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 possibilities of the PC as a platform has to offer? Is that correct or do you simply port the console version to the PC?
Alain Dessureaux: The game is developed for all platforms at the same time. So from the start a lot of thought is put in how to take advantage of a powerful PC.
Extra time is given to the PC version to ensure better compatibility testing and a more refined user experience for the player. Consoles have set specifications which make it easier to release those versions first and then refine for the PC later.
Prince of Persia: The Forgotten Sands (12) [Source: view picture gallery]
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/visuals can only be realized with the PC as platform?
Alain Dessureaux: We wanted to give the PC player an experience as good as the one provided by the console, so all features of the console version are available on PC. In addition we support the Eyefinity technology on the PC. That allows you to run the game in a panoramic view on three screens, which is an amazing experience.
Prince of Persia: The Forgotten Sands (6) [Source: view picture gallery]
Can Players expect improved visuals in comparison to the last part of the series? Have you integrated new rendering technologies? Do you in general leverage very modern rendering techniques like HDR, Per-Pixel-Lightning, Subsurface Scattering, Wet Surfaces, Virtual Displacement Mapping, Soft-Shadows, Depth of Field or Motion Blur? If yes can you please give examples how this rendering techniques are utilized in Prince of Persia: The forgotten Sands (don't be afraid to get too technical here).
Alain Dessureaux: We have implemented some interesting graphics effects that we think players will appreciate. These include procedural deferred "noise” fog, that is able to simulate huge sandstorms without slowing the framerate to a crawl, "god rays” that create beautiful patterns in the sky, realistic reflection & refraction effects for our water surfaces, and real-time screen-space ambient occlusion (SSAO) that gives incredible volume to our levels' architecture. PCGH:
It is no secret that the Xbox 360 and even the PS3 is a suitable platform for a multi threaded engine. As a consequence of this, will the technical base of the PC version be optimized for multithreading? If yes, why is a multithreaded engine the ideal base technology for a game like PoP: The Forgotten Sands?
Alain Dessureaux: Yes, the core engine is very scalable. Making use of as much processing power the platform has to offer is very important for providing rich content at the speed gamers are getting accustomed to.
Prince of Persia: The Forgotten Sands (11) [Source: view picture gallery]
How many cores are supported and what is the expected performance gain from 2, 4 or even 6 or 8 cores? What different systems run in separate threads? What kind of scheduler do you use? Does your engine profit from SMT/Hyper threading or do you recommend turning it off for maximum performance?
Alain Dessureaux: Our engine will use up to 6 cores to maximize performance depending on the machine, but the minimum is 2 cores. We have a lot to process per frame, considering the graphics features in the game, the physic and ragdoll, etc. The engine had to be optimized to support 50 enemies at the same time. We achieve this by distributing the work among as many threads as we can run concurrently. The highest gain will be seen, when moving from dual (2) to quad (4) core. Additional cores will be utilized if they are available. PCGH:
Will PoP: The Forgotten Sands offer an advanced physics simulation where physics do not affect visuals only but are used for gameplay terms like enemies getting hit by shattered bits of blown-away walls and the like?
Alain Dessureaux: We have some advanced ragdoll code running in the game. For instance, it is possible to kick an enemy and provoke a sort of "bowling pin” effect: as he is falling down, the enemy will collide with other enemies, and take down the ones closest to him. This allows the player to handle combat against multiple enemies (up to 50) without being overwhelmed. PCGH:
Do you utilize self programmed physics libraries do you decide to implement Middleware like Havok, ODE or Physx? Do you even plan to offer support for Physics, calculated on the GPU (GPU-Physx)? What is your personal opinion about this alternative?
Alain Dessureaux: We are using Havok as our physics engine, powering breakables and it has allowed us to use ragdolls for the first time in a Prince of Persia game! The physics is calculated on CPU, and the GPU is used at its full capacity for rendering purposes. PCGH:
Will Prince of Persia: The forgotten Sands support DX11?
Alain Dessureaux: We have a great game engine using DirectX 9 that made its proofs on other games like the previous Prince Of Persia. With that the game will be able to run on a wide variety of graphic hardware (shader model 3 is required). One of the advantages of using DirectX 9 is that all players running Windows XP will be able to play the game. Finally we decided to keep DX9 and invest effort on nice features for the player instead. Although we do not use DX11, we have implemented a really nice screen space ambient occlusion (SSAO) algorithm in PoP.