Hydroエンジン/Oxygenエディタ
Vulkanで作ったWindows向けの実験的なC++ゲームエンジンと、その専用エディタです。2DのVulkanレンダラーから始まり、今ではライティングされた3Dジオラマの中をピクセルアートのキャラクターが歩く小さなRPGが動くエンジンに成長しました。
- 役割
- 個人開発
- 言語
- C++17、GLSL、Python
- 環境
- Windows、Vulkan、MSVC
概要
Hydroは、エンジン技術を自分で作りながら学ぶためのプロジェクトです。静的ライブラリのエンジンの上に3つのプログラムがあります。エディタのOxygen、パッケージしたゲームを動かすスタンドアロンプレイヤーのRuntime、そしてゲーム固有のコードをネイティブC++スクリプトとして持つGameです。



レンダリング
リソースと同期を明示的に管理するネイティブのVulkanバックエンドです。最も成熟しているのは2Dの描画経路で、3Dの描画経路は同じシーンで両方を使えるよう並行して開発しています。
2D
- スプライト・矩形のバッチ描画、スプライトアニメーション、マテリアルとテクスチャ
- グローバルライトとポイントライト、基本的な2Dの影
- 1フレームで複数のレンダービュー(エディタビューとゲームビューを分離)
- シェーダーのホットリロードとGPU計測
3D
- ダイナミックレンダリング、深度、GPU頂点・インデックスバッファ、透視投影と平行投影のカメラ
- ディレクショナル・ポイント・スポットライト、発光マテリアル、環境光、フォグ
- glTF・GLBの読み込み
- 3Dシーン内に立てたカットアウトのスプライト(深度付き)による2D・3D混在シーン
- エディタでのピッキング用のエンティティID描画

今後:物理ベースのマテリアルと、さらなるポストプロセス。
Oxygenエディタ
UnityやGodotのような使い心地を目指した軽量エディタで、エンジンの上で直接動きます。
- シーンビューとゲームビュー、ヒエラルキー、インスペクター、プロジェクト・アセットブラウザ、コンソール
- シーン、プレハブ、保存と読み込み、プロジェクト設定とレンダー設定
- 再生、一時停止、1フレーム送り、停止して編集モードへ
- エンジン・描画の統計、デバッグ描画、エンティティのピッキング
- Fileメニューからスタンドアロンのゲームパッケージをビルド
アーキテクチャ
- ECS:EnTTを使用。コンポーネントは純粋なデータ、処理はシステムが担当
- スクリプト:リフレクション生成ツール付きのネイティブC++スクリプト。フィールドがインスペクターに表示され、シーンと一緒に保存されます
- データ:セリフ、アイテム、クエスト、敵、アビリティなどのゲームコンテンツを、リフレクションされた定義ファイルとテーブルとしてインスペクターで編集
- 物理:2DはBox2D、3DはJolt。カプセル型キャラクターコントローラー、階段、メッシュコライダー、レイ・オーバーラップ判定、トリガー
- サブシステム:起動・終了順を固定し、サブシステムはInit/Shutdown、リソースはRAIIで管理
- ビルド:premake、MSBuildスクリプト、プッシュごとにDebugとReleaseをビルドするGitHub Actions
Eonlore:エンジンを証明するゲーム
エンジンの機能はデモを作るのは簡単でも、本当に使えるかを証明するのは難しいものです。そこでHydroには、機能を実際に使うためのゲームがあります。ライティングされた3Dシーンの中をピクセルアートのキャラクターが歩く、タクティカルターン制RPG「Eonlore」です。2026年11月からは独自のリポジトリに置かれ、固定したHydroのコミットに対してビルドされます。


- フィールドシーン:神社の森、寺、町の通り。NPC、看板、宝箱、クエスト
- 行動順、属性の弱点、シールド、ブレイクを軸にしたターン制バトル
- 実行時UIで作ったインベントリ、キャラクター、クエストのメニュー
- 新しいエンジン機能は、専用デモではなくこれらのシーンのゲーム要素として組み込む
ツールとAI
Hydroは、コーディングエージェントとの開発スタイルを作る場でもあります。リポジトリ自体に指示書、設計スキル、チェックツールを持たせることで、エージェントが500以上のソースファイルの中で迷わず作業し、結果を返す前に自分で検証できるようにしています。AIワークフローについて読む
開発状況
| 分野 | 状況 |
|---|---|
| 2Dエンジンとレンダラー | 動作中、ゲームで使用 |
| シーン、ECS、ネイティブスクリプト | 動作中 |
| Oxygenエディタ | 動作中、拡張中 |
| エディタとゲームプロジェクトの分離 | 現在取り組み中 |
| アセットパイプライン | 基盤は動作中 |
| 3Dレンダリングと読み込み | 開発中 |
| 3D物理(Jolt) | 開発中 |
| オーディオ、高度なポストプロセス | 予定 |
お仕事のご相談はお気軽にどうぞ
東京在住です。Unity・C++・ゲームエンジン関連のポジション、C#・.NETのソフトウェア開発のポジション、そしてAIエージェントを活用した開発体制づくりに関心があります。英語・オランダ語・日本語(勉強中)で対応できます。