A lightweight, playful HTML5 game engine.
No build tools. No npm. No bundler. Just JavaScript.
A focused set of systems covering the full game-dev loop — rendering, input, audio, physics — without pulling in the whole internet.
Game, implement Start(), Update(deltaTime), Draw() — and go.Input.mouse so all existing code works on mobile without changes.HTMLMenu system — no proprietary widget toolkit.GameObject subclasses for physics bodies, sprites, and animated objects.Every demo runs live in your browser. All source code is in the repo.
No CLI. No config files. No package.json. Copy files, open a browser, make a game.
src/engine/ folder into your project.<canvas id="myCanvas"> and include the engine scripts in order.Game and implement Start(), Update(deltaTime), and Draw().Init(MyGame) inside window.onload and the engine loop starts.// my-game.js class MyGame extends Game { constructor(renderer) { super(renderer); this.Configure({ screenWidth: 640, screenHeight: 480, }); } Start() { super.Start(); // load game objects, register input… } Update(deltaTime) { super.Update(deltaTime); // move, check collisions… } Draw() { this.renderer.DrawFillRectangle( 0, 0, this.screenWidth, this.screenHeight, Color.black ); super.Draw(); } } window.onload = () => Init(MyGame);