cloud-game/README.md
giongto35 a41b54651f Remove old nes emulator (#78)
* Remove old NES emulator, using only libretro now

* Update landing page
2019-09-04 02:21:46 +08:00

3.5 KiB
Vendored

Web-based Cloud Gaming Service

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


CloudRetro, Open source Web-based Cloud Gaming Service building on WebRTC and LibRetro.

This project aims to bring the most modern and convenient gaming experience to user. You can play any retro games on your browser directly, which is fully compatible on multi-platform like Desktop, Android, IOS. This flexibility also enables online gaming experience to retro games.

Note: Due to the high cost of hosting, I will Hibernate the servers for a while. I'm working on a big change and will turn on hosting again. Sorry for that :(
You can try hosting your own service following the instruction in the next session.

Screenshot Screenshot
screenshot screenshot
screenshot screenshot

Feature

  1. Cloud gaming: Game logic is hosted on a remote server. User doesn't have to install or setup anything. Images and audio are streamed to user in the most optimal way.
  2. Cross-platform compatibility: The game is run on webbrowser, the most universal built-in app. No console, plugin, external app or devices are needed. The device must support webRTC to perform streaming. Joystick is also supported.
  3. Emulator agnostic: The game can be play directly without emulator selection and initialization as long as the its cores are supported by RetroArch.
  4. Vertically scaled + Load balancing: We can add more machines to handle more traffic. The closest server with highest free resource will be assigned to user.
  5. 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 opus opusfile

# Windows
... not tested yet ...

And run

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

Documentation

FAQ

Credits

Contributor

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

Tri Dang Minh
https://trich.im