Ebiten (海老天)
Stable version: v1.3.0-alpha / Development version: v1.3.0-alpha
- A simple SNES-like 2D game library in Go
- Works on
- Web browsers (powered by GopherJS)
- Supported browsers: Chrome and Firefox on desktops
- Windows
- Mac OS X
- Linux
Features
- 2D Graphics
- Input (Mouse, Keyboard, Gamepad)
- Audio (Ogg/Vorbis, WAV, and PCM)
Example
Install on Mac OS X or Windows
Compilation requires a C compiler like GCC to compile third party libaries used by Ebiten. You would need MinGW on Windows, and would need Xcode on Mac OS X.
Let's get the Ebiten source code and compile it.
:; go get github.com/hajimehoshi/ebiten
If you want to run your game on a web browser, execute this:
:; go get github.com/gopherjs/gopherjs
:; go get github.com/gopherjs/webgl
Install on Linux
Before installing Ebiten, you might need these libraries:
- libglu1-mesa-dev
- libgles2-mesa-dev
- libxrandr-dev
- libxcursor-dev
- libxinerama-dev
- libxi-dev
Ebiten is tested on Ubuntu Linux x64.
Execute the example
:; cd $GOPATH/src/github.com/hajimehoshi/ebiten/examples
:; go run rotate/main.go
Run your game on a desktop
Just execute your Go program. That's it!
Run your game on a web browser
Compile your game with GopherJS:
:; gopherjs build -o yourgame.js path/to/yourgame
Then, open the below HTML on your HTTP server:
<!DOCTYPE html>
<script src="yourgame.js"></script>
NOTE: file://
URL may not work with Ebiten. Execute your game on a HTTP server.
Apps created with Ebiten
Change Log
2016-04-22
- v1.3.0-rc1 released.
- Added new platforms
- Graphics
- Added CompositeMode to change composite mode (e.g. masking or additive drawing)
- Audio
- Moved from exp/audio to audio: No more experimental package!
- Changed APIs (almost fixed)
- Added exp/audio/vorbis to decode Ogg/Vorbis stream
- Added exp/audio/wav to decode Wav stream
- Others
- Made most of functions concurrent-safe
- Bug fix
2016-02-28
2016-02-17
- v1.2.0-rc1 released.
- Added support for gamepads on desktops and browsers
- Added support for touch events on browsers
- Added new functions for image rendering:
- Image.ReplacePixels
- GeoM.Rotate
- ColorM.RotateHue
- Added some experimental packages:
- exp/audio: Play music and sound
- exp/gamepad: Useful functions to configure gamepads
- These packages are experimental and we don't guarantee backward compatibility.
- Deprecated some APIs:
- TranslateGeo (Use GeoM's Translate instead)
- ScaleGeo (Use GoeM's Scale instead)
- RotateGeo (Use GoeM's Rotate instead)
- TranslateColor (Use ColorM's Translate instead)
- ScaleColor (Use ColorM's Scale instead)
- RotateHue (Use ColorM's RotateHue instead)
- Fixed some bugs
- Performance optimization
2015-01-25
2015-01-10
- v1.1.0-rc1 released.
- Support for web browsers: Ebiten now includes support for web browsers with GopherJS.
- Some API has changed:
- ImagePart is deprecated. Use ImageParts interface instead.
- ColorM.Element and GeoM.Element's recievers changed from structs to pointers.
- A lot of keyboard keys have been added. KeyMax and MouseButtonMax were removed.
- The game is stopped when the window is not active.
2015-01-04
- v1.0.0 released.
- Nothing has changed from v1.0.0-rc1.
2014-12-29
License
Ebiten
Copyright 2014 Hajime Hoshi
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Go Gopher photograph
The original photograph of Go gophers by Chris Nokleberg is licensed under the Creative Commons 3.0 Attributions license.