A hackable template for creating small and fast browser games.

Goodluck is great for:


Goodluck is a template for creating small browser games which fit in a few kilobytes. It's designed for extreme hackability. The codebase is small and simple; it's mostly just ifs and fors. The code is easy to understand and modify.

Getting Started

Goodluck is not a typical library. You don't install it via npm install. Instead, use it as a template: generate a new repository from it, remove features you don't need, and hack away. Consult the README to learn more.


What is Goodluck?

A high-level overview of what makes Goodluck special. It also includes an honest list of reasons why you might want to consider other solutions.

Why is Goodluck the way it is?

A list of questions you might be asking yourself with regards to Goodluck's design choices.

API Reference

The annotated source code of Goodluck's core components, systems, and utilities.


js13kBreakout (2022)

Part of the js13kBreakouts project.

Castle Peskenstein (2020)

A Twitter thread with a step-by-step account of creating a Wolfenstein3D clone.

Breakout (2020)

Support material from a workshop on gamedev. Follow the commits on the tutorial branch.

Starter Templates

NewProject2D 8.0KB
NewProject3D 11.4KB


All examples are WebGL2. The reported sizes are minified, Roadrolled, and zipped.

Games Made With Goodluck


Social Distancing
Chain Reaction