このプロジェクトについて

raylib-goは、ビデオゲームプログラミング向けに設計されたシンプルで使いやすいライブラリであるraylibのGolangバインディングを提供する。raylibのCソースコードは同梱されており、ビルドプロセスの一部としてバインディングと一緒にコンパイルされる。 インストールは標準のGoツールチェーンで行う: go get -v -u github.com/gen2brain/raylib-go/raylib このライブラリは2つのビルドモードをサポートする。デフォルトモードはcgoを使用し、プラットフォーム固有のシステムライブラリを必要とする。Ubuntuでは、libgl1-mesa-dev、libxi-dev、libxcursor-dev、libxrandr-dev、libxinerama-dev、libwayland-dev、libxkbcommon-devが含まれる。Fedoraでは、同等のパッケージはmesa-libGL-devel、libXi-devel、libXcursor-devel、libXrandr-devel、libXinerama-devel、wayland-devel、libxkbcommon-develである。macOSでは、XcodeまたはCommand Line Toolsが必要である。Windowsでは、MinGW-w64やTDM-GCCなどのCコンパイラが必要である。Android向けには、リポジトリにサンプルが用意されている。Web/Wasmサポートは、Raylib-Go-Wasmと呼ばれる別の互換プロジェクトを通じて利用できる。 あるいは、CGO_ENABLED=0を設定することで、cgoなしでraylib-goを使用できる。このpuregoモードはLinux、macOS、Windows、FreeBSDでサポートされている(32ビットはサポートされていない)。ビルド済みの共有ライブラリは、Linux arm64/amd64、macOS arm64/amd64、Windows arm64/amd64向けに埋め込まれている。ビルドタグraylib_no_embedまたは環境変数RAYLIB_NO_EMBED=1でこの埋め込み機能を無効にできる。 さまざまなビルドタグにより、ターゲットプラットフォームとバックエンドをカスタマイズできる: - drm: LinuxネイティブDRMモード向けにビルド(Raspberry Pi 4を含む) - sdl: SDLバックエンドを使用 - sdl3: SDL3バックエンドを使用 - rgfw: RGFWバックエンドを使用 - noaudio: オーディオ機能を無効化 - opengl43、opengl21、opengl11: 特定のOpenGLバックエンドバージョンを選択 - es2、es3: OpenGL ES 2.0および実験的な3.0バックエンド - x11: Wayland上でX11互換モードを強制 - wayland: Wayland専用モードを強制 クロスコンパイルはcgoを使用してLinuxからサポートされている。WindowsターゲットにはMinGWツールチェーンが必要で、macOSターゲットにはOSXCrossツールチェーンが必要である。64ビットと32ビットのWindows実行ファイル、およびx86_64とarm64のmacOSバイナリを生成するためのサンプルビルドコマンドがリポジトリに用意されている。 サンプルプログラムは基本的な使用パターンを示している:ウィンドウの初期化、ゲームループの実行、テキストの描画、ウィンドウのクローズ。より多くのサンプルは、リポジトリのexamplesディレクトリにraylibモジュールごとに整理されている。 ドキュメントはGoDocで利用可能で、raylibチートシートも参照されている。コミュニティサポートは、Raylib Discord Serverの#raylib-goチャンネルで利用できる。 raylib-goは、改変されていないzlib/libpngライセンスの下でライセンスされている。