Here are two screenshots and a video from the 3D simulation HEAT (Hazard, Emergency, & Accident Training). I was the lead programmer from 2006–2008 and did almost entirely engine work. The models in the scene and the scene itself were created by other team members.
The engine included the following physics features (using the then Ageia PhysX, now Nvidia PhysX libraries):
- Rag doll physics used for “victims” allows AI-driven characters to collapse from smoke inhalation or other dangers. Players can then drag the unconscious victim around just as they would in a real emergency situation. Other players can collapse if they are exposed to dangerous situations.
- Fluid effects using the PPU for realistic fire hose spray. The hose can whip around using jointed constraints via the water pressure just as it would in real life.
- Fluid effects to simulate realistic fire and smoke behavior.
- Multiple capsule, sphere, and box constraints are used on the characters to allow for realistic collision detection within the environment. The Character Controller class is used to easily move the characters around the ground, house, etc.
- Triangle collision meshes are used for a house allowing the player to move inside it, and ray queries allow the game engine to keep the camera from getting stuck behind a wall in third-person mode.
- Players utilize a circular “cross-hair” that acts as an extension of their vision and actions. Ray queries are used to determine if a crosshair is sighted over an object with physics shapes. Players can then click the mouse and interact with that object.
- Multi-shape actors are used on objects like the fire engine, axe, breathing apparatus, etc.