ebiten is a free, open source gaming project written in Go and released under Apache-2.0. It has 13,501 GitHub stars, 791 forks and 296 open issues, and was last pushed 15 hours ago. On this registry it ranks #13 of 24 tracked projects in Gaming, with 5 head-to-head comparisons available.

What is ebiten?

Ebitengine (v2) is an open-source, Apache-2.0-licensed 2D game engine for the Go programming language, built for developers who want a simple API for writing 2D games that deploy across desktop, mobile, web and console platforms.

What it is

Ebitengine (v2), formerly known as Ebiten, is a 2D game engine for the Go programming language, published at github.com/hajimehoshi/ebiten/v2 under the Apache License version 2.0. The repository describes itself as "a dead simple 2D game engine for Go" and carries the topics go, golang, golang-library, gamedev, game, game-2d, game-development, game-engine, game-engine-2d and game-library, which places it firmly in the Go and game-development ecosystem. It has 13,501 stars, 791 forks and 296 open issues, and its most recent push was on 2026-09-23.

The concrete problem it solves is assembly work. A 2D game in Go needs a render loop with matrix transformations and composition modes, input handling across several device families, and decoded audio; Ebitengine supplies those concerns through one API and a set of packages, so a project does not have to combine a separate library for each concern. The module exposes ebiten alongside audio with the mp3, vorbis and wav subpackages, colorm, ebitenutil, inpututil, mobile, text/v2, vector, and the experimental exp/shaderprecomp, exp/textinput and exp/vmhost packages.

Key capabilities

  • 2D graphics covering geometry and colour transformation by matrices, various composition modes, offscreen rendering and text rendering.
  • Automatic batches and an automatic texture atlas, listed in the README alongside custom shaders as part of the graphics feature set.
  • Custom shaders, with the exp/shaderprecomp package provided for shader precompilation.
  • Input from mouse, keyboard, gamepads and touches, with the inpututil package available for input handling.
  • Audio playback supporting Ogg/Vorbis, MP3, WAV and PCM, through the audio package and its audio/vorbis, audio/mp3 and audio/wav subpackages.
  • Deployment targets of Windows, macOS, Linux, FreeBSD, Android, iOS, WebAssembly, Nintendo Switch and Xbox.
  • Supporting packages for colour matrices (colorm), vector graphics (vector), text (text/v2), utilities (ebitenutil), mobile builds (mobile), and the experimental exp/textinput and exp/vmhost packages.

Who uses it and how

  • Developers shipping 2D games on desktop, where installation is documented separately for Windows, macOS, Linux and FreeBSD.
  • Mobile teams building for Android and iOS, both of which require Cgo and therefore shape how the build environment is set up.
  • Web deployment through WebAssembly, documented on the project's WebAssembly page.
  • Console work on Nintendo Switch and Xbox, both requiring Cgo; Xbox support is described as limited and not available to everyone, with negotiations under way to make it broadly accessible.
  • Developers using AI coding agents, who are directed to the repository's skills directory, and community members who gather on Discord, in the #ebitengine channel in Gophers Slack, on GitHub Discussions and at r/ebitengine on Reddit.

Getting started

For desktops, the README points to the installation instruction at ebitengine.org/en/documents/install.html, and the engine is consumed as the Go module github.com/hajimehoshi/ebiten/v2, with a cheat sheet at ebitengine.org/en/documents/cheatsheet.html.

How it compares

The facts provided list no paid products that this project replaces, and they name no comparable game engines. Ebitengine therefore stands alone in this registry, with the only positioning available being the project's own description of itself as a dead simple 2D game engine for Go.

When to use it — and when not to

Ebitengine is a library rather than a hosted service, so there is no database, object storage or mail server to operate; the real operational burden lands on the build environment whenever Cgo is required, as it is for Android, iOS, Nintendo Switch and Xbox. Developers who need 3D rendering will not find it here, since the listed feature set is limited to 2D graphics, input and audio. The README is a short landing page that delegates detail to the website rather than documenting the API inline, and the repository carries 296 open issues, so a team should expect to read the external documentation and follow issues rather than rely on the README alone.

project readme (upstream, from github) — read inline

Ebitengine (v2)

Go Reference Build Status

A dead simple 2D game engine for Go

Ebitengine (formerly known as Ebiten) is an open source game engine for the Go programming language. Ebitengine's simple API allows you to quickly and easily develop 2D games that can be deployed across multiple platforms.

Overview

Platforms

  • Windows
  • macOS
  • Linux
  • FreeBSD
  • Android (Cgo required)
  • iOS (Cgo required)
  • WebAssembly
  • Nintendo Switch (Cgo required)
  • Xbox (Cgo required) (Xbox support is limited and not available to everyone. Negotiations are currently underway to make it accessible to all.)

For installation on desktops, see the installation instruction.

Features

  • 2D Graphics (Geometry and color transformation by matrices, Various composition modes, Offscreen rendering, Text rendering, Automatic batches, Automatic texture atlas, Custom shaders)
  • Input (Mouse, Keyboard, Gamepads, Touches)
  • Audio (Ogg/Vorbis, MP3, WAV, PCM)

Packages

AI coding agents

If you use an AI coding agent to write or modify Ebitengine code or applications, point it at the skills directory, which holds skills for working with this repository.

Community

License

Ebitengine is licensed under Apache license version 2.0. See LICENSE file.

The Ebitengine logo by Hajime Hoshi is licensed under the Creative Commons Attribution 4.0.

Ebitengine bundles third-party libraries. See NOTICE.md for their licenses.

Frequently asked questions

Is ebiten free to use?

ebiten is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does ebiten do?

A dead simple 2D game engine for Go

What is ebiten written in?

ebiten is primarily written in Go. Its source is publicly available at https://github.com/hajimehoshi/ebiten, and it has 13,501 GitHub stars.