Joël van der Werf

開発ブログ

プロジェクトの裏側にある、エンジン・ゲーム・ツールの設計判断についての記録です。何を試し、何を選び、なぜそうしたのか。

  1. ゲームは自分のリポジトリへ:Hydroと最初のゲームを分離する

    Hydro、エディタ、最初のゲームはすべて1つのリポジトリにありました。ゲームごとにリポジトリを分ける計画、その前にある16の結合、そして最初の5ステップ。

    • Hydro
    • Architecture
    • Tooling
  2. AIエージェントが読めるエンジンにする

    Hydroには500以上のソースファイルと厳格な独自ルールがあります。ClaudeとローカルのQwenモデルが推測せずに作業できるようにした仕組みを紹介します。

    • AI
    • Tooling
    • Hydro
  3. ルール、ビュー、ゲームセッション:ゲームコードの構成

    ジオラマRPGで、バトルの計算をGPUなしでテストでき、UIを単純に保ち、実行中の状態をシーン切り替えをまたいで維持するための構成。

    • Hydro
    • Architecture
    • Gameplay
  4. ゲームコンテンツをデータに:HydroのScriptableObject

    セリフ、アイテム、クエスト、敵をC++から、インスペクターで編集できるリフレクション付きの定義ファイルとテーブルへ移しました。

    • Hydro
    • Architecture
    • Gameplay
  5. エディタから.exeへ:初めてのスタンドアロンビルド

    ゲームコードをエディタから分離し、1つのプロジェクトを動かす小さなランタイムと、エディタのビルドボタンを用意。あえてまだアセットパイプラインは作りません。

    • Hydro
    • Architecture
    • Tooling
  6. 街灯は一つのもの:シーンヒエラルキーと実行時UI

    親子関係のあるエンティティと本物のUIシステムを、2つのシンプルな目標に沿って計画し、2日で実装しました。小さく保つための判断を紹介します。

    • Hydro
    • Architecture
    • UI
  7. Joltで歩けるジオラマ:カプセル、スロープ、ゲームプレイ用の形状

    バウンディングボックスからJolt Physicsによる本物の3D衝突判定へ。そして、それをシンプルにした2つのルール。

    • Hydro
    • Physics
    • Architecture
  8. トーンマップの「トゥ」を外した理由

    ピクセルアートに大きく効く、小さなHDRの判断。暗部をアーティストが塗ったとおりに保つために。

    • Hydro
    • Rendering
    • HDR
  9. ペラペラのキャラクターに影を落とす

    太陽用のシャドウマップ1枚、光の方を向く影用のスプライト、そしてスプライトが自分の影で暗くならないための工夫。

    • Hydro
    • Vulkan
    • Rendering
  10. 3D空間にピクセルアートのスプライトを立てる:カード、カットアウト、深度

    シーンを作り直さずに、平面の2Dの村をジオラマに変えた方法。スプライトごとの向きの設定、深度バッファ、そしてdiscard一つ。

    • Hydro
    • Vulkan
    • Rendering
  11. 実行時の状態はどこに置くか:ECSのコンポーネントのための4つのルール

    設定、エンティティごとの状態、ライブラリが所有する状態、派生データ。Hydroではそれぞれの置き場所が一つに決まっています。一度決めたことで、ある種のバグがまるごとなくなりました。

    • Hydro
    • Architecture
    • ECS
  12. 56件の問題:エンジン全体のレビューで見つかったこと

    機能を追加する前に、エンジンとエディタの約6,000行すべてをレビューしました。6件の重大なバグ、スワップチェーンの分割、そしてすべてのVulkanリソースのRAII化。

    • Hydro
    • Vulkan
    • Code quality
  13. Hydroの4年間:Vulkanの三角形からエディタまで

    Hydroは2022年7月、ウィンドウとバリデーションレイヤーから始まりました。何度も中断しては再開してきた個人プロジェクトの4年間を振り返ります。

    • Hydro
    • Vulkan
    • Retrospective

お仕事のご相談はお気軽にどうぞ

東京在住です。Unity・C++・ゲームエンジン関連のポジション、C#・.NETのソフトウェア開発のポジション、そしてAIエージェントを活用した開発体制づくりに関心があります。英語・オランダ語・日本語(勉強中)で対応できます。