<!DOCTYPE html> <script src="./scripts/force-https.js"></script> <meta name="description" content="Ebiten - A simple SNES-like 2D game library in Go"> <link rel="shortcut icon" href="./favicon.png" type="image/png"> <link rel="icon" href="./favicon.png" type="image/png"> <title>Ebiten - A simple SNES-like 2D game library in Go</title> <link rel="stylesheet" href="./stylesheets/bootstrap.min.css"> <link rel="stylesheet" href="./stylesheets/highlight-github.css"> <link rel="stylesheet" href="./stylesheets/ebiten.css"> <script src="./scripts/googleanalytics.js"></script> <header class="navbar"><div class="container"> <div class="navbar-header"> <a class="navbar-brand" href="./">Ebiten</a> </div> <nav class="collapse navbar-collapse"> <ul class="nav navbar-nav"> <li><a href="#platforms">Platforms</a></li> <li><a href="#features">Features</a></li> <li><a href="#examples">Examples</a></li> <li><a href="#getting-started">Getting Started</a></li> </ul> <ul class="nav navbar-nav navbar-right"> <li><a href="https://github.com/hajimehoshi/ebiten">GitHub</a></li> <li><a href="https://godoc.org/github.com/hajimehoshi/ebiten">GoDoc</a></li> <li><a href="https://github.com/hajimehoshi/ebiten/wiki">Wiki</a> </ul> </nav> </div></header> <main><div class="container"> <h1>Ebiten</h1> <p class="lead">A simple SNES-like 2D game library in Go</p> <p>Stable version: v1.3.0 / Development version: v1.4.0-alpha</p> <h2 id="platforms">Platforms</h2> <dl class="dl-horizontal"> <dt>Desktops</dt> <dd><a href="https://github.com/hajimehoshi/ebiten/wiki/Windows">Windows</a>, <a href="https://github.com/hajimehoshi/ebiten/wiki/Mac-OS-X">Mac OS X</a>, <a href="https://github.com/hajimehoshi/ebiten/wiki/Linux">Linux</a></dd> <dt>Mobiles</dt> <dd><a href="https://github.com/hajimehoshi/ebiten/wiki/Android">Android</a>, <a href="https://github.com/hajimehoshi/ebiten/wiki/iOS">iOS</a></dd> <dt>Web browsers</dt> <dd><a href="https://github.com/hajimehoshi/ebiten/wiki/Web-Browsers">Chrome and Firefox on desktops</a> (powered by <a href="http://gopherjs.org/">GopherJS</a>)</dd> </dl> <h2 id="features">Features</h2> <dl class="dl-horizontal"> <dt>2D Graphics</dt> <dd>Geometry/Color matrix transformation, Various composition modes, Offscreen rendering</dd> <dt>Input</dt> <dd>Mouse, Keyboard, Gamepads, Touches</dd> <dt>Audio</dt> <dd>Ogg/Vorbis, WAV, PCM</dd> </dl> <h2 id="examples">Examples</h2> <div class="row"> <div class="col-md-3"> <a class="thumbnail" scrolling="no" href="examples/alphablending.html"><img src="images/examples/alphablending.png" width="320" height="240" alt="Ebiten example: alphablending" class="example"></a> </div><div class="col-md-3"> <a class="thumbnail" scrolling="no" href="examples/audio.html"><img src="images/examples/audio.png" width="320" height="240" alt="Ebiten example: audio" class="example"></a> </div><div class="col-md-3"> <a class="thumbnail" scrolling="no" href="examples/font.html"><img src="images/examples/font.png" width="320" height="240" alt="Ebiten example: font" class="example"></a> </div><div class="col-md-3"> <a class="thumbnail" scrolling="no" href="examples/hsv.html"><img src="images/examples/hsv.png" width="320" height="240" alt="Ebiten example: hsv" class="example"></a> </div><div class="col-md-3"> <a class="thumbnail" scrolling="no" href="examples/hue.html"><img src="images/examples/hue.png" width="320" height="240" alt="Ebiten example: hue" class="example"></a> </div><div class="col-md-3"> <a class="thumbnail" scrolling="no" href="examples/gamepad.html"><img src="images/examples/gamepad.png" width="320" height="240" alt="Ebiten example: gamepad" class="example"></a> </div><div class="col-md-3"> <a class="thumbnail" scrolling="no" href="examples/keyboard.html"><img src="images/examples/keyboard.png" width="320" height="240" alt="Ebiten example: keyboard" class="example"></a> </div><div class="col-md-3"> <a class="thumbnail" scrolling="no" href="examples/masking.html"><img src="images/examples/masking.png" width="320" height="240" alt="Ebiten example: masking" class="example"></a> </div><div class="col-md-3"> <a class="thumbnail" scrolling="no" href="examples/mosaic.html"><img src="images/examples/mosaic.png" width="320" height="240" alt="Ebiten example: mosaic" class="example"></a> </div><div class="col-md-3"> <a class="thumbnail" scrolling="no" href="examples/noise.html"><img src="images/examples/noise.png" width="320" height="240" alt="Ebiten example: noise" class="example"></a> </div><div class="col-md-3"> <a class="thumbnail" scrolling="no" href="examples/paint.html"><img src="images/examples/paint.png" width="320" height="240" alt="Ebiten example: paint" class="example"></a> </div><div class="col-md-3"> <a class="thumbnail" scrolling="no" href="examples/perspective.html"><img src="images/examples/perspective.png" width="320" height="240" alt="Ebiten example: perspective" class="example"></a> </div><div class="col-md-3"> <a class="thumbnail" scrolling="no" href="examples/piano.html"><img src="images/examples/piano.png" width="320" height="240" alt="Ebiten example: piano" class="example"></a> </div><div class="col-md-3"> <a class="thumbnail" scrolling="no" href="examples/rotate.html"><img src="images/examples/rotate.png" width="320" height="240" alt="Ebiten example: rotate" class="example"></a> </div><div class="col-md-3"> <a class="thumbnail" scrolling="no" href="examples/sprites.html"><img src="images/examples/sprites.png" width="320" height="240" alt="Ebiten example: sprites" class="example"></a> </div><div class="col-md-3"> <a class="thumbnail" scrolling="no" href="examples/blocks.html"><img src="images/examples/blocks.png" width="256" height="240" alt="Ebiten example: blocks" class="example"></a> </div> </div> <p><a href="https://blog.golang.org/go-programming-language-turns-two">The Gopher photographs by Chris Nokleberg</a> are licensed under <a href="https://creativecommons.org/licenses/by/3.0/">the Creative Commons 3.0 Attributions License</a>.</p> <h3>Execute the examples</h2> <pre><code class="language-bash">:; go get github.com/hajimehoshi/ebiten :; cd $GOPATH/src/github.com/hajimehoshi/ebiten/examples :; go run -tags example rotate/main.go</code></pre> <p>Note that you need to specify <code>example</code> tag.</p> <h2 id="getting-started">Getting Started</h2> <p>Let's build a simple "Hello world!" game to get started with Ebiten. First create a new directory (<code>mkdir hello_world</code>), and change into it (<code>cd hello_world</code>). Type the following code into the <code>main.go</code> file:</p> <pre><code class="language-go">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!") } </code></pre> <p>Run the <code>go run</code> command to start the game. There you have it, your first Ebiten game!</p> </div></main> <footer><div class="container"> <p>© 2013 Hajime Hoshi</p> <p>Code is licensed under <a href="https://github.com/hajimehoshi/ebiten/blob/master/LICENSE">the Apache License 2.0</a>.</p> <p>The content of this page is licensed under <a href="https://creativecommons.org/licenses/by/4.0/">the Creative Commons Attribution 4.0 License</a>.</p> </div></footer> <script src="./scripts/highlight.pack.js"></script> <script>hljs.initHighlightingOnLoad();</script>