The purpose of this document to provide guidance how to use Cloud Gaming For Windows reference solution on Windows 10 OS. Document describes how to configure environment for building this solution and how to run it.
This product is based on open source GamingAnywhere solution, which is available on public github. It provides end to end solution for cloud gaming, based on client – server architecture. Base solution has been modified and improved to benefit advantages of the Intel hardware architecture. Modified code is provided as reference solution for future implementations.
Architecture of the Cloud Gaming For Windows is based on client-server model of communication. Server is responsible for receive request from client, launch and get content from game, encode content and send it to the client. Client is responsible for connect to the server, receive content from server, decode content and display it on the client screen.
Following table describes recommended hardware configuration:
Componenty Type | Part Name |
---|---|
Host | Intel Purley based |
Host CPU | w/SKX/CLX |
Card | Visual Cloud Accelerator Card – Rendering (VCAC – R) |
Node CPU | 8th Gen Intel Core i7 |
Node GPU | Radeon RX Vega M GH graphics (integrated with Intel CPU) |
This is software requirements for hardware listed above. Software specific for Cloud Gaming For Windows is described in the next section named Additional Specific Software requirements for Cloud Gaming For Windows.
The following table describes recommended software configuration for selected hardware:
Component Type | Part Name |
---|---|
Host OS | CentOS 7.6 3.10-0.693 |
Card software on host | VCA SW 2.6 |
Card node OS | Windows 10 1803 |
Card software | VCA SW 2.6 |
Cloud Gaming For Windows to working properly needs properly graphics drivers. KBL-G have two graphics adapters (Intel and AMD). Proper version of graphics drivers:
- Intel HD Graphics 630 driver (proper version 25.20.100.6373) - https://downloadmirror.intel.com/28289/a08/win64_25.20.100.6373.exe
- Radeon RX Vega M GH Graphics driver (proper version 24.20.13017.1009) - https://downloadmirror.intel.com/28172/a08/GFX_Radeon_BETA_Win10_64_18.9.1.exe
This release of the Cloud Gaming For Windows is dedicated for Windows 10 OS. Following resources are needed to build and run Cloud Gaming For Windows:
- Microsoft Visual Studio 2017 (Windows SDK verison: 10.0.17763.0)
- Intel Media SDK 2018 R2 - https://software.intel.com/en-us/media-sdk/choose-download/client
- FFMPEG binaries(supported version 4.1.4):
- EasyHook binaries (supported version 2.7) - https://github.com/EasyHook/EasyHook/releases/tag/v2.7.6789.0
- Microsoft Visual C++ Redistributable for Visual Studio 2010:
- Microsoft Visual C++ Redistributable for Visual Studio 2017:
- Intel Media SDK 2018 R2 - https://software.intel.com/en-us/media-sdk/choose-download/client
- FFMPEG binaries(supported version 4.1.4):
- EasyHook binaries (supported version 2.7) - https://github.com/EasyHook/EasyHook/releases/tag/v2.7.6789.0
Cloud Gaming For Windows solution containing following projects:
- asource-system – audio initialization and configuration
- CloudGamingForWindows – bundle of installers
- CloudGamingForWindowsInstaller – main installer of components
- ctr-sdl – sdl events handling
- download-extra-elements – download 3rd party component as FFMPEG and EasyHook
- encoder-audio – audio encoding handling
- encoder-mxf – video encoder handling
- filter-rgb2yuv – screen image processing
- ga-client – client related components
- ga-hook - additional GFX API calls hooking mechanism implementation
- ga-server-event-driven – run media server and start injecting into game process
- ga-server-manager – Main application, run server and wait for response from client
- gpa-hook – main GFX API calls hooking mechanism implementation
- libga – processing components, configurations, loading modules
- live555-adapter – make dll from static libraries of live555 streaming media
- server-live555 – live555 media server related components
Configuration of Cloud Gaming For Windows can be proceed in the two different methods. First, preferred one is automatically method of configuration which is proceed using specially prepared installer. Installer require internet access, to working properly.
Another option of configuration is manual preparation of the environment. See below steps to do it:
- Install MS Visual Studio 2017
- Install Intel Media SDK 2018 R2
- Download Cloud Gaming For Windows source code from: https://github.com/OpenVisualCloud/Cloud-Gaming-Windows-Sample
- Download all required external resources and place in proper directories:
- Static libraries (FFMPEG and EasyHook) files (.lib) should be placed in:
- deps.win64 >lib (for 64 bit version of files)
- deps.win32 >lib (for 32 bit version of files)
- Header files (.h) schould be placed in:
- FFMPEG:
- deps.win64 >include >ffmpeg (for 64 bit version of files)
- deps.win32 >include >ffmpeg (for 32 bit version of files)
- EasyHook:
- deps.win64 >include >easyhook (for 64 bit version of files)
- deps.win32 >include >easyhook (for 32 bit version of files)
- FFMPEG:
- Executable files (.exe) and dynamic linked libraries files (.dll) schould be placed in:
- FFMPEG:
- deps.win64 >bin >ffmpeg (for 64 bit version of files)
- deps.win32 >bin >ffmpeg (for 32 bit version of files)
- EasyHook:
- deps.win64 >bin >easyhook (for 64 bit version of files)
- deps.win32 >bin >easyhook (for 32 bit version of files)
- FFMPEG:
- Static libraries (FFMPEG and EasyHook) files (.lib) should be placed in:
Build process is executed by MS Visual Studio 2017. To perform it user should open GamingAnywhere.sln solution. IDE should allow to build x64 configuration only (in case of manual environment configuration, should be possible to build also Win32 configuration). To build click select build configuration e.g.: Release & x64 then click Build-->Build Solution
Build results should be divided into client and server side. Installer is independent from client and server.
If environment configuration was proceed automatically, there are two methods of launching Cloud Gaming For Windows. First method is launch using icon placed in the Start menu. Separatelly icons for client and for server. Another option is to run Cloud Gaming For Windows via command line shell. To run Cloud Gaming For Windows game server, open Windows command line shell and navigate to the folder with server binaries:
Example:
C:\ >cd <path_to_the_server_bin_folder>
Next, ensure ga-server-manager.exe file and other binaries are present in that folder.
Then execute ga-server-manager.exe file, which create process waiting for request from client to launch the selected game. When client send request, chosen game will be runned.
To launch server following command line should be executed:
C:\<path_to_the_server_bin_folder>ga-server-manager.exe <optional_path_to_conf_file>
<optional_path_to_conf_file> - path to the server configuration file.
If ga-server-manager.exe will be runned without <optional_path_to_conf_file> parameter, application will get default config file which is placed in config subdirectory in the directory with binaries.
Note: Before start Cloud Gaming For Windows game server, make sure, that process which will be runned by Cloud Gaming For Windows is not running already.
Same as in the server case, if environment configuration was proceed automatically, there are two methods of launching Cloud Gaming For Windows. First method is launch using icon placed in the Start menu. Separatelly icons for client and for server. Another option is to run Cloud Gaming For Windows via command line shell.
To run Cloud Gaming For Windows client, run Windows command line shell and navigate to the folder wuth client binaries:
C:\ >cd <path_to_the_client_bin_folder>
Next, ensure ga-client.exe file and other binaries are present in that folder.
Then launch ga-client.exe file which send request to the server. After sending request client waits some time and try to connect to the running game.
Before run client, set proper ip address of server in the config file.
To launch client following command line should be executed:
C:\<path_to_the_client_bin_folder>ga-client.exe <optional_path_to_conf_file>
<path_to_conf_file> - path to the client configuration file.
If ga-client.exe will be runned without <optional_path_to_conf_file> parameter, application will get default config file which is placed in config subdirectory in the directory with binaries.
Note: If client doesn't connect to the game try to run ga-client.exe one more time. Problem could be caused by above average game launching time.