Skip to content
M5DevsPublic

About

⚡ A lightweight, standalone HTML5 & WebGL game runner. Play web games offline with zero servers or CORS restrictions. Features PWA support, on-screen touch gamepad, controller input, and persistent local library. 🎮🕹️

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

🎮 RunaWeb

Standalone, Zero-Backend HTML5 & WebGL Game Runner

License: GPL v3 TypeScript Vite PWA Ready Deploy

Play web games offline with zero servers, zero setup, and zero CORS headaches.

🚀 Play Live Demo · Report Bug · Request Feature


✨ Overview

Running exported HTML5 and WebGL games locally often results in frustrating browser security errors (CORS, file:/// restrictions, or missing web servers).

RunaWeb solves this completely by embedding an in-browser virtual server and runtime. It intercepts asset requests via Service Workers and shared CacheStorage, allowing games to run seamlessly offline—directly in your browser or installed as a standalone PWA.


🌟 Key Features

  • 🚀 Zero-Server Architecture: Drag & drop any game .zip file—runs in-memory without external hosting or CORS errors.
  • 📴 100% Offline & PWA: Installable directly to your home screen or desktop. Works completely in Airplane mode.
  • 🕹️ On-Screen Virtual Gamepad: Translucent Cyberpunk touch controls (D-Pad & Action buttons) that simulate keyboard events on mobile devices.
  • 🎮 Physical Controller Support: Native Gamepad API integration for Bluetooth and USB controllers (PlayStation, Xbox, 8BitDo).
  • 💾 Persistent Arcade Library: Saves uploaded games in IndexedDB (Afterplay-style) with auto-detected box art thumbnails.
  • 📦 Save State Manager: Export and import game localStorage save states across devices.
  • 📺 Retro Visuals & Theater Mode: Full-viewport immersion with CRT scanline filter toggles and 4:3 / 16:9 aspect ratio controls.
  • ⚡ Blazing Fast: Powered by fflate for near-instant client-side zip decompression without frame drops.

🛠️ Tech Stack

  • Core Engine: TypeScript, Vite, Modern Web APIs (Service Worker, CacheStorage, Gamepad API)
  • Archive Engine: fflate (Ultra-fast in-memory zip handling)
  • Storage: IndexedDB + CacheStorage
  • Deployment: GitHub Pages via automated GitHub Actions CI/CD

🚀 Getting Started Locally

Clone the repository and spin up the development environment:

# 1. Clone the repo
git clone https://github.com/M5Devs/RunaWeb.git

# 2. Navigate to project
cd RunaWeb

# 3. Install dependencies
npm install

# 4. Start dev server
npm run dev

Build for production:

npm run build

🗺️ Roadmap

  • Service Worker zero-CORS runtime pipeline
  • Responsive Cyberpunk UI & Auto-Theater Mode
  • On-screen Virtual Touch Gamepad & Physical Gamepad API
  • IndexedDB game library & offline PWA caching
  • Save data export / import
  • Standalone Desktop & Android builds via Tauri 2 (Rust backend)
  • Built-in WASM-4 fantasy console cartridge support

📄 License

Distributed under the GNU General Public License v3.0 (GPL-3.0). See LICENSE for more information.

Crafted with passion by M5Devs 🎮

About

⚡ A lightweight, standalone HTML5 & WebGL game runner. Play web games offline with zero servers or CORS restrictions. Features PWA support, on-screen touch gamepad, controller input, and persistent local library. 🎮🕹️

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages