A multiplayer gameboy powered by WebRTC and Nitric.
The emulator used in this project was not authored by me and is located here. Have made minor tweaks to it for streaming audio.
NOTE: All WebRTC communication is Peer to peer with no relays (TURN servers). If you have any issues connecting to a peer it is likely that a TURN server will be required.
This game can be hosted in three modes:
A chaos game accepts all player input (as if all players were holding the same gameboy).
Controls are divided amongst all players on a random basis every 60 seconds.
Controls are passed between players every 60 seconds.
- Nitric CLI
- Node.js
- yarn
To run the project locally you can simply run yarn dev
. If you have any issues raise one against this repo.
- Nitric CLI
- Node.js
- yarn
- Pulumi
If you have AWS credentials and Pulumi configured on your machine, you should simply be able to run yarn deploy
.
See architecture section below to see what will actually be deployed to your account.
The application backend consists of a simple API for managing assets and creating new games, and a websocket API to act as a signalling server for negotiating RTC connections.
Code for defining the backend is found here
Code for AWS deployment can be found here