Adding Particles and Turbulence to HAWKEN
Winner of 10 E3 awards, HAWKEN is a Free-to-Play online FPS developed by Adhesive Games. Built using the Unreal Development Kit (UDK), it features giant robots fighting in ruined futuristic cities.
HAWKEN uses PhysX particles and APEX Turbulence to create a more immersive and realistic experience for the player. We talked to Johnny Costello of the NVIDIA PhysX Art Team to find out how it was done.
Looking at the Turbulence effects, they feature a huge number of particles, how did you achieve that?
Particle count for visual effects is usually something you have to limit in games due to performance reasons. However, Turbulence specializes in rendering tens of thousands of particles, simulating those particles so they will interact with the player and the game environment, and running everything quickly on the GPU. This tech seemed like the perfect thing to help show off HAWKEN.
How do artists create Turbulence content?
Turbulence is integrated directly into UE3, so authoring feels pretty natural. You need to bring together several assets depending on what type of Turbulence effect you’re going for. First, you need an emitter that uses APEX particles, then a grid actor that provides the simulation volume, and finally you can add other APEX actors like jets, attractors, and vortices that can be used to influence the grid simulation. Additionally, you can also have certain collision shapes affect the simulation. All of these elements come together to create a compelling visual effect.
For example, in the screenshot below, you can see the grid simulation volume (the large blue cube), a noise actor (smaller blue cube) that adds some interesting motion to the particles on top of the motion from the simulation, a jet actor (red capsule shape) that will push the simulation vectors to the right, and an emitter to provide the particles. All these components are combined to create the final effect.
What else could Turbulence be used for?
In HAWKEN, we focused on using Turbulence for mech sparks and various energy effects. However, you can also use the Turbulence simulation grid to drive other kinds of particles. We’ve been experimenting with using shadowed sprite smoke particles to create dense smoke effects as well as using mesh particles with Turbulence to produce some pretty wild debris effects. You could also associate Turbulence assets like attractors and jets with weapon interactions to allow the player to directly manipulate the simulation with their weapons. There’s really a lot you could do.
What’s unique about PhysX mesh particles?
The PhysX particles that we added to HAWKEN were actual 3D meshes that could rotate and be shadowed rather than just 2D billboards. We felt that HAWKEN was such a gritty, visceral game that it would really benefit from more persistent debris in the world. It’s fun to have a massive firefight with a bunch of futuristic mechs and watch bits of mech armor, rock chunks, and metal pieces break off during the action. And then, after the fight, the ground is littered with debris and continues to interact with your mech as you stomp your way to the next battle. Interactive particles really help reinforce the enormous size and mass of your mechs in the game world.
How do developers add PhysX particles to their game?
It’s pretty easy! There are some great instructions to get you started on the Unreal Developer Network under our PhysX Particle Starter Kit page:
How were these features configured to ensure a great play experience on a wide range of NVIDIA GPUs?
In HAWKEN, just like in most of our GPU PhysX titles, we implemented a system where the user can tune their PhysX effects just like any other video setting to allow for multiple configurations of the game that will run at high frame rates on varying machines. This allows gamers with aging systems to still experience some of the PhysX effects, and then gamers on more updated machines can crank this setting to the max and get all the PhysX goodness. We want the PhysX content to produce a positive play experience for gamers with machines at both ends of the spectrum. Specifically, in HAWKEN, for the ‘PhysX On’ setting, players will see interactive PhysX particle effects, and for the ‘PhysX High’ setting, gamers will get both the PhysX particles as well as all the Turbulence effects.
How do developers get a hold of APEX Turbulence?
We provide an APEX Turbulence Patch for UE3 and customers can get access to that by emailing us at apex-beta@nvidia.com. The patch does require access to UE3 source and won’t work with UDK.
See also: http://developer.nvidia.com/physxapex-download-page
For non-UE3 users we provide a standalone Particle Editing Tool for APEX 1.3. . The tool is currently in closed beta. Interested customers can request access to the tool by emailing us at apex-beta@nvidia.com.