LoginSignup
40
29

production-ready なGo製2Dゲームライブラリ Ebiten の紹介 & リンク集

Last updated at Posted at 2020-09-12

はじめに

Ebiten は、Goで書かれた非常にシンプルな2Dゲームライブラリです。(公式サイト: https://ebiten.org

圧倒的な安定性を誇り、今2Dゲームを作るなら非常にオススメ! というわけで、改めて紹介記事を書いてみます。

Ebiten で作られた「くまのレストラン」などの名作を手掛ける odencat の最新作、ねずみバスターズが公開されました(もちろん Ebiten 製)。現在各種アプリストアにてダウンロードできます。(勝手に宣伝)

特徴

はじめる

(ここではGoのインストールおよび、Goの基礎知識に関しては割愛します。)

Windowsおよび、macOSで Ebiten を使い始めるのは非常に簡単です!

まずは、go mod init <モジュール名> で適当なGo Moduleを作り、以下のコードを書いてみましょう。
https://ebiten.org/tour/hello_world.html の転載)

main.go
package main

import (
	"log"

	"github.com/hajimehoshi/ebiten"
	"github.com/hajimehoshi/ebiten/ebitenutil"
)

type Game struct{}

func (g *Game) Update(screen *ebiten.Image) error {
	return nil
}

func (g *Game) Draw(screen *ebiten.Image) {
	ebitenutil.DebugPrint(screen, "Hello, World!")
}

func (g *Game) Layout(outsideWidth, outsideHeight int) (screenWidth, screenHeight int) {
	return 320, 240
}

func main() {
	ebiten.SetWindowSize(640, 480)
	ebiten.SetWindowTitle("Hello, World!")
	if err := ebiten.RunGame(&Game{}); err != nil {
		log.Fatal(err)
	}
}

できたら、go run main.go を実行します。初回だけは各種ビルドに時間がかかるので待ちましょう。

画像のような、いい感じに味のあるHello Worldが表示されれば成功です!
スクリーンショット 2020-09-12 19.35.12.png

Windows, macOS以外のプラットフォームでのビルドについては、ドキュメント https://ebiten.org/documents/ を参照してください。

できること

ざっくりと Ebiten の機能を列挙してみます。詳しい解説は Ebitenの個人的まとめ に譲りますので、実際に扱う際はそちらを参照してください。

入力まわりを除けば全ての機能が、Webやモバイルを含む各種プラットフォームで同じように利用できます。(対応状況

できないこと

Ebiten は意図的にシンプルさを保っているため、フレームワーク的な部分は備えていないのでご留意ください。

より深く

最後に各種リソースへのリンクをご紹介するので、学習に役立ててください!

サンプル

Webサイト には、たくさんの今すぐ触れるサンプルが掲載されています。

ソースは、リポジトリの examples/ ディレクトリ以下にあります。Webよりもさらに数が多いです。(GitHubのリンク

# go run ソースへのパス

go run ./examples/rotate/main.go

ドキュメント

コミュニティ

40
29
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
40
29