Skip to content

This project is designed to be an open source implementation for streaming desktop games using WebRTC

License

Notifications You must be signed in to change notification settings

Akilan1999/remotegameplay

Repository files navigation


p2prc

Maintenance made-with-Go

The aim of this project is develop a WebRTC screenshare designed for streaming video games and accepting remote inputs.
There will be ansible instructions which can be executed inside into any virtual environment. This will be a plugin which complements the project P2PRC

Testing with X-Plane 11

A screenshot of X-Plane 11 (flight simulator game) running smoothly via WebRTC

Laplace

Based on the fork: https://github.com/Akilan1999/laplace/tree/keyboard_mouse

Installation

Installation required to share keyboard and mouse

Currently, you can use Barrier KVM.

What is Barrier KVM?

Barrier is software that mimics the functionality of a KVM switch, which historically would allow you to use a single keyboard and mouse to control multiple computers by physically turning a dial on the box to switch the machine you're controlling at any given moment. Barrier does this in software, allowing you to tell it which machine to control by moving your mouse to the edge of the screen, or by using a keypress to switch focus to a different system.

Barrier KVM build status and links to install

Platform Build Status
Linux Build Status
Mac Build Status
Windows Debug Build Status
Windows Release Build Status
Snap Snap Status

Build from source

# Install golang 
# https://go.dev/doc/install

# Build 
go build .

# Configure (run only once)
./remotegaming -setconfig

# Migrate (run only once)
./remotegaming -Migrate

# The following are OR Based instruction.
# You could start the server in either of
# of the modes. (run every time you
# would want to start a server)

# Setting up based on the generated config 
# open config.json 
{
 "SystemUsername": "<auto-set>",
 "BarrierHostName": "<auto-set>",
 "Rooms": "<auto-set>",
 "IPAddress": "<auto-set>",
 "ScriptToExecute": "",
 "SSHPassword": "",
 "NATEscapeGameServerPort": "<auto-set>",
 "NATEscapeScreenSharePort": "<auto-set>",
 "NATEscapeBarrierPort": "",
 "BackendURL": "<auto-set> or set to a gameserver externally hosted",
 "BrowserCommand": "Requires the user to setup the command that triggers the browser from the Terminal or Command line",
 "Rate": 0,
 "ScreenName": "Entire screen (The default point) or add custom screename or tab",
 "InternalGameServerPort": "8088",
 "InternalScreenSharePort": "8888"
}

## Both Servers 
## Starts the remote gaming screenshare server and the gameserver 
./remotegaming -BothServers 
## Start only game server
./remotegaming -GameServer
## Start only screenshare
./remotegaming -tls -headless 

Starting game when screen-share is triggered

This requires creating a bash script to trigger when the screenshare begins.

Ex: Start X-Plane 11

Let's call this script xplane11.sh

# Navigating to the directory where X-Plane11 is present 
cd /path/.local/share/Steam/steamapps/common/X-Plane\ 11/

# Execute X-Plane 11 binary 
./X-Plane-x86_64

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

or

Support Server

About

This project is designed to be an open source implementation for streaming desktop games using WebRTC

Resources

License

Stars

Watchers

Forks

Packages

No packages published