Ebiten
A simple 2D game library in Go
Stable version: v1.5.1 / Development version: v1.6.0-alpha
- Desktops
- Windows, macOS, Linux, FreeBSD
- Mobiles
- Android, iOS
- Web browsers
- Chrome, Firefox and Safari on desktops (powered by GopherJS)
Note: Gamepads is not available on Safari/Android/iOS. Keyboard is not available on Android/iOS.
Features
- 2D Graphics
- Geometry/Color matrix transformation, Various composition modes, Offscreen rendering, Fullscreen, Text rendering
- Input
- Mouse, Keyboard, Gamepads, Touches
- Audio
- MP3, Ogg/Vorbis, WAV, PCM, Syncing with game progress
Examples
The Gopher photographs by Chris Nokleberg are licensed under the Creative Commons 3.0 Attributions License.
Execute the examples
:; go get github.com/hajimehoshi/ebiten/...
:; cd $GOPATH/src/github.com/hajimehoshi/ebiten/examples
:; go run -tags=example rotate/main.go
Note that you need to add -tags=example
to run examples.
Getting Started
Let's build a simple "Hello world!" game to get started with Ebiten.
First create a new directory (mkdir hello_world
), and change
into it (cd hello_world
). Type the following code into
the main.go
file:
package main
import (
"github.com/hajimehoshi/ebiten"
"github.com/hajimehoshi/ebiten/ebitenutil"
)
func update(screen *ebiten.Image) error {
ebitenutil.DebugPrint(screen, "Hello world!")
return nil
}
func main() {
ebiten.Run(update, 320, 240, 2, "Hello world!")
}
Run the go run
command to start the
game. There you have it, your first Ebiten game!