/universe-windows-envs

Run Universe environments in Windows (maintained by DeepDrive)

Primary LanguageC++

universe-windows-envs

This repo contains the necessary components for running Windows games in Universe. The initial environment we are releasing is GTA V.

Setup

To setup the GTA V environment, follow the readme here.

Development

This repo contains a Visual Studio solution for hosting Universe environments in Windows. Unlike the other Universe environments, Windows does not run dockerized, so the environment runs natively.

The solution file is in vnc-windows/CommonController/VisualStudio. It currently consists of three projects:

  1. CommonController
  2. GTAVController
  3. GTAVScriptHookProxy

CommonController consists of code that can be used across all environments such as the websocket protocol in AgentConn, and joystick control in JoystickController.

For more on specific environments (like GTA) see their readme's.

Structure

There are two channels by which information flows in Universe (websockets and VNC). In Windows, we use TightVNC and Websocketpp. TightVNC runs as a vanilla server with no modifications besides configuration to capture the game window only. This codebase therefore deals mostly with the websockets side of things.

In addition to implementing the Universe websocket protocol in C++, processes like the VNC server, the game, and the websocket server are managed via python