LittleJS - The Tiny JavaScript Game Engine That Can
All aboard!
LittleJS is a super lightweight JavaScript game engine with a fast hybrid rendering system. It provides a comprehensive set of tools including rendering, physics, particles, sound effects, music, input handling, and debug tools. The code is very clean and well documented with a variety of examples to get you started. Choo-Choo!
Examples
Hello World - Clean project with only a few things to get you started
Puzzle Game - Match 3 puzzle game with HD rendering and high score tracking
Platformer - Platformer/shooter with procedural generation and destruction
Breakout - Breakout game with post processing effect
Stress Test - Max sprite/object test and music system demo
Particle System Designer - Particle system editor and visualizer
Features
- Very small footprint with no dependencies
- Can update and render 10,000+ objects at 60fps, often many times more
- Object oriented system with fast 2D physics and collision handling for axis aligned boxes
- Positional audio effects with ZzFX and music with ZzFXM, mp3s, or wavs
- Input processing system with keyboard, mouse, gamepad, and touch support
- Particle effects system (particle editor/designer in progress)
- Medal system tracks and displays achievements with Newgrounds and OS13k integration
- Several easy to understand example projects you can build on
- Apply Shadertoy compatible shaders for post processinge effects
- Debug tools and debug rendering system
- Full documentation automatically generated from the source code block tags with JSDoc
- Build system automatically combines everything, minifies, and removes unused code
- For size coding competitions like js13kGames, starter project builds to a 7KB zip file
- Easily build a Windows executable with Electron for distribution on platforms like Steam
- Open Source with the MIT license so it can be used for anything you want
Builds
To easily include LittleJS in your game, you can use one of the 3 pre-built js files. These are also built automatically by the build scripts.
- engine.all.js - The full game engine with debug mode available
- engine.all.release.js - The engine optimized for release builds
- engine.all.min.js - The engine in release mode and minified
The hello world example includes a batch file build.bat that compresses everything into a tiny zip file using Google Closure, UglifyJS, Roadroller, and ECT. You must run buildSetup.bat to install the necessary npm dependencies.
Debugging
Debug builds of LittleJS have a special menu that can be opened by pressing ~, the tilde key.
- ~: Debug Overlay
- 1: Debug Physics
- 2: Debug Particles
- 3: Debug Gamepads
- 4: God Mode
- 5: Save Screenshot
Games Made With LittleJS
- Space Huggers - Run and gun platformer with procedural levels
- Undergrowth - An interactive music videogame for the band Squid
- Space Huggers - JS13K Edition - Original js13k game with source code
- Isletopia - Relaxing strategy game of greenifying barren islands
- Dead Again - Top down survial horror by sanojian & repsej
- Hel's Trial - Turn based RPG by Sebastian Dorn
- Bit Butcher - Survival crafting game by Deathray Games
- Necrotic Commander - Tower defense game by Daniel Jeffery
- Boxing up Bamboo - A challenging puzzle game by Patrick Traynor
- Send me your games!