Certainly, many of you will agree that the addition of GPU PhysX effects to PC games has a positive influence on overall gaming experience and immersion in such titles. But how difficult is to attach hardware accelerated physics effects to a game?
Today, with the help of David Schoemehl, Manager of GPU PhysX Content in NVIDIA, and Johnny Costello, Technical Artist, we will try to give you a brief “behind the scenes” view on the process of enhancing games with extra PhysX content.
PhysXInfo.com: Hi, Johnny and David. Can you please introduce yourself?
Johnny Costello: My name is Johnny Costello, I’m 29 years old and am a native to the Midwestern United States. I went to college at Savannah College of Art and Design and received my B.F.A. in game development. I have been a technical artist at NVIDIA for about two and a half years. During that time I have worked on several GPU PhysX titles such as Batman: Arkham Asylum, Batman: Arkham City, Mafia II, Dark Void, and Alice: Madness Returns.
David Schoemehl: My name is David Schoemehl, I joined AGEIA in 2006 as an applications engineer and was the project manager on Warmonger. Since the purchase of AGEIA by NVIDIA in 2008 I have led or supported several shipping GPU PhysX titles and demos including Batman: Arkham Asylum, The Samaritan Demo, Sacred 2, The Great Kulu Demo, and Alice: Madness Returns.
My current title is Manager of GPU PhysX Content and I am responsible for aligning NVIDIA’s engineers and artists to support developers on GPU PhysX engagements. I also work closely with Epic Games to ensure a solid integration of GPU PhysX/APEX features in UE3.
PhysXInfo.com: Johnny, what is your task as a PhysX technical artist?
Johnny Costello: My tasks can change a lot from day to day, but usually I’m working on a game title in some capacity. Our goal at NVIDIA is to provide the tools that developers need in order to add great GPU features to their games. So I spend much of my time working with developers to help guide them as they use our technology to create exciting content.
Depending on the structure of a particular engagement I may also work alongside the developer to create GPU PhysX content. Then there are other days where I help design and review our tools and production workflows.
PhysXInfo.com: So what is in the process of adding GPU PhysX effects to a game?
Johnny Costello: We usually start by getting a build of a game and playing through it in its current state. We also read any available design and art documents to familiarize ourselves with the gameplay mechanics and the aesthetic style. From there, we identify any story events, environment locations, special effects, characters, etc. that could be enhanced with our feature set and make the game more fun to play.
From there, we work with the developer to refine this list and plan out a timeline. After that, it’s all about creating content with our tech that players will enjoy.
Once the content gets in the game, it starts getting reviewed by QA. We usually spend our time at the end of a title engagement addressing any bugs that QA has found and making minor content adjustments.
PhysXInfo.com: Users are often complaining that extra PhysX effects are not optimized properly for CPU execution (not using multiple cores, for example). What is the reason behind this?
David Schoemehl: This is a legacy issue regarding PhysX versions prior to 2.8.4. With proper setup it is possible to achieve some threading on PhysX 2.8.4, for instance running multiple cloth simulations in parallel. However, the overall threading performance issues have been addressed in PhysX 3, which is available today. With PhysX 3 we have improved the rigid body, clothing, and particle pipelines to take better advantage of multiple CPU cores.
PhysXInfo.com: Also, there is an opinion that with disabled GPU PhysX option, minor effects (like sparks or cloth banners) are omitted from the games on purpose, while they can be easily calculated on CPU or substituted with non-physical objects. What can you say about this?
David Schoemehl: When NVIDIA engages with a developer to work on a GPU PhysX title we will offer suggestions for enhancing existing effects and adding entirely new effects. For the existing effects that are enhanced by PhysX you will see original version of the effect with GPU PhysX disabled. For effects that are created new as part of the GPU PhysX effort you will not see a fallback, because it did not exist in the original game.
Our goal is to work with developers to enhance their original game to take advantage of the latest hardware NVIDIA has to offer. We want to provide gamers that select NVIDIA a superior play experience for these games. We would not want to raise the min recommended specs for a game determined by the developer by adding additional default effects to the original game.
PhysXInfo.com: You work closely with developers – is exclusivity of GPU PhysX content to NVIDIA some kind of a barrier for PhysX adoption? In other words, are developers interested in OpenCL / DX Compute version of PhysX engine?
David Schoemehl: No, we have not seen this as a blocker for PhysX adoption in general. PhysX provides a strong set of core physics engine functionality across a wide array of platforms including PCs, consoles, and mobile devices. PhysX powers game engines such as UE3 and Unity, and can be found in many of the AAA titles that are shipping today.
PhysX 3 addresses memory, threading, and performance concerns, which should further increase the adoption rate of PhysX. In addition to this core functionality, PhysX and APEX offer hardware acceleration for certain features, such as particles, cloth, rigid bodies, and turbulence, through CUDA. This is a powerful value add but does not interfere with developers using core PhysX and APEX features.
PhysXInfo.com: What is your impression on NVIDIA APEX toolset? Is it really simplifying process of adding PhysX effects to games?
Johnny Costello: I definitely think so. For example, look at where we’re heading with APEX tools like PhysXLab and the Clothing plug-in for 3dsMax and Maya. They are becoming more robust with each release and are definitely making it easier to create APEX content for games.
One of my favorite things about PhysXLab is the Playground Mode where you can preview how your mesh is going to fracture in real time before bringing it into a game engine and placing it into a map. This saves valuable time between making parameter changes and seeing those changes visually affecting the fractured mesh.
PhysXInfo.com: You have probably already worked with the new clothing simulation engine, introduced in PhysX 3. How well does it performs in comparison to current one?
Johnny Costello: The PhysX 3 clothing engine gives us a stronger set of features. More attributes allow the artists and animators to make better aesthetic choices regarding their cloth. One of these new features is the ability to created tapered capsule collision shapes. These shapes allow the artists and animators to create a collision representation that is more true to the characters silhouette.
The new system also allows for more reliable behavior during intense, fast-moving, animation sequences. In addition to these features, overall performance has been improved allowing developers to use clothing across more platforms.
PhysXInfo.com: What additional features you would like to see in APEX, as a technical artist?
Johnny Costello: As a technical artist, I spend a lot of time trying to decompose exciting artistic ideas down into their components so they can be created in games. What I’m looking forward to in the future with APEX is seeing various features come together for a combined effect.
What happens when turbulent dust is spawned when a destructible is fractured? Can a character’s clothing move when it gets hit with particles? I can’t wait to see all these things come together to make games even more dynamic and intense for players to experience.
PhysXInfo.com: We have noticed that recent GPU PhysX titles, like Alice: Madness Returns or Batman: Arkham City are not using APEX Particles but built-in PhysX particles system instead – why is that? Isn’t the Particles module more effective?
David Schoemehl: Both of these games are built using UE3, which already had a robust particle editor using NVIDIA’s GPU PhysX particles. APEX provides some great features for particle systems but for these cases UE3 was already providing the functionality we needed.
APEX Particles are a win if you are stepping into project that doesn’t already have an existing PhysX particle pipeline or if you are interested in doing some simulations, such as turbulence, which require a great number of particles that don’t require the high-fidelity collision of PhysX particles.
PhysXInfo.com: Dark Void was the only title to impress us with awesome Turbulence smoke, why much newer games are still using good old SPH method for smoke and fog simulation?
David Schoemehl: The turbulence in Dark Void was added as a one-off feature for that specific game so that we could see how it would show in a game. While we feel that turbulence was an awesome feature we have been focused on improving APEX Clothing and Destruction, because that is what developers were telling us they needed.
However, we are pleased to say the APEX Turbulence module is now scheduled for the APEX 1.2 release in Q2 of this year. So we hope to see it appear in many games in the future.
PhysXInfo.com: Mafia II was the first title containing APEX Clothing engine. Do you think this “benefice” was successful? What difficulties have you faced during development?
David Schoemehl: Yes, the work done in Mafia II was invaluable for clothing. We learned so much about how to improve the tools and features for clothing from the work done on this game. The payoff was visible in later titles such as Batman: Arkham City where the time to create clothing and get it in game was drastically reduced.
PhysXInfo.com: Batman: Arkham City also seems to be using APEX Clothing pretty extensively. Is it true that Clothing module is utilized not only as part of PhysX effects, but also for non-GPU accelerated clothing simulation, even on consoles?
David Schoemehl: It is true that clothing can be run on the GPU, CPU, and even consoles. However, for Batman APEX Clothing can only be seen on the PC running on either the CPU or GPU. It should be noted that APEX Clothing was also used for some hair simulation in the pre-rendered cutscenes that can be seen across all platforms.
Clothing performance on consoles is something which we have been focusing on improving with the PhysX 3 and APEX Clothing effort. We are seeing an increase in the number of developers wanting to get APEX Clothing into their console games so I would expect to start seeing this soon.
PhysXInfo.com: One of the most vibrant effects in both Batman titles – scenes containing GPU Rigid Bodies. How has this technology evolved since Arkham Asylum?
David Schoemehl: To be clear, GPU Rigid bodies were only featured in Batman: Arkham Asylum. They were not used in Batman: Arkham City. However, we have been making great progress with GPU Rigid Bodies with regards to performance and simulation stability.
They were last featured in the APEX Art Gallery demo [link] at GDC 2011, and they will be available to the public in APEX 1.1 very soon.
PhysXInfo.com: Another interesting scene – physically simulated banknotes in a bank vault. Are those all individual cloth pieces? How many of them are there?
Johnny Costello: Yes, those are all APEX cloth. During production, that was a really neat scene to watch come together. Initially we weren’t sure if the player would be able to see the characters interacting with the dollar bills since they are so small, so we added forcefields to Catwoman’s animations, and then the scene came alive in a big way.
It is definitely one of my favorite fights in the game. There were about 500 individual bills in that scene, which adds up to approximately 10,000 simulating vertices of APEX cloth.
PhysXInfo.com: You have worked on many GPU PhysX games, but which one is your favorite?
Johnny Costello: I have great memories of all of the game engagements that I’ve been involved with, but working on the Batman series has probably been the most memorable experience for me. I’ve been a Batman fan since I was a little kid, and I basically joined NVIDIA in 2009 and immediately started working on Batman: Arkham Asylum. That was pretty amazing.
And then I had the opportunity to work on Arkham City! I feel very lucky to have been involved with both.
PhysXInfo.com: We bet you are already working on PhysX content for future games. Will they be able to surprise us?
David Schoemehl: Yes, we are constantly on the lookout for upcoming titles that can be enhanced with PhysX and APEX features. On each title we work with developers to do something new or better than in previous titles. In addition, we are seeing a growing number of developers independently experimenting with APEX tools. This is particularly true of the UE3 APEX integration.
Our job on the PhysX Content Team is to show developers and gamers what NVIDIA technologies can bring to games and we measure our success by the ease at which developers can add the features and the response we see from gamers when they play games with PhysX effects enabled. We look forward to continuously improving tools for developers and helping them bring more cutting edge PhysX enhanced games in the future.
Our big thanks to PhysX Content Team for the interview !