Web-based Cloud Gaming service for Retro Game
Find a file
2019-06-03 02:41:35 +08:00
cmd Start worker port from 9000 (#47) 2019-06-03 02:41:35 +08:00
config Update turn by location (#46) 2019-05-30 22:39:52 +08:00
cws Use different uuid package 2019-05-24 23:56:03 +08:00
document 300th commit: Update REAME + ice timeout 2019-05-29 01:41:54 +08:00
emulator use for to wait channel 2019-05-20 16:00:09 +08:00
overlord Update turn by location (#46) 2019-05-30 22:39:52 +08:00
static Disable double tab to zoom on mobile 2019-06-02 23:23:05 +08:00
util Allocation inplace 2019-05-15 02:52:00 +08:00
vpx-encoder Worker listen to random port so we can run multiple worker 2019-05-21 23:54:31 +08:00
webrtc Fix icecandidate setup (#44) 2019-05-26 22:18:41 +08:00
worker Fix icecandidate setup (#44) 2019-05-26 22:18:41 +08:00
.gitattributes Update new frontend (#38) 2019-05-25 13:16:32 +08:00
.gitignore Update turn by location (#46) 2019-05-30 22:39:52 +08:00
Dockerfile Use go mode + use pion v2 (#39) 2019-05-25 12:10:04 +08:00
go.mod Use go mode + use pion v2 (#39) 2019-05-25 12:10:04 +08:00
go.sum Use go mode + use pion v2 (#39) 2019-05-25 12:10:04 +08:00
klog 300th commit: Update REAME + ice timeout 2019-05-29 01:41:54 +08:00
LICENSE Update LICENSE 2019-04-11 02:13:48 +08:00
README.md Update turn by location (#46) 2019-05-30 22:39:52 +08:00
run_local.sh 300th commit: Update REAME + ice timeout 2019-05-29 01:41:54 +08:00
run_local_docker.sh Use go mode + use pion v2 (#39) 2019-05-25 12:10:04 +08:00

Klog, Web-based Cloud Gaming Service

Video demo: https://www.youtube.com/watch?v=koqWB1VKflo


Klog is an open source Cloud Gaming Service building on WebRTC using browser as the main platform.

Klog aims to bring the most convenient gaming experience to gamer. You can play any games on your browser directly, which is fully compatible on multi-platform like Desktop, Android, IOS. This flexibility enables modern online gaming experience to retro games starting with NES in this current release.

Note: The current state of Klog are not optimized for production. The service will still experience lag under heavy traffic. You can try hosting your own service following the instruction in the next session.

screenshot

Feature

  1. Cloud gaming: Game logic is handled in server and streamed to user.
  2. Cross-platform compatibility: The game is run on webbrowser, the most universal builtin app. No console, plugin, external app or devices are needed. The device must support webRTC to perform streaming. Joystick is also supported.
  3. Vertically scaled: Services are distributed. The closest server with highest free resource will be assigned to user. (In development)
  4. Cloud storage: Game state is storing on online storage, so you can come back to continue playing in a game.

Run on local by Docker

You try hosting the server yourself by running ./run_local_docker.sh. It will spawn a docker environment and you can access the emulator on localhost:8000.

Development environment

Install Golang https://golang.org/doc/install . Because the project uses GoModule, so it requires Go1.11 version.

Install dependencies

# Ubuntu
apt-get install -y pkg-config libvpx-dev libopus-dev libopusfile-dev

# MacOS
brew install libvpx pkg-config libopus libopusfile

# Windows
... not tested yet ...

And run

  • ./run_local.sh
  • The scripts includes build the binary using Go module

Documentation

Follow up

This project demos the simplest cloud game with NES. Integrating with other emulator like GBA, NDS will also be possible. I'm welcome for the contribution.

Credits

Contributor

Nguyen Huu Thanh
https://www.linkedin.com/in/huuthanhnguyen/

Tri Dang Minh
https://trich.im