Pixelforge - The Sub-2MB 2D Engine for Tinkerers
A batteries-included 2D game engine you can fit on a USB stick, structured so you can read every system once and understand it before you swap one out.
Solo creators and hobbyist game developers who want engine control without writing 100,000 lines of code first
- Sub-2MB binary distribution with hot-reload, an ECS-style scene graph, and WASM export so a game runs anywhere
- Every system under 500 LOC with inline comments explaining the why, not just the what, so the source is the documentation
- Fork-the-engine template that drops you into a working game in 30 minutes, then nudges you toward replacing subsystems yourself
- Built-in benchmark harness so you can measure before-and-after when you swap a system for your own implementation
The original blog post explicitly highlights that a 2D pixel-art platformer only needs input, sprite drawing and audio — and that small engines are viable. There is no mainstream engine that markets itself as 'the one you read and rewrite'.
Multiple 'minimal/small 2D engine' projects exist (Tiny, ScrewBox, Tofu, ct.js, Carimbo) and the HN thread shows sustained hobbyist interest in DIY engines, but most hobbyists still choose established engines like Godot/Raylib — demand is moderate and niche.Have you ever *tried* to "make your own game engine" — Hacker News ↗GitHub - minigdx/tiny: Tiny is a lightweight 2D game engine ↗
The 'readable, batteries-included, sub-2MB 2D engine' niche is already crowded with explicitly minimal competitors (Tofu Engine, ScrewBox, Tiny, ct.js, Carimbo) — Pixelforge is not the first to market this positioning.Tofu Engine | Home ↗ScrewBox - Minimalist pure Java game engine ↗
The proven business model for small open-source engines is donations/Patreon/GitHub Sponsors (e.g., raylib's Patreon after 13 years of unpaid work) — no clear paid-product path; willingness-to-pay among tinkerers is low.raylib — creating raylib | Patreon ↗raylib | A simple and easy-to-use library ↗
Open-source 2D engines can persist for over a decade (raylib ~13 years, LÖVE ~16 years) but depend on a single maintainer's continued interest; little moat if maintainer steps away.raylib — creating raylib | Patreon ↗
Well-trodden problem with abundant references (Raylib examples, SDL2 wrappers, ~14k+ LOC C++ engines on GitHub); sub-2MB 2D engine is buildable by a single experienced dev.GitHub - alex-oren/tiny-engine: Minimal 2D game engine in modern C++ ↗GitHub - raysan5/raylib-games ↗