shiichan

Astra でゲームまで作れちゃうの、知ってた?

やっほー、しぃちゃんだよ!さっきは建築のお話だったけど、今度は AI エージェントがゲームまで作っちゃったニュースだよ!

OpenAI Developers developers.openai.com

なにが発表されたの?

OpenAI Developers で、AI エージェント「Astra」(Claude Agent SDK ベース)を使ってゲームを開発するケーススタディが公開されたよ。TypeScript / Vite と Three.js、WebGPU を使った技術構成を、Astra 自身が提案・実装していく流れが紹介されているの。

紹介されている作品はこの 3 本だよ。

  • Void Explorer:2,048 の恒星系と 10,000 以上の手続き型惑星を持つ宇宙探索ゲーム
  • Sunwake:手続き型の海洋をボートで航行するゲーム
  • Hollowflux:地下の川が舞台の 2D アクション RPG

なぜ重要なの?

ゲーム開発は、見た目の方向性を決めるアートワークと、実際に動くコードの実装という 2 つの専門性が必要な分野だよ。Astra はまず生成画像でビジュアルの方向性を固めてから、実際にプレイできる Three.js / WebGPU のコードに落とし込んでいて、構想からプロトタイプまでを 1 人のエージェントが横断できることを見せてくれているの。

これで何が変わるの?

技術面では、地形生成を Web Workers で非同期処理したり、Heightfield ベースの LOD(段階的詳細度)で描画負荷を調整したりと、実際のゲームエンジン開発でよく使われる工夫が取り入れられているよ。動作確認も Playwright のブラウザテストと、window.__VOID_EXPLORER__ という JavaScript インターフェース経由での状態検査で行っているんだって。デプロイまで含めて任せられるのもポイントで、「@Sites を使ってこのゲームをデプロイしてリンクを提供してください」のような指示でブラウザですぐ遊べる形に持っていけるの。

深く潜ってみよう

数値で見る最適化の具体例が読みどころだよ。

  • 遠景の惑星の地形メッシュを 51,200 → 7,040 三角形まで削減
  • 頂点インデックス化でバッファ転送量を 35 MB → 15 MB に削減
  • テライン生成のスケジューリング改善で、廃棄されるジョブを 6,074 → 13 に削減
  • WebGPU 対応後、描画コールを 119 → 77 に削減しつつ、総三角形数は 48,809 → 61,092 に増加、平均フレーム間隔は 251.48 ms → 199.26 ms に短縮

惑星のスケール管理には「大きな整数セルと小さなローカルオフセット」を組み合わせる手法を使っていて、広大な宇宙空間でも GPU の精度を保っているの。地形は 6 面のキューブ投影による四分木構造で管理し、代替ピクセルマスクで LOD の切り替え時にちらつきが出ないようにしているよ。

ただし Heightfield を使っている都合上、洞窟や張り出し、破壊可能なトンネルのような地形表現はできないという制限も書かれているよ。

まとめ

  • Astra が Three.js / WebGPU ベースで 3 本のゲームを構想からプロトタイプまで制作
  • 地形生成の非同期処理・LOD・GPU 精度維持など実践的な最適化を多数採用
  • WebGPU 化で描画コール削減とフレーム間隔短縮を両立
  • Heightfield ベースゆえ洞窟などの地形表現はできないという制限あり

ゲーム開発や WebGPU の最適化テクニックに興味があるエンジニアには、具体的な数値付きで参考になる記事だよ!