The GeForce NOW SDK (GFN SDK) is a means for game developers and publishers to directly integrate with GeForce NOW, NVIDIA's Cloud Gaming Service, which allows users to experience GeForce gaming anywhere and enables publishers and game developers to take advantage of high-performance rendering through NVIDIA's top-notch DirectX and Vulkan drivers on both Windows and Linux platforms.
The GFN SDK provides an ever-growing set of APIs that allows GFN partners to allow their games and applications to have a more seamless integration with GeForce NOW features. These features include abilities for games and applications to:
- Run on a wide range of devices without needing to port to each device and operating system.
- Know when they are running inside the secure GeForce NOW environment to allow the bypass of certain system checks such as Display Driver versioning or application binary verification.
- Obtain information about the user's client system, including touch support, to tailor the user's experience to their environment.
- Allow GFN sessions to start from a host application or GFN Client Deep Link, providing streaming of games and applications without needing to build a cloud gaming environment.
- Allow customers to get into games and applications faster with GFN's Pre-Warm features.
The GFN SDK is ever-evolving to provide easy integration of GeForce NOW features into publisher applications and games, as well as more efficient way to integrate games into the GeForce NOW ecosystem.
- Simplified SDK integration by removing the runtime library which used to be required to enable some SDK features.
- This should make future integrations easier and reduce the process overhead of using the SDK.
- Clients now only need to include the SDK header and source files in their project.
- A side effect of the above change is that some older, largely unused client APIs were removed.
- This removal only affects publishing platforms that wanted to integrate the GeForce NOW desktop client into their workflows.
- Those requiring this functionally should refer to the GFN Client SDK which offers a much richer and more robust method of integrating a GFN client into other applications.
- Removed the SampleLauncher sample which was designed to showcase the above APIs but added a significant overhead to build times.
- Added a set of Editbox APIs; a cleaner, refactored version of existing SetActionZone APIs. These APIs are functionally equivalent.
- Converted documentation from PDF & html to markdown format for easier viewing on github.
- Various fixes and improvements.
- Please contact us to register your organization or game with the GeForce NOW Developer Portal.
The distribution is laid out as below:
.
├─── CMakeLists.txt
├─── CMakePresets.json
├─── LICENSE
├─── LICENSE.thirdparty
├─── README.md
├─── doc
│ | GfnSdk-Account-Linking-SSO.md
│ | GfnSdk-API-Definitions.md
│ | GfnSdk-Cloud-API.md
│ | GfnSdk-Deep-Linking.md
│ | GfnSdk-Mobile-Touch-Integration.md
│ | GfnSdk-IP-API.md
│ | GfnSdk-Quick-Start.md
│ | GfnSdk-Unreal-Engine-Integration.md
│
├───include
│ | GfnRuntimeSdk_CAPI.h
│ | GfnRuntimeSdk_Wrapper.c
│ | GfnRuntimeSdk_Wrapper.h
│ | GfnSdk.h
│ | GfnSdk_SecureLoadLibrary.c
│ | GfnSdk_SecureLoadLibrary.h
│
└───samples
| README.md
├───CGameAPISample
├───CloudCheckAPI
├───Common
├───CubeSample
├───OpenClientBrowser
├───PartnerDataAPI
└───PreWarmSample
The GeForce NOW SDK comes as a set of headers and source code to be included in your project(s). Refer to the Quick Start guide located in the ./doc folder for more info on integrating the SDK and calling the APIs in your applications. You can also refer to the source code of the included sample projects located under ./samples for working code on integrating and calling the APIs.
If you wish to build the samples included in this SDK distribution to use as examples on how to call the GeForce NOW SDK's APIs on either Windows or Linux, you will first need cmake 3.27 or greater installed to configure the makefiles. If cmake 3.27 or greater is not installed, refer to https://cmake.org for installation information for your Operating System.
The Operating Systems supported by the GeForce NOW SDK APIs and samples are:
- Windows x64
- Windows x86
- Linux x64, specifically, Ubuntu 22 or greater
There are two methods to build for Windows:
- Command Line
- Visual Studio's cmake support
To build from the command line the simplest way, you will need a build system manager such as ninja-builder (https://ninja-build.org/) installed and available via your PATH environment variable. If you do not have it installed, follow the instructions on the website.
You will also need Visual Studio installed, along with the Visual Studio Developer Comand Prompt tools installed. Finally, you will need to have Visual Studio's command line build tools available as part of your PATH.
Once these tools are configured, open a command prompt to the root of the GeForce NOW SDK distribution package, and use cmake to configure the makefiles via one of the presets:
- -x64-windows-debug
- -x64-windows-release
- -x86-windows-debug
- -x86-windows-release
Example:
cmake --preset x64-windows-release
This will allow cmake to configure the makefiles and use ninja to find the compiler tools to build the samples. Once done, there will be an "_out" folder at the root of the distribution, with a subfolder named as the present used. Example:
./_out/x64-windows-debug/
You can change directory to this subfolder and to the subfolder for the sample you wish to run, and execute the sample's executable binary from there.
If you wish to configure the project and build from Visual Studio, then you will need to have Visual Studio's cmake support tools installed. If you are not familiar with this feature, please see this link: https://learn.microsoft.com/en-us/cpp/build/cmake-projects-in-visual-studio
Please make sure to have the support for cmake 3.19 or greater installed.
Once cmake 3.19 or greater support is available in your version of Visual Studio, then follow these steps:
- Open Visual Studio.
- Select the "Open Folder" option.
- Point Visual Studio to the root folder of the GeForce NOW SDK distribution. (This is the folder that containts CMakeLists.txt and this README text file.)
Once opened, Visual Studio's cmake support will automatically configure the build based on the makefiles in the distribution, allowing you to build all or individual samples.
In addition to cmake 3.27 or greater, you will also need to have ninja-build (https://ninja-build.org/) installed. If you do not have it installed, follow the instructions on the website.
Once installed, open a command prompt to the root of the GeForce NOW SDK distribution package, and use cmake to configure the makefiles for Linux for one of the Linux presets:
- -x64-linux-debug
- -x64-linux-release
Example:
cmake --preset x64-linux-release
This will configure the makefiles for the specified preset, and create the "_out" folder at the root of the distribution folder structure, with a subfolder with the same name as the preset used. To build the samples, run cmake again with the same preset with the --build flag.
cmake --build --preset x64-linux-release
This will produce the build in a subfolder corresponding to the name of the sample under "/samples" in the current directory. You can then run the sample from the subfolder. Example:
./_out/x64-linux-release/samples/CloudCheckAPI/CloudCheckAPI