A curated list of awesome Ebitengine frameworks, libraries and software
Ebitengine is an open source game library 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. Ebitengine is made by Hajime Hoshi.
Please take a quick gander at the contribution guidelines first. Thanks to all contributors; you rock!
If you see a package or project here that is no longer maintained or is not a good fit, please submit a pull request to improve this file. Thank you!
Please visit our wiki for a curated list of the helpful articles and best practices about Ebitengine.
If you have a great article or tutorial, please submit it through issues.
Various architectural patterns and approaches to game design
- gohan - Entity Component System framework for Ebitengine.
- donburi - Just another Entity Component System library for Ebitengine.
- mizu - Entity Component System framework for Ebitengine.
- goecsengine - A simple game engine using Ebitengine with ECS.
- pgfsm - A state and stack machine framework for Ebitengine.
Libraries for building GUI Applications
- ebiten-imgui - Dear ImGui renderer for Ebitengine.
- furex - A simple UI framework with a subset of flexbox layout specification.
- messeji - Text input and display widgets for Ebitengine.
- ebitenui - A user interface engine and widget library for Ebitengine.
- tetra3d - A 3D software renderer written in Go by means of Ebitengine, primarily for video games.
- etxt - A library for font management and text rendering in Ebitengine.
- canvas - Cairo in Go for Ebitengine.
- colorgrad - Go color scales library for data visualization, charts, games, maps, generative art and others.
- raycaster-go - Golang raycaster engine using the Ebitengine 2D Game Library.
- goaseprite - A JSON loader for Aseprite files for Golang.
- gween - A small library to perform tweening in Go.
- ganim8 - An animation library for Ebitengine inspired by anim8.
- reisen - A simple library to extract video and audio frames from media containers (based on libav).
- cp - A 2D rigid body physics library - Chipmunk2D, ported to Go.
- resolv - 2D collision detection and resolution library.
Interaction with the game world
- ebiten-camera - A simple camera implementation based on vrld's HUMP for Love2d.
- dngn - A golang library specifically created to help make generating random maps easier.
- paths - A pathfinding library written in Golang created mainly for video games.
- go-astar - A* pathfinding implementation for Go.
- megophone - The Double-Metaphone algorithm in Go.
Integration with other programs
- ldtkgo - LDtk-Go is a loader for "Level Designer Toolkit" projects written in pure Go.
- go-tiled - Go library to parse Tiled map editor file format (TMX) and render map to image.
- ebitengine-discord-rpc - Discord Rich Presence for Ebitengine.
Input and output across platforms
- [ebitengine-input] (https://github.com/quasilyte/ebitengine-input) - A Godot-inspired action input handling system for Ebitengine.
- clipboard - Cross platform (macOS/Linux/Windows/Android/iOS) clipboard package in Go.
- kibodo - On-screen keyboard widget for Ebitengine.
Games and emulators written in Ebiten
- aaaaxy - A nonlinear 2D puzzle platformer taking place in non-Euclidean geometry.
- bindless - Puzzles in a magnetic world for Ebitengine's first game jam (2022).
- mag - Defend the embryonic core from the onslaught of magnetic robottos.
- attraction - A sokoban-like puzzle game, where you move magnetic pieces in order to collect gems within a limited number of moves.
- worldwide - A toy GameBoy Color emulator written in golang.
- gosol - Polymorphic solitaire engine in Go+Ebitengine.
- feta-feles-remastered - An eerie bullet hell shooter, featuring a small story based around your "pet cat".
- godanmaku - Simple shooting game using Ebitengine and Golang.
- monovania - Metroidvania game.
- brownboxbatman - A bullet hell video game.
- citylimits - A city-building simulation video game.
- skulls - A simple columns-like strategy game developed in Golang with the Ebitengine library (for Android).
- go-inovation - Port of "INO VATION! 2007". You are a wild boar. Collect the three sacred treasures!
- ebiten-breakout - A simple breakout game made in Ebitengine.
- minesweeper-go - Minesweeper game in Go that can compile to WASM (uses Ebitengine v2).
- travel-game - A remake of an 80's card game classic "Around the World" (pt-br: "Volta ao Mundo").
- lost-the-plot - Twitchty action gun-play of "Guess Who?" combined with the casual of "Tomb Raider".
- btod - This is a runner game made in Go with Ebitengine.
- carotid-artillery - A top-down twin-stick shooter.
- cr1ckt - Tap left and right to jump through the caves to the fruit... as long as the game.
- go-space-crane - Simple moonlander like game with some new mechanics.
- kuronan-dash - Doujin game "Kuronan Dash" from the comic "Nekomusume Doujinshi".
- sokoban-go - Sokoban game in Go using Ebitengine game engine with ECS.
- arkanoid-go - Arkanoid game in Go using Ebitengine game engine with ECS.
- space-invaders-go - Space invaders game in Go using Ebitengine game engine with ECS.
- fishfightback - A side-scrolling bullet hell video game.
- gtris - A Tetris clone.
- open-diablo-2 - An ARPG game engine in the same vein of the 2000's games, and supports playing Diablo 2.
Demoscenes and simulations written in Ebitengine
- ray-engine - A toy raycasting engine built with Go + Ebitengine v2 2D library.
- protozoa - A simulation of protozoan behavior and evolution.
- biogo - A simple genetic simulator written in Go.
- fire - Experiments with Ebitengine - Doomfire.
Other useful programs that use or are made for Ebiten
- darktile - A GPU rendered terminal emulator designed for tiling window managers.
- screenpos - A simple way to get a position on your screen using your keyboard and the visual aid of a grid.
- wasmserve - An HTTP server for Wasm testing like gopherjs serve.
- ebiten-bunny-mark - An implementation of the popular graphics benchmark written on Ebitengine.
- neko - Neko is a cross-platform open-source animated cursor-chasing cat.
- sketchy - A framework for creating generative art in Go.