Views regarding Nvidia’s GameWorks have been one of the more polarizing in the industry; with gamer’s and developers either praising the middlewears features and functionality, or cursing the softwares blackbox nature.
But in a rather surprising move, Nvidia has decided to make the first moves to make GameWorks opensource. The Nvidia GameWorks 3.1 software development kit 3.1 SDK is available on GitHub; with Physx, Physx Clothing and Physx Destruction code already available. Added during GDC was Volumetric Lighting and FaceWorks demo.
Nvidia aren’t done yet though, promising that HairWorks, HBAO+ and WaveWorks would also see a public release. This news means developers will be free to “look under the hood” of the software, and be able to better tweak the performance for multiple hardware, or better integrate GameWorks with their chosen game engine.
In theory, this will also provide AMD users with a performance boost for titles which heavily use GameWorks, providing AMD the opportunity to better optimize their drivers.
Nvidia have also announced that their VRWorks program is now officially supported by Unity Engine, one of the most popular game engines currently on the market. Considering VRWorks already is supported by the insanely popular Unreal Engine 4 (made by Epic Games) and it’s pretty fair to say that Nvidia has the potential to be quite a potent driving force in VR development for the PC.
According to Nvidia just some of the benefits of their API’s include:
“VR SLI—provides increased performance for virtual reality apps where multiple GPUs can be assigned a specific eye to dramatically accelerate stereo rendering. With the GPU affinity API, VR SLI allows scaling for systems with >2 GPUs.
“Multi-Res Shading—an innovative new rendering technique for VR whereby each part of an image is rendered at a resolution that better matches the pixel density of the warped image. Multi-Res Shading uses Maxwell’s multi-projection architecture to render multiple scaled viewports in a single pass, delivering substantial performance improvements.”
https://www.youtube.com/watch?v=09dT3vkwXBA
Whether the move to make GameWorks more open source is a counter to AMD’s GPUOpen initiative is down to your interpretation; but it’s no secret a myriad of developers have complained at Nvidia’s unwillingness to share their sourcecode in the past. This isn’t just because it hampers performance across other (non Nvidia) hardware, but because developers can’t fix their own issues, instead what could be simple bug fixes requires Nvidia’s intervention.
While it’s early days to see how this all plays out, credit must be given to Nvidia for embracing a more open nature approach to game development. With any luck we’ll start seeing both AMD and Nvidia cooperating a little, and perhaps in the future developers will start taking the best parts of GPUOpen and GameWorks to create even more impressive titles, which is good news for everyone in the industry – especially end users.
It’s also possible Nvidia’s Open Source plans with GameWorks might filter into other areas of the company, including CUDA. This is especially true since both AMD and Otoy are working on plans to convert native Cuda source code to C++ or OpenCL (respectively).
For more on Nvidia’s GameWorks VR presentation checkout their official PDF here.