Gameworks-Interview mit Nvidia, englisch
PCGH asks Nvidia on Gameworks - original interview
PCGH: You've had a game-development and co-marketing program before: The Way it's meant to be Played, better known as TWIMTBP. What happened to it?
Rev Lebaredian (Nvidia): The Way It's Meant to be Played (TWIMTBP) is still alive and going strong. It is NVIDIA's promise to the gamer. It means a lot of things, but first and foremost, it's the promise of a great gaming experience.
We deliver on this promise with great game hardware (GeForce, Tegra/Shield, and GRID); game technology (SLI, GeForce Experience, 4K, etc...); and NVIDIA GameWorks.
PCGH: What is the major difference between Gameworks and TWIMTBP?
Rev Lebaredian (Nvidia): While TWIMTBP is our promise of a great gaming experience, NVIDIA GameWorks is the platform that helps achieve that promise.
NVIDIA GameWorks is the umbrella under which we've collected the various game-related technologies we've developed and polished over the years. It's our platform for game developers, that allows them to build cinematic and interactive game experiences. The most critical part of the NVIDIA GameWorks platform is the 300+ visual effects engineers we have dedicated to developing libraries, developer tools, samples, and working closely with game developers to support them and help enhance their games.
PCGH: Why are there such a comparatively low number of games making use of TXAA or Turbulence effects? At least TXAA shouldn't be too hard to implement, right?
Rev Lebaredian (Nvidia): Many recent games use TXAA: Titanfall, Watchdogs, Call of Duty: Ghosts, Assassin's Creed IV Black Flag, Batman: Arkham Origins, ... Many recent games also use NVIDIA Turbulence: Warface, Daylight, Batman: Arkham Origins, Hawken, Planetside 2, ..., just to name a few.
Ultimately, the decision to integrate a particular technology depends on a number of factors and constraints; not the least of which include whether the effect improves the particular game, time to release, resources availablity and prioritization, etc...
PCGH: A couple of Gameworks libraries like HBAO+ or Clothing do improve the gaming experience on system equipped with Radeon graphics cards. Why don't you point this out more prominently [in order to appease Radeon-owners]?
Rev Lebaredian (Nvidia):We try to point this out, but not everyone always wants to listen. Maybe you can help us get the word out. :-)
PCGH: How do Gameworks modules get in the game? Is it the developer approaching you or do you also proactively approach the developers?
Rev Lebaredian (Nvidia): It works both ways. Often developers come to us after seeing some of the cool new tech we've presented; either directly to them or through other means (e.g. published papers, the web, conference presentations, etc...). Other times, once we've started engaging with a developer and they've showed us their game, we suggest GameWorks tech that we think will complement and enhance their game for their users.
PCGH: Is Gameworks restricted to DX11 hard- as well as software-wise? Do you support older cards as well? Do you use other APIs or techniques not part of DX11(.x) in them?
Rev Lebaredian (Nvidia):GameWorks encompasses a wide range of game-related technology, and is not restricted to DX11. Many of our effects support multiple graphics APIs (e.g. OpenGL). Much of our technology doesn't even require a GPU (e.g. CPU-based PhysX).
That being said, the most interesting tech we offer pushes computational boundaries, and requires GPUs as a result. Being on the cutting edge often necessitates using more recent APIs such as DX11, although not in every case. It depends on the specific module in question.
For modules that require GPU compute, we have mostly used CUDA in the past. This was primarily because we were the first to start doing any GPU physics, and CUDA was the most mature compute API available. Recently, we've started incorporating DirectCompute into some of our libraries (e.g. HairWorks), and will continue to use whichever APIs provide the best solution for a given problem.
PCGH: On a DX11-PC, does a Gameworks module always use the same code path regardless of what hardware is inside?
Rev Lebaredian (Nvidia): Many GameWorks modules have both CPU and GPU paths. If the module is using the CPU path, there's obviously only one codepath, regardless of the hardware. Most of our GPU compute paths in the past have been written in CUDA, which is only available on NVIDIA. For non-NVIDIA hardware, the CPU path is available. In the cases where we have non-CUDA implementations of a GPU path, we don't have different vendor-specific paths, but game developers with a source license are free to modify our GameWorks code.
PCGH: Is there a fixed code-base in each Gameworks-module or can you optimize those libraries further after launch without having the developer to issue a patch, i.e. in your driver via means of shader replacement, should a new, better technique become available?
Rev Lebaredian (Nvidia): It depends on the change in question. If the change is limited to the shader(s), then driver-level shader optimization is an option, and doesn't require a patch from the vendor. If the change is deeper in the libraries linked with the game, or requires a content change, then it will obviously require a patch to the game itself.
PCGH: Can developers look at the code of the Gameworks modules, making suggestions to improve the way certain things are handled, for example interaction with their respective engine?
Rev Lebaredian (Nvidia): Absolutely! We offer source licensing for GameWorks modules, and do not impose restrictions on what a developer can do with the source. Also, we often take their suggestions and integrate it back into our code, so they don't have to branch too far from our code base, and can take advantage of future updates.
PCGH: How does the interaction with the game-engine work? Is there a specifically tailored mini-API or do you have to make the modules "talk" to each engine separately?
Rev Lebaredian (Nvidia): An API is provided with each of our modules to ease the pain of integrating into any game engine. If a developer wishes to have a deeper integration, they can choose to license the source and bypass the API.
PCGH: How do you protect your IP in the Gameworks modules? Are the binaries encrypted or something like that, or do you rely on license agreements with the game developers?
Rev Lebaredian (Nvidia): Binary versions of our modules don't have any special encryption. The source code licensing has standard protections you would expect about sharing IP (e.g. not putting source code out into the public), but nothing out of the industry norms.
PCGH: Is the PC your only target platform for Gameworks?
Rev Lebaredian (Nvidia): Although the PC is a critical platform for NVIDIA GameWorks, we support numerous platforms, depending on the module. PhysX for examples is available on all the major consoles (current and previous generation), as well as on mobile platforms (Android and iOS).
PCGH: Are there any modules besides waveworks and physx, that are currently or in the near future available on so called next-gen consoles, i.e. PS4 and XB1?
Rev Lebaredian (Nvidia): Currently those are the main ones—including PhysX Clothing and PhysX Destruction—but we're always listening to developers to see what they want. If we have demand from developers to provide a module on consoles, and it is reasonable considering the performance limits of the hardware, we will try our best to support it.
PCGH: There are accusations, you would deny developers the possibility to have your competitor AMD look at the code and suggest improvements. How do you respond to that?
Rev Lebaredian (Nvidia): These are very strange accusations. If we're talking about specific GameWorks source code, then yes, there are restrictions to sharing our source code with those that don't have a source code license (e.g. competitors). However, this is not only standard practice, but reasonable. None of our competitors share source code of their IP with us or any other competitor before the game is released.
The vast majority of work we do on games is done without any access to any source code (game code or other). Despite that, our customers regularly enjoy drastic performance and quality improvements with new GeForce driver releases.
I'd also like to point out that we have never imposed any restrictions on developers in regards to sharing pre-release builds of their game with our competitors. I can't say the same is always true on the other side.
Geforce GTX 1080 im Test: Erster 16-nm-König mit 2 GHz im OC-Betrieb