Nvidia's GameWorks program has yet again found itself in the headlines owing to its highly polarizing and controversial nature. Before we get into this developing story let's quickly remind everyone of what GameWorks is and why it has earned its fair share of notoriety since its inception.
How It All Started
GameWorks is an Nvidia program by which game developers are offered Nvidia optimized implementations for specific in-game effects through graphics libraries. The effects include things like shadows, lighting, hair simulation and ambient occlusion. Back when the program was initially rolled out, game developers were prohibited not only from working with competing vendors such as AMD and Intel to optimize these effects for their GPUs but game developers were even denied access to the code itself. Code that would make its way to their game, a frightening prospect.
This sparked a wave of controversy which started when extremetech.com shed light on some genuinely unsettling details with regards to the GameWorks program and how it can and has actually been used to undermine competition and obfuscate control from game developers. A number of prominent game developers went on to publicly criticize Nvidia's GameWorks program describing it as a "BlackBox" with some developers going as far as to call it "unusable".
The list of developers includes Kostas Anagnostou the Senior graphics programmer at Radiant Worlds, John W Kloetzli, Jr a graphics programmer on the Civilization team at Firaxis Games, Angelo Pesce a Rendering Technical Director & Johan Andersson the Technical Director on Frostbite at Electronic Arts.
— Johan Andersson (@repi) April 6, 2014
As a result of the backlash, Nvidia changed its policy to allow game developers access to the source code as of mid April of last year. However according to AMD, this did not alter the situation, as game developers engaged in the Nvidia GameWorks program were still not allowed to work with AMD to optimize the code for their hardware. Something which Nvidia initially denied but later Nvidia's Tom Petersen and Rev Lebaradian admitted. Witcher 3 developers, CD Projekt Red, reaffirmed this again two days ago.
This is in contrast to AMD's Gaming Evolved Program which the company claims puts no restrictions on developers to optimize game code for any of their competitors. In fact AMD actively worked to optimize its TressFX technology for Nvidia hardware to the point where it performed equally well on both. TressFX is a physics hair simulation technology from AMD that's comparable to Nvidia's HairWorks, which produces hair and fur effects . However unlike HairWorks it performs equally well on both AMD and Nvidia hardware partly because the source code is publicly available and has been optimized for Nvidia as I'd mentioned above and partly because the code base itself is quite clever.
In contrast, GameWorks code which Nvidia only provides to game developers who are in partnership with the company, AMD makes the source code to all visual effects in its library available publicly and to everyone for free, including Nvidia.
Nvidia's HairWorks Implementation In The Witcher 3 Sparks Controversy, PC Gamers On The Offensive
This recent controversy started just a couple of days ago when Marcin Momot a spokesperson from CD Projekt Red, the developers behind The Witcher 3, stated that HairWorks, the previously mentioned hair and fur simulation effect from Nvidia's GameWorks library "cannot be optimized for AMD products". Here's a quote of what he said.
Many of you have asked us if AMD Radeon GPUs would be able to run NVIDIA’s HairWorks technology – the answer is yes! However, unsatisfactory performance may be experienced as the code of this feature cannot be optimized for AMD products. Radeon users are encouraged to disable NVIDIA HairWorks if the performance is below expectations. CD Projekt Red's Marcin Momot
This in addition to the performance issues with Project Cars, which is another Nvidia sponsored GameWorks title, caused quite a bit of stir. And as a result, PC gamers went on the offensive. Criticizing Nvidia's GameWorks and the company's game developer partnership program in general. Embodied in this lengthy post on the pcmasterrace subreddit, which has been upvoted over 4400 times since yesterday and has a 95% positive rating.
The poster pointed out that the implementation of GameWorks libraries was not only harmful to AMD users but was equally harmful to Nvidia users as well. Especially those with 700 series GPUs or older, who as a result had very poor performance in Project Cars. All non Maxwell GPUs showed uncharacteristically poor performance. For example the GTX Titan which debuted for $1000 was only 2 FPS ahead of the $200 GTX 960. And the GTX 780 was even behind that very same 900 series card. To put that into perspective, a GTX 770 is typically 14% faster than a GTX 960, and a GTX 780 is typically 36% ahead of the GTX 960. So that's nearly a 40% performance penalty on Nvidia's own Kepler based (700 and 600 series) GPUs.
Brian Burke, Nvidia's head of marketing for the GameWorks program responded to the backlash today confirming what CD Projekt Red had stated earlier. Here's what he had said in relation to optimization and access to game code.
GameWorks improves the visual quality of games running on GeForce for our customers. It does not impair performance on competing hardware.
Demanding source code access to all our cool technology is an attempt to deflect their performance issues. Giving away your IP, your source code, is uncommon for anyone in the industry, including middleware providers and game developers. Most of the time we optimize games based on binary builds, not source code.
Interestingly Nvidia's stance that Brian Burke outlined here is actually quite contradictory to what was the norm at the company just a few years back and what continues to be the norm for the industry in general.
This is different than what has been the norm for many years. In the past, both AMD and NVIDIA have posted code examples on their websites to demonstrate new ways of coding shadows, ambient occlusion and other rendering techniques. These could be viewed, edited and lifted by any and all game developers and implemented into their game engine or into middleware applications. GameWorks is taking this quite a bit further by essentially building out a middleware application of its own and licensing it to developers.
It's very worrisome when one hardware company begins to implement proprietary code into video games which are naturally expected to run on a variety of hardware from different vendors. Worse yet if the code can't be optimized for other vendors as CD Projekt Red has stated. However one could and would rightfully argue that every company including Nvidia and AMD has the right to develop and optimize technologies for its hardware. No one should disagree with that, however issues arise from the corporate politics that ensue. And that's when other hardware vendors are denied the opportunity to optimize for games as they normally would, or provide an alternative to code that performs poorly.
It's quite unfortunate that Nvidia has taken this recent turn with GameWorks towards locking code and limiting control. A future where the competitors' only choice is to fill the game with even more proprietary code of their own to compete is not one that gamers or developers will want or appreciate.
Ultimately the decision to partake in the GameWorks program is that of the game developer. The implications however are often seemingly overlooked or misunderstood. And that's when gamers have to step in as they did on reddit to make their voices heard. Make yours heard below in the comments.