Zig で書かれた野心的なオープンソース Pokemon バトルシミュレーター pkmn/engine プロジェクトが、現代の実装が元の Pokemon ゲームのバグや癖をどこまで忠実に再現すべきかについて激しい議論を巻き起こしている。現在は第1世代のメカニクスのみをサポートしているこのエンジンは、ゲームの真正性に関する根本的な問題と格闘しながら、既存のシミュレーターに対する高性能な代替手段の提供を目指している。
技術要件:
- 言語: Zig で記述され、 TypeScript バインディングを提供
- API: C API および JavaScript/TypeScript サポート
- 互換性: 特定の Zig コンパイラバージョンが必要(0.12.0-dev.876+aaf46187a より前のバージョンを推奨)
- ライセンス: MIT License
真正性のジレンマ
議論の核心は、元のゲームのどのバグを保持し、どのバグをより良いゲームプレイのために修正すべきかという点にある。エンジンの開発者たちは微妙なアプローチを取り、特定の効果実装に起因するバグは再現する一方で、根本的なメカニクスの誤解やアーキテクチャの制限によるバグは避けるという選択をしている。
コミュニティメンバーは、いくつかの悪名高い第1世代のバグについて特に意見が分かれている。マルチプレイヤーの同期ずれ、麻痺状態での そらをとぶ や あなをほる 中の無敵化エクスプロイト、そして壊れた きあいだめ メカニクスなどの問題は難しい選択を迫る。これらのバグは本格的なゲームプレイに不可欠だと主張する人もいれば、意味のある価値を加えることなくプレイヤー体験を損なうと反論する人もいる。
「通常の からだあたり による麻痺無敵化、 ドわすれ による素早さ低下の再適用、 どくどく カウンターバグ、1/256の外れ確率、 きあいだめ バグなどは残ると期待している。これらが修正されれば、プロジェクトは natdex 、 Create A Pokemon 、または Custom Metas の領域、つまりカートリッジには存在しなかった創作ファンゲームの方向に向かうことになる」
技術アーキテクチャと性能目標
このプロジェクトの多言語アプローチは、コア性能のための Zig と Web アクセシビリティのための TypeScript バインディングを組み合わせている。この設計選択は、プラットフォーム間での幅広い互換性を維持しながら、AI トレーニングやトーナメントシミュレーションに必要な計算速度を提供することを目的としている。エンジンは、ネイティブ統合のための C API とブラウザベースアプリケーションのための JavaScript インターフェースの両方を公開している。
しかし、進行中の互換性問題により、プロジェクトは現在特定の Zig コンパイラバージョンを必要としており、急速に進化するツールチェーン上での構築の課題を浮き彫りにしている。開発者たちはコンパイラパッチを直接ソースツリーに含めており、 Zig エコシステムの現在のバグを回避しようとしていることを示唆している。
開発ロードマップと現在の制限
エンジンは段階的な開発アプローチに従い、基礎作業はほぼ完了し、第1世代と第2世代の実装が現在進行中である。チームは、カスタムルール実行、標準フォーマット以外のバトルバリアント、ゲーム改造のファーストクラスサポートなど、特定の機能を明示的に除外している。
この焦点を絞ったスコープは、複雑な問題空間に対する実用的なアプローチを反映しているが、広範なカスタマイゼーションオプションや非標準のゲームプレイモードを求めるユーザーにはエンジンが対応しないことも意味している。
開発段階:
- Stage 0: ドキュメント、統合、ベンチマーク、プロトコル(ほぼ完了)
- Stage 1: RBY & GSC 実装(進行中)
- Stage 2: ADV & DPP
- Stage 3: 現代世代
コミュニティの反応と将来の展望
このプロジェクトは、競技 Pokemon プレイヤーと Pokemon バトル用 AI エージェントに取り組む開発者の両方から注目を集めている。 MIT ライセンスと C API の利用可能性は、コピーレフト制限なしに商用プロジェクトにエンジンを統合したい開発者から特に好評を得ている。
エンジンが開発段階を進むにつれて、進行中の真正性議論はおそらく激化するだろう。どの歴史的バグを保持するかについてのチームの決定は、完璧な精度を求めるスピードランナーから、バランスの取れたゲームプレイを優先する競技プレイヤーまで、異なるコミュニティでのエンジンの採用に大きな影響を与えるだろう。
pkmn/engine は、現代の開発者がレガシーゲームシステムにどのようにアプローチするか、歴史的忠実性と現代の使いやすさの期待のバランスを取る興味深いケーススタディを表している。
参考: pkmn/engine