After the latter update, PC version of the Assassin’s Creed IV: Black Flag (AC IV) has became the first Ubisoft’s game that implements GPU accelerated PhysX effects.
In the Black Flag, GPU PhysX support was shaped into volumetric particle effects (“PhysX Particles“), implemented through the APEX Turbulence module.
Bearing in mind that Assassin’s Creed series is already using competitive physics solution, Havok Physics engine, it was certanly an interesting technical task.
Semen Kovalev, Producer of Assassin’s Creed IV for PC at Ubisoft Kiev, was kind enough to share company’s experience on the PhysX integration process.
PhysXInfo.com: What kind of GPU accelerated physics effects can be found in Assassin’s Creed IV: Black Flag?
Semen Kovalev: In Assassin’s Creed IV: Black Flag, our development team decided to focus on adding physical smoke effects to the game. The smoke effects are present in a variety of forms such as smoke from flintlock pistol or musket shots, smoke bombs.
Also several environmental smoke effects like camp fire smoke or chimney smoke have their PhysX twin.
We decided to focus on these particular smoke effects because we wanted gamers to really feel the interaction between Edward Kenway (main character) and the surrounding environment, make it more realistic for them.
PhysXInfo.com: How hard was it to add GPU PhysX support through APEX to a game engine with non-PhysX SDK based physics (in this case, Havok)?
Semen Kovalev: This was our first attempt to adopt NVIDIA PhysX Technology, not only into an AC game, but as far as I know into any Ubisoft title.
We wanted to add more realism into the game, enhance the existing content, without changing it much, so we contemplated playing with physical simulation for the PC version of the game.
We were excited about trying PhysX, although at the beginning we were not sure if the two physical engines can work together. After a couple of experimental development sprints it turned out they can cooperate.
The game still uses Havok, however collision geometry is mirrored into a PhysX scene. There are a few limitations right now, certain geometry, such as ships, is created in a way that requires some custom geometry creation. In the end we decided we didn’t need these mirrored.
PhysXInfo.com: What are you impression on APEX Turbulence module – engine itself and content creation pipeline? How the authoring process was organized?
Semen Kovalev: After we confirmed that the performance cost of mirroring is decent we started working on the effects. The content was created in a Particle Effect Tool provided by NVIDIA, it allowed us to model the visual and physical look of all the effects.
After the effects were modeled we focused on the particle rendering from the engine side. The way the lighting changes on smoke with time of day, the way the effect blends in and out with distance, rendering optimizations for out of frustum effects, the behavior of the smoke during wind or storm – there were plenty of details that were configured from the engine.
For the shadowing we used NVIDIA Particle Shadow Mapping library, it contributed to the self-shadowing of the smoke and soft shadows that smoke casts on surrounding environment.
PhysXInfo.com: Assassin’s Creed is the first game to support APEX Framework. Are you planning to expand the integration with additional modules and/or utilize it in upcoming titles?
Semen Kovalev: Yes, we’re already experimenting with smoke effects for Freedom Cry, the DLC for AC IV. We also evaluate other ways to use PhysX Technology in general and physically simulated particles in particular.
Our thanks to NVIDIA for help with the interview.