Recent articles about Metro 2033 have revealed so much technical details (about engine itself, and PhysX components specifically) so, one would think, nothing new can be added. However, recent interview with Chief Technical Officer Oles Shishkovstov by PCGamesHardware.com has something to offer:
PCGH: It could be read that your game offers an advanced physics simulation as well as a support for Nvidia’s PhysX (GPU calculated physics) can you tell us more details here? Does regular by CPU calculated physics affect visuals only or is it used for gameplay terms like enemies getting hit by shattered bits of blown-away walls and the like?
Oles Shishkovstov: Yes, the physics is tightly integrated into game-play. And your example applies as well.
PCGH: Besides PhysX support why did you decide to use Nvidia’s physics middleware instead of other physics libraries like Havok or ODE? What makes Nvidia’s SDK so suitable for your title?
Oles Shishkovstov: We’ve chosen the SDK back when it was Novodex SDK (that’s even before they became AGEIA). It was high performance and feature reach solution. Some of the reasons why we did this – they had a complete and customizable content pipeline back then, and it was important when you are writing a new engine by a relatively small team.
PCGH: What are the visual differences between physics calculated by CPU and GPU (via PhysX, OpenCL or even DX Compute)? Are there any features that players without an Nvidia card will miss? What technical features cannot be realized with the CPU as “physics calculator”?
Oles Shishkovstov: There are no visible differences as they both operate on ordinary IEEE floating point. The GPU only allows more compute heavy stuff to be simulated because they are an order of magnitude faster in data-parallel algorithms.
As for Metro2033 – the game always calculates rigid-body physics on CPU, but cloth physics, soft-body physics, fluid physics and particle physics on whatever the users have (multiple CPU cores or GPU). Users will be able to enable more compute-intensive stuff via in-game option regardless of what hardware they have.
Pay attention to last paragraph – Metro 2033 will feature true multi-core implementation of GPU PhysX content – feature that most PhysX titles are lacking currently ? We are curious to see if this will really work, and since game has already gone gold, we’ll learn that very soon.