melonJS is a modern and lightweight HTML5 game engine designed for indie developers building 2D and 2.5D games for the web.
The engine addresses the problem of game development complexity by providing a complete, integrated stack without external dependencies. It uses a Canvas2D-inspired rendering API that feels familiar to developers who have worked with HTML5 Canvas, eliminating the need to learn render graphs or shader pipelines. The tool abstracts away graphics complexity through a unified renderer that automatically selects between WebGPU, WebGL 2, or Canvas2D at startup, with fallback support ensuring consistent behavior across all backends. The engine includes built-in physics, tilemaps, audio, input handling, cameras, tweens, particles, and UI components, all delivered as a single tree-shakeable ES module with no dependency sprawl.
melonJS suits indie developers and small teams who want to ship games quickly without wrestling with graphics infrastructure. It excels for projects using Tiled maps for 2D level design and glTF/GLB files for 3D scenes authored in Blender or similar tools. The engine's minimal footprint of approximately 250 KB minzipped makes it appropriate for web distribution where bundle size matters. The class-based architecture and plugin system allow developers to extend functionality when needed, while the straightforward scene loading API keeps simple projects simple.
The project maintains active development with a focus on modern JavaScript practices, using ES6 class syntax and esbuild for bundling. The codebase is written in vanilla JavaScript and TypeScript with no toolchain lock-in, allowing developers to integrate it into their own build workflows. The engine supports multiple rendering backends and advanced features including GPU-accelerated tilemap rendering, post-processing effects, custom shaders, and 3D mesh support, indicating ongoing investment in both performance and capability expansion.