Coder Social home page Coder Social logo

yoursoniscool / geforcenow-sdk Goto Github PK

View Code? Open in Web Editor NEW

This project forked from nvidiagameworks/geforcenow-sdk

0.0 0.0 0.0 137.19 MB

This is the home of the SDK for GeForce NOW

Home Page: https://ge-force-now-sdk-green.vercel.app

License: Other

C 98.69% CMake 1.31%

geforcenow-sdk's Introduction

NVIDIA GeForce NOW SDK Release 2.2

At a Glance

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.

Please refer to the SDK GFN Primer for a more detailed overview of the features, and to get up and running quickly with the APIs, refer to the SDK Quick Start Guide for common integration scenarios, and code snippets to use for APIs.

What's New in This Release

  • Added a new GFN Cloud Check API, gfnCloudCheck, which allows additional validation of results with challenge information.
    • API is available on Windows only for now. Please see the Cloud Check V3 API Guide for extensive information about this API.
    • A set of utilities on working with this API is provided in ./samples under the /Common folder.
  • Added a new stand-alone Cloud Check API Sample.

GeForce NOW Developer Portal

  • Please contact us to register your organization or game with the GeForce NOW Developer Portal.

Development Guide

Software Stack

Software Stack

Each feature has different integration points. Some features define REST Web APIs, while others integrate into the game or publisher application with native C interfaces. Refer to documentation for each feature in the doc folder.

Some features require a compatible version of GeForce NOW to be installed on the client system. The integrated GFN SDK components are designed to take care of downloading and installing GeForce NOW client when needed.

GeForce NOW SDK Package

The distribution is laid out as below:

.
├─── CMakeLists.txt
├─── CMakePresets.json
├─── LICENSE
├─── LICENSE.samplelauncher.thirdparty
├─── LICENSE.thirdparty
├─── README.md
|
├─── doc
|   │   SDK-GFN-ACCOUNT-LINKING-SSO-GUIDE.pdf
|   │   SDK-GFN-CLOUD-API.pdf
|   │   SDK-GFN-DEEP-LINKING.pdf
|   │   SDK-GFN-MOBILE-TOUCH-INTEGRATION-GUIDE.pdf
|   │   SDK-GFN-IP-API-GUIDE.pdf
|   │   SDK-GFN-PRIMER.pdf
|   │   SDK-GFN-QUICK-START-GUIDE.pdf
|   └───SDK-GFN-RUNTIME
|       └───index.html
|
├───include
│       GfnRuntimeSdk_CAPI.h
│       GfnRuntimeSdk_Wrapper.c
│       GfnRuntimeSdk_Wrapper.h
│       GfnSdk.h
│       GfnSdk_SecureLoadLibrary.c
│       GfnSdk_SecureLoadLibrary.h
│
├───linux
│   └───x64
│           GfnRuntimeSdk.so
├───win
│   ├───x64
│   │       GfnRuntimeSdk.dll
│   │
│   └───x86
│           GfnRuntimeSdk.dll
│
└───samples
    |   README.md
    ├───CGameAPISample
    ├───CloudCheckAPI
    ├───Common
    ├───SampleLauncher
    └───SDKDllDirectRefSample

SDK Build Overview

The components that are needed to use the GeForce NOW SDK in your application come pre-built, and do not require any additional build steps to use in your project(s). Refer to the SDK Primer and Quick Start guides located in the ./doc folder for more info on integrating the SDK and calling the APIs in your applications.

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

Building On Windows

There are two methods to build for Windows:

  • Command Line
  • Visual Studio's cmake support

Command Line Method

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 Studios 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.

Visual Studio CMake Method

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:

  1. Open Visual Studio.
  2. Select the "Open Folder" option.
  3. 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.

Building for Linux

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/SampleLauncher/SampleLauncher

geforcenow-sdk's People

Contributors

andresv-nv avatar ckalani avatar davidw-nv avatar dclarknv avatar dlt-nv avatar prakashy-nv avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.