Ebiten

A simple 2D game library in Go

Stable version: v1.5.1 / Development version: v1.6.0-alpha

Platforms

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

Ebiten example: alphablending
Ebiten example: audio
Ebiten example: font
Ebiten example: hsv
Ebiten example: hue
Ebiten example: gamepad
Ebiten example: infinitescroll
Ebiten example: keyboard
Ebiten example: life
Ebiten example: masking
Ebiten example: mosaic
Ebiten example: noise
Ebiten example: paint
Ebiten example: perspective
Ebiten example: piano
Ebiten example: rotate
Ebiten example: sprites
Ebiten example: 2048
Ebiten example: blocks

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!