// the find
EngoEngine/engo
Engo is an open-source 2D game engine written in Go.
Engo is a 2D game engine for Go built on an Entity Component System architecture, targeting desktop (Linux/macOS/Windows), mobile (Android/iOS), and WebAssembly. It sits in the same space as Ebiten but bets on ECS structure from the start rather than bolting it on later. Aimed at Go developers who want to build small-to-medium 2D games without leaving the language.
The ECS split between the core `engo` package and `common` systems is clean — you can swap or skip built-in systems without fighting the framework. TMX tilemap support is first-class, which saves a lot of plumbing work for anyone making tile-based games. The demos folder covers a wide range of use cases (pong, adventure, isometric, audio, HUD, parenting) and each has its own README, making them genuinely useful as starting templates. WebAssembly, mobile, and desktop are all supported through build tags rather than forked codebases, so the abstraction layer is coherent.
The project is effectively stalled — v1.0 shipped and the roadmap issue for v1.1 has been open for years with no movement; the CI still references Travis which is a graveyard. Compared to Ebiten (which is actively maintained and has a much larger ecosystem), choosing Engo today means betting on a project with a near-dormant contributor base. The OpenGL dependency requires system libraries on Linux and a GCC toolchain on Windows, which is a real setup tax in 2026 when most Go tooling assumes zero native dependencies. There's no scene graph or built-in physics — you get collision detection but anything beyond AABB is your problem.