A game engine built on Flutter, providing a game loop, component system, collision detection, effects and input handling for 2D games.
hajimehoshi/ebiten
A simple 2D game engine for Go that targets desktop, mobile, WebAssembly and console platforms.
- Stars
- 13,573
- Forks
- 801
- Open issues
- 288
- Last commit
- 11 hours ago
What is it?
Ebitengine (formerly Ebiten) is an open source 2D game engine written for the Go programming language. Its API is designed so that developers can build 2D games quickly and deploy them across multiple platforms from one codebase.
The engine covers graphics, input and audio. Graphics support includes matrix-based geometry and color transforms, composition modes, offscreen rendering, text rendering, automatic batching and texture atlases, and custom shaders. Input handling covers mouse, keyboard, gamepads and touch, and audio supports Ogg/Vorbis, MP3, WAV and PCM.
Supported targets include Windows, macOS, Linux, FreeBSD, Android, iOS, WebAssembly and Nintendo Switch. Android, iOS and Switch builds require Cgo. Helper packages cover color matrices, utilities, input helpers, vector drawing and text.
Key features
- 01Supports 2D graphics with matrix transforms, offscreen rendering and custom shaders.
- 02Handles mouse, keyboard, gamepad and touch input.
- 03Plays Ogg/Vorbis, MP3, WAV and PCM audio.
- 04Runs on desktop, mobile, WebAssembly and Nintendo Switch.
Use cases
- Building a 2D indie game in Go that ships to desktop and the web.
- Prototyping a simple 2D game or interactive visualization with a small API.
- Shipping a 2D game to Android or iOS from Go code.
Quick start
- 1
Open the installation guide for your OS on ebitengine.org
- 2
Follow the desktop installation instructions to set up Go and the Ebitengine package
- 3
Try the official examples and the cheat sheet to start building a 2D game
Things to know
- Mobile, Nintendo Switch and Xbox targets require Cgo.
- Xbox support is limited and not available to everyone.
Topics
FAQ
- What is ebiten?
- A simple 2D game engine for Go that targets desktop, mobile, WebAssembly and console platforms. Ebitengine (formerly Ebiten) is an open source 2D game engine written for the Go programming language. Its API is designed so that developers can build 2D games quickly and deploy them across multiple platforms from one codebase.
- Is ebiten free to use? What license does it have?
- ebiten is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is ebiten still maintained?
- Actively maintained. The last commit to ebiten was on Oct 20, 2026.
- What can I use ebiten for?
- Building a 2D indie game in Go that ships to desktop and the web. Prototyping a simple 2D game or interactive visualization with a small API. Shipping a 2D game to Android or iOS from Go code.
- How do I install ebiten?
- Open the installation guide for your OS on ebitengine.org Follow the desktop installation instructions to set up Go and the Ebitengine package Try the official examples and the cheat sheet to start building a 2D game
- Where can I get ebiten?
- The source code and installation instructions are on GitHub: https://github.com/hajimehoshi/ebiten
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A simple 2D game engine for the D programming language, with built-in physics, animation, tilemaps and dialogue.
A retro game engine for Python that lets you make pixel-art games with a fixed palette and low-resolution screen.
A 2D/3D game engine written in Go on Vulkan, with a built-in editor that is itself a game running in the engine.
A .NET framework for building cross-platform 2D and 3D games in C#, re-implementing Microsoft's discontinued XNA Framework.
Godot is a free, MIT-licensed, cross-platform game engine for building 2D and 3D games from one unified editor.