Works / Tool Profile
reflectorbit
Zig + sokol で作る、ベクター調の 1 ボタン反射アクションゲーム。MVP として一連のゲームループが動く状態まで到達しています。

制作経緯
ゲームプログラミングはずっと気になっていながら、Unity や Unreal Engine の大きなフレームワークに踏み込む気にはなれませんでした。動作原理が見えない抽象レイヤーの上に乗るより、「ゲームループとは何か」「描画とはどういう仕組みか」を一から理解したかったのです。
Zig を選んだのは、C との相互運用性が高くシステムプログラミングに適した設計でありながら、C よりも安全で現代的な言語機能を持っているため。sokol は軽量なクロスプラットフォーム・グラフィックスライブラリで、OpenGL / Metal / D3D の差異を薄い抽象で吸収してくれます。この組み合わせで「フレームワークなしのゲーム開発」に必要な最小セットを試しています。
概要
reflectorbit は、ベクター調の 1 ボタン反射アクションゲームです。プレイヤーはタイミングよく入力して軌道を反射させ、ミニマルなルールの中でスコアを伸ばしていきます。現在は MVP として、入力・状態更新・描画・スコア表示までの一連のゲームループが成立する段階まで到達しています。
リポジトリ本体は非公開ですが、公開 LP ではゲームの方向性とビジュアルを確認できます。ここでは実装の詳細よりも、「低レイヤ寄りの技術で小さなゲームを作る」ための学習プロジェクトとして位置づけています。
技術選定
- Zig — C ABI との相互運用が容易で、sokol の C ヘッダーを扱いやすい。コンパイル時計算・エラー処理の明示化など、C より安全に書ける部分が多い。
- sokol —
sokol_app.h(ウィンドウ+入力)・sokol_gfx.h(グラフィックス)を中心に、最小構成でゲームループを組める。バックエンドは OS によって Metal / OpenGL / D3D を自動選択する。 - ベクター調の描画 — リッチなアセット制作に寄せず、線・面・発光感を中心にしたビジュアルで、ゲームループと手触りの検証に集中している。
- 専用 LP — 実行ファイルや実装リポジトリを直接公開しない代わりに、プロダクトの雰囲気と進捗を外部から確認できる導線を用意している。
学び
- ゲームループの本質はシンプル。 フレームごとに「入力 → 状態更新 → 描画」を繰り返すだけ。大きなエンジンに隠れていた構造が、最小実装で見えるようになりました。
- Zig のコンパイラエラーは情報量が多い。 型の不一致や未初期化変数を早期に検出できる一方で、言語仕様やエコシステムの変化には注意が必要でした。
- MVP を完成させると次の判断がしやすい。 プロトタイプ段階を抜け、操作・見た目・ルールが一通りつながったことで、次に足すべき要素が具体的に見えるようになりました。
今後の方向性
サウンド、WebAssembly ビルド、スコアボード、ステージバリエーションなどを段階的に検討しています。将来的には本サイトで、「Zig + sokol で始めるゲーム開発」的な記事として過程を言語化したいと考えています。
External Links
プロダクト本体や LP に移動
このページでは背景と設計判断をまとめ、詳細な導線は外部 LP 側に集約しています。