https://github.com/tjholm/multiboy Skip to content Toggle navigation Sign up * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code Explore + All features + Documentation + GitHub Skills + Blog * Solutions For + Enterprise + Teams + Startups + Education By Solution + CI/CD & Automation + DevOps + DevSecOps Resources + Customer Stories + White papers, Ebooks, Webinars + Partners * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles Repositories + Topics + Trending + Collections * Pricing Search or jump to... Search code, repositories, users, issues, pull requests... Search [ ] Clear Search syntax tips Provide feedback We read every piece of feedback, and take your input very seriously. [ ] [ ] Include my email address so I can be contacted Cancel Submit feedback Saved searches Use saved searches to filter your results more quickly Name [ ] Query [ ] To see all available qualifiers, see our documentation. Cancel Create saved search Sign in Sign up You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. {{ message }} tjholm / multiboy Public * Notifications * Fork 0 * Star 76 A multiplayer gameboy powered by WebRTC License MIT license 76 stars 0 forks Activity Star Notifications * Code * Issues 0 * Pull requests 0 * Actions * Projects 0 * Security * Insights More * Code * Issues * Pull requests * Actions * Projects * Security * Insights tjholm/multiboy This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. main Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags Name already in use A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch? Cancel Create 1 branch 0 tags Code * Local * Codespaces * Clone HTTPS GitHub CLI [https://github.com/t] Use Git or checkout with SVN using the web URL. [gh repo clone tjholm] Work fast with our official CLI. Learn more about the CLI. * Open with GitHub Desktop * Download ZIP Sign In Required Please sign in to use Codespaces. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching Xcode If nothing happens, download Xcode and try again. Launching Visual Studio Code Your codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commit @tjholm tjholm Update README ... daa9a4e Jul 26, 2023 Update README daa9a4e Git stats * 8 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time .vscode Initial Implementation July 26, 2023 14:21 assets Initial Implementation July 26, 2023 14:21 src remap keys July 26, 2023 18:55 .gitignore Initial Implementation July 26, 2023 14:21 LICENSE.md Initial commit July 10, 2023 10:06 README.md Update README July 26, 2023 20:29 astro.config.mjs Initial Implementation July 26, 2023 14:21 index.ts Initial Implementation July 26, 2023 14:21 nitric-test-aws.yaml Initial Implementation July 26, 2023 14:21 nitric.yaml Initial Implementation July 26, 2023 14:21 package.json update links and use latest prod SDK. July 26, 2023 15:03 tailwind.config.cjs Initial Implementation July 26, 2023 14:21 tsconfig.json Initial Implementation July 26, 2023 14:21 yarn.lock update links and use latest prod SDK. July 26, 2023 15:03 View code [ ] MultiBoy Game Modes Chaos Shuffle Hotseat Development Requirements Deployment Requirements Architecture README.md MultiBoy 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. Demo available here Apologies if the demo is down, if you're interested in trying it out let me know in issues or you can also run it on your local machine or deploy it to your own AWS account. This is still very much a work in progress, if it's not working for you feel free to raise an issue :). 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. Game Modes This game can be hosted in three modes: Chaos A chaos game accepts all player input (as if all players were holding the same gameboy). Shuffle Controls are divided amongst all players on a random basis every 60 seconds. Hotseat Controls are passed between players every 60 seconds. Development Requirements * 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. Deployment Requirements * 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. Architecture MultiBoy Architecture 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 About A multiplayer gameboy powered by WebRTC Resources Readme License MIT license Activity Stars 76 stars Watchers 1 watching Forks 0 forks Report repository Releases No releases published Packages 0 No packages published Languages * TypeScript 67.4% * Astro 31.5% * JavaScript 1.1% Footer (c) 2023 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time.