Joël van der Werf
プロジェクト一覧

Hydroエンジン/Oxygenエディタ

Vulkanで作ったWindows向けの実験的なC++ゲームエンジンと、その専用エディタです。2DのVulkanレンダラーから始まり、今ではライティングされた3Dジオラマの中をピクセルアートのキャラクターが歩く小さなRPGが動くエンジンに成長しました。

役割
個人開発
言語
C++17、GLSL、Python
環境
Windows、Vulkan、MSVC
コード
github.com/joelnl74/Hydro

概要

Hydroは、エンジン技術を自分で作りながら学ぶためのプロジェクトです。静的ライブラリのエンジンの上に3つのプログラムがあります。エディタのOxygen、パッケージしたゲームを動かすスタンドアロンプレイヤーのRuntime、そしてゲーム固有のコードをネイティブC++スクリプトとして持つGameです。

レンダリング

リソースと同期を明示的に管理するネイティブのVulkanバックエンドです。最も成熟しているのは2Dの描画経路で、3Dの描画経路は同じシーンで両方を使えるよう並行して開発しています。

2D

  • スプライト・矩形のバッチ描画、スプライトアニメーション、マテリアルとテクスチャ
  • グローバルライトとポイントライト、基本的な2Dの影
  • 1フレームで複数のレンダービュー(エディタビューとゲームビューを分離)
  • シェーダーのホットリロードとGPU計測

3D

  • ダイナミックレンダリング、深度、GPU頂点・インデックスバッファ、透視投影と平行投影のカメラ
  • ディレクショナル・ポイント・スポットライト、発光マテリアル、環境光、フォグ
  • glTF・GLBの読み込み
  • 3Dシーン内に立てたカットアウトのスプライト(深度付き)による2D・3D混在シーン
  • エディタでのピッキング用のエンティティID描画
Oxygenのレンダー設定:太陽のシャドウマップのサイズ、ソフトシャドウ、スプライトの影、HDR、ブルーム、被写界深度、ピクセルスナップ
Oxygenのレンダー設定:太陽のシャドウマップのサイズ、ソフト/ハードな影、スプライトの影を「描画どおり」か「太陽を向く」か。各シーンでプロジェクトの設定を上書きできます。

今後:物理ベースのマテリアルと、さらなるポストプロセス。

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エージェントを活用した開発体制づくりに関心があります。英語・オランダ語・日本語(勉強中)で対応できます。