Git Product home page Git Product logo

cloud-game's Introduction

POGO, Web-based Cloud Gaming Service

SEA: http://cloud.webgame2d.com | US West: http://usw.cloud.webgame2d.com | US East: http://use.cloud.webgame2d.com | Europe: http://eu.cloud.webgame2d.com | Instruction: Instruction
For the best gaming experience, please select the closest region to you.

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


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

POGO stands for "POcket Gaming Online" 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 POGO 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. Collaborative hosting: this is our invented term referring to the whole community can contribute to host the platform. Whenever the server is hosted and able to connect to the coordinator, it can join the cloud-gaming network and Collaboratively serve prod traffic. (In development)
  5. Local link: If you host a server on your local machine and play game on other devices close to that, the game will automatically detect running local server and serve the traffic. (In development)
  6. 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

# MacOS
brew install libvpx pkg-config

# Windows
...

And run

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

Documentation

Design Doc
Implentation Doc

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

cloud-game's People

Contributors

giongto35 avatar trichimtrich avatar torvalds avatar carousell-bot avatar

Watchers

James Cloos avatar Đinh Anh Huy avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.