Founder · MAYA Cloud Gaming · Since May 2024

Project MAYA

Play PC games on Android, anytime, anywhere. Cloud gaming built from scratch, with high-quality gameplay and live streaming built in.

Role
Founder
Status
In development
Platform
Android 7.0+
Stack
Java, WebRTC, Media3 / ExoPlayer, libVLC, FFmpeg, Firebase
Started
May 2024

PC games, no PC in your hands

MAYA streams PC titles to an Android phone, so you can play games your phone could never install. It is meant to be an alternative to the big cloud-gaming services, with a virtual gamepad on screen and live broadcasting built into the app instead of bolted on.

Features

01

Cloud gaming

Stream PC games directly to Android without installing them. The app uses WebRTC plus Media3 / ExoPlayer (RTSP and DASH) and libVLC for playback.

02

Virtual gamepad

A built-in on-screen controller, so no extra hardware is needed. Inputs travel to the PC, where the gamepad receiver turns them into an Xbox 360 controller.

03

Live broadcasting

Go live from a game session straight to YouTube and Facebook, with FFmpeg doing the encoding on the phone.

04

Play together

Clans, friends and multiplayer, plus a social side with reels and For You / Following feeds.

05

Queue and library

A game store with game details, and a session queue that holds your place when every machine is busy.

06

Floating video

A floating player keeps a stream visible while you move around the app.

How the pieces fit

Android appJava · Firebase auth, database, storage and messaging · on-screen joystick
StreamGame video comes down over WebRTC / RTSP / DASH and plays in Media3 or libVLC
InputStick and button events go up over a socket as simple text commands
PC hostPython receiver drives a virtual Xbox 360 pad with vgamepad: sticks, buttons, d-pad, triggers

Progress

Early builds of the virtual gamepad running over a streamed Windows desktop.

Hands holding a phone running MAYA's virtual gamepad over a streamed Windows desktop
Virtual gamepad over a streamed desktop.
MAYA virtual gamepad layout with LT, LB, sticks, d-pad and ABXY buttons
The on-screen controller layout.

Virtual Gamepad Receiver

The PC side of MAYA's controller, open source.

A small Python service that listens on a socket for commands like button,aBtn or left and right stick coordinates, and maps them to a virtual Xbox 360 controller through vgamepad: A, B, X, Y, shoulders, stick clicks, the d-pad, start, back and both triggers. Games on the PC see a normal controller.

See the code on GitHub