インストール

注意: FreeBSD 上の Ebitengine は、作者によってあまりテストされていません。

デスクトップ環境

Ebitengine を動かすためには X Window system が必要です。 GNOME3 のようなウィンドウマネージャをインストールする必要があります。公式マニュアルを参照してください。 pkg install xorg を実行する必要があることに注意してください。

Go のインストール

Go をインストールしてください。 Ebitengine を動かすためには Go 1.25 以降が必要です。

Ebitengine v2.10 から、デスクトップ (Windows、macOS、Linux、FreeBSD) 向けのビルドは Pure Go になりました。 C コンパイラーや開発用ヘッダーファイルは不要です。モバイル向けのビルドには引き続き Cgo が必要です。モバイル (英語) を参照してください。

実行時のライブラリ

以下は Ebitengine v2.10 の標準の X11 デスクトップバックエンド向けの手順です。動作中の X サーバー (Wayland セッションでは XWayland) と、動作するグラフィックスドライバーが必要です。クライアントライブラリをインストールするだけではデスクトップ環境は構築されません。開発用パッケージや pkg-config は不要です。

描画バックエンドは libX11 と OpenGL のライブラリ (libGL / libGLX) を読み込みます。以下のコマンドは OpenGL の実装として Mesa を使用します。すでにプロプライエタリなグラフィックスドライバーが動作している場合は、 Mesa のパッケージをインストールする代わりに、ディストリビューションのドライバー設定を維持してください。

X11 拡張ライブラリ (libXcursorlibXilibXineramalibXrandrlibXrenderlibXext) は省略可能ですが、カーソル、入力、モニター、ウィンドウの機能のために推奨します。以下では別のコマンドに分けています。間接的な依存パッケージはパッケージマネージャーが自動でインストールするため、一部はすでにインストールされている場合があります。

音声については、Oto はまず PulseAudio 互換サーバーに接続します。 PipeWire の PulseAudio サービスも利用できます。 Go のクライアントを使うため、 libpulse は不要です。下記の音声パッケージが提供する libasound.so.2 は、 ALSA へのフォールバック時にのみ必要です。 ALSA ライブラリのインストールだけでは、音声デバイスや権限の設定は行われません。

Debian / Ubuntu

下記の ALSA のコマンドは Debian 13 と Ubuntu 24.04 以降向けです。 Debian 12 と Ubuntu 22.04 では libasound2t64 の代わりに libasound2 を使用してください。

# 描画 (Mesa)
sudo apt install libx11-6 libgl1 libglx-mesa0

# X11 拡張 (省略可能、推奨)
sudo apt install libxcursor1 libxi6 libxinerama1 libxrandr2 libxrender1 libxext6

# ALSA フォールバック (省略可能)
sudo apt install libasound2t64

Fedora

# 描画 (Mesa)
sudo dnf install libX11 libglvnd-glx mesa-libGL mesa-dri-drivers

# X11 拡張 (省略可能、推奨)
sudo dnf install libXcursor libXi libXinerama libXrandr libXrender libXext

# ALSA フォールバック (省略可能)
sudo dnf install alsa-lib

Solus

# 描画 (Mesa)
sudo eopkg install libx11 libglvnd mesalib

# X11 拡張 (省略可能、推奨)
sudo eopkg install libxcursor libxi libxinerama libxrandr libxrender libxext

# ALSA フォールバック (省略可能)
sudo eopkg install alsa-lib

Arch

# 描画 (Mesa)
sudo pacman -S libx11 libglvnd mesa

# X11 拡張 (省略可能、推奨)
sudo pacman -S libxcursor libxi libxinerama libxrandr libxrender libxext

# ALSA フォールバック (省略可能)
sudo pacman -S alsa-lib

Alpine

# 描画 (Mesa)
sudo apk add libx11 mesa-gl mesa-dri-gallium

# X11 拡張 (省略可能、推奨)
sudo apk add libxcursor libxi libxinerama libxrandr libxrender libxext

# ALSA フォールバック (省略可能)
sudo apk add alsa-lib

Void

# 描画 (Mesa)
sudo xbps-install libX11 libglvnd mesa-dri

# X11 拡張 (省略可能、推奨)
sudo xbps-install libXcursor libXi libXinerama libXrandr libXrender libXext

# ALSA フォールバック (省略可能)
sudo xbps-install alsa-lib

FreeBSD

# 描画 (Mesa)
pkg install libX11 libglvnd mesa-libs mesa-dri

# X11 拡張 (省略可能、推奨)
pkg install libXcursor libXi libXinerama libXrandr libXrender libXext

# ALSA フォールバック (省略可能)
pkg install alsa-lib

環境の確認

正しい環境を持っているかどうかは、サンプルを実行して確かめることができます:

go run github.com/hajimehoshi/ebiten/v2/examples/rotate@latest

回転する Gopher の絵がウィンドウ上に表示されたならば、おめでとうございます! Ebitengine を動かすための正しい環境が整いました。

Rotate example

Linux 用 Windows サブシステム (WSL)を使用している場合は、go run コマンド実行時に環境変数 GOOS=windows を設定する必要があります。

GOOS=windows go run github.com/hajimehoshi/ebiten/v2/examples/rotate@latest

Ebitengine を使ったプログラムの実行

Ebitengine は通常の Go ライブラリとして使用できます。プログラムが Ebitengine を使用していれば、 Go コマンドが自動的に Ebitengine をインストールします。

最初に、ローカルモジュールを作ります。

# Create a directory for your game.
mkdir yourgame
cd yourgame

# `go mod init` で go.mod を初期化する.
go mod init github.com/yourname/yourgame

github.com/yourname/yourgame のような URL をモジュール名に使用します。実際のところ、自分のプログラムを公開するつもりがないのであれば、 example.com/m などどんなモジュール名でも問題ありません。モジュール名は後でいつでも変えられます。

次のような内容で main.go ファイルを追加します:


go mod tidy を実行して、依存ライブラリを go.mod に追加します:

go mod tidy

最後に、プログラムを実行するために go run コマンドを実行します:

go run .

メッセージを含んだウィンドウが表示されるはずです:

Hello, World!