Real time two-player Go in the browser.
Jago ("Yah-GO") is in early development, and is intended to become a complete Go game server and community.
- Install node.js
- Run
npm install
- Run
node server.js
- Open
localhost:3000
in two different Chrome windows- It doesn't work in Firefox yet
- Chat (+optional audio/video)
- "one click" game start
- Rankings
- Public & private games
- Random matching (or not)
- Saved game history
- User profiles & preferences
- Pause/resume/forfeit games
- Sound
- Time limits
- Teaching games
- M1: Integrate jGoBoard: https://github.com/jokkebk/jgoboard
Basic POC
- M1: Implement webRTC, POC: Two browsers control one board
Read https://webrtchacks.com/datachannel-multiplayer-game/Read http://www.html5rocks.com/en/tutorials/webrtc/datachannels/POC: Transfer data between two browsersClean up chatClean up UI a bit, select playerTransfer moves & enable/disable local board controlHandle invalid moves/cheating attemptsSupport multiple gamesShow other player's "hover" eventsShow open gamesHandle "pass" moves- Handle visiting in-progress games
- Handle victory
- Handle surrender
- M1: Setup test framework
- M1: Setup "production" stun server
- M1: Setup "production" environment
- M2: Handle reconnects
- M2: Support observers
- Working game between two players with chat
- Support observers
- Save games (.sgf)
- Full game over webRTC, with score and declared winner.
- Multiple games, start new game, view in progress game.
- In-game chat, pause/resume forfeit games, time limits.
- Profiles, rankings, game history.
- Other board sizes, configure board options, Sound.
- Audio & video Chat.
- Teaching games & other game types.
- Code of conduct.
- Moderation/warnings/bans/etc
- Rooms & room Chat
- Undo request/accept
- Download/upload .sgf files
- Game library - enhance game history with uploaded games/etc.
Jago is licensed under the Creative Commons Attribution-NonCommercial 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc/4.0/deed.en_US
Jago uses the "jGoBoard" library from http://jgoboard.com, which is also CC BY-NC licensed.
Based on https://github.com/webrtc/samples/tree/gh-pages/src/content/datachannel/basic and https://github.com/agilityfeat/memory-webrtc-data-channel