翻訳:MetaCat
ノンプレイヤーキャラクター(NPC)とは、ゲーム世界の恒久的な住人のことで、その行動はプレイヤーによってコントロールされることはありません。その代わり、彼らの行動は、ゲームの開発者によって作成された、あらかじめ書かれた条件セットによって決定され、世界の状態に基づいて、NPCが取るべき行動を評価します。NPCは通常、対話によってストーリーを進めたり、ベンダーから配布されたアイテムを使ったり、敵との戦闘のために、クエストを与えたり、仲間として登場します。
私たちのゲーム「Duck Duck Destruction」は、プレイヤーがNPCの意思決定ツリーをスクリプト化し、自律的な世界に配置することを可能にするモデルを実証するケーススタディです。
動機
私たちの原始言語は、GnomikやSentencesのような、専用のトップダウンマスターコントロールレイヤーを通してゲームプレイにルールや伝承を導入するプロジェクトよりも、主観的な風味がはるかに少ないです。その代わりに、私たちのアプローチは、プレイヤーが世界に微妙な貢献をすることを可能にし、その基本的なメカニズムを破壊することなく、世界を生き生きとさせます。私たちは、プレイヤーが配置可能な NPC を、集団的創造と創発的ストーリーテリングのための好都合なメディアと見なしています。
Mechanics
Duck Duck Destructionは、完全にプレイヤーが書いたNPCアヒルがアリーナ環境で戦うゲームです。プレイヤーは決定木のスマートコントラクトを通じてアヒルをプログラムし、ゲーム内イベントに対する条件付き応答としてNPCの行動を特定します。アヒル」です。
十分な数のプレイヤーが決定木を提出した後、ゲーム司会者がゲームを開始する。ゲームは自動的に進行し、各ラウンドでアヒルがプログラムされた決定木に従って行動するように促される。ゲームは、すべてのアヒルが脱落するか、最後のアヒルが生き残った時点で終了する。
![](https://img.jinse.cn/7242895_image3.png)
NPC行動スクリプト:決定木
スマートコントラクト
各NPCスクリプトは、MUD/EVM互換スタック上に配置されたスマートコントラクトです。これらのスクリプトを特定のワールドに追加するには、ワールドのコントラクトで、プレイヤーがデプロイされたNPCスマートコントラクトのアドレスを提出できる登録機能が必要です。この機能は、ゲームの進行状況、資産の所有権、または単純なアドレスのホワイトリストに基づいて、オプションで制限することができます。
いったんスクリプトが登録されると、親ワールドはそれを直接、またはプレイヤーのアクションの間接的な結果として呼び出します。基礎となるMUD/EVMには、スクリプトを自律的に起動するティックメカニズムやその他の手段がないため、本質的に受動的であり、NPCによって行われるアクションはすべて、プレイヤーが開始したアクションを前提としています。そのため、スクリプトの親ワールドには、NPCのスクリプトの実行をトリガーする関数コールが含まれていなければなりません。
いったんトリガーされると、NPCスクリプトはワールドの状態を使用し、定義済みのロジックとプログラミングに基づいて行動方針を評価します。
アプリケーション
『Duck Duck Destruction』では、ペースの速い戦闘環境にNPCを配置し、私たちのオリジナルの基本的なメカニズムを最小限に見せています。セッションベースのモデルのため、現在のところNPCの託児所と同じように機能し、直接対話するための豊かな周辺環境がありません。
しかし、この原始的な要素がよりオープンなサンドボックス世界で使用され、NPC の応答がプレイヤーのプロンプトによって非同期にトリガーされることを想像できます。たとえば、コンパニオンペットはプログラム可能な人格を持ち、プレイヤーを追従し、環境や他のキャラクターに独自に反応するため、行動が複雑になります。この複雑さによって、世界は予測不可能で驚きに満ちたものになります。DwarfFortress』では、プレイヤーが作った下水道でNPCのカバに遭遇します。
階層的なNPCの配置を可能にし、彼らにさまざまな行動を許可する世界では、プレイヤーはまた、プレイヤーキャラクターとNPCの間の相互作用が共通の目標の決意と追求を後押しする、連鎖的なストーリーテリング方式で、分岐するクエストラインを導くために協力することができます。
代替
概念的には、代替はプレイヤーが書いたロジックを使用して、NPCの表現を超えて、ワールドスケープの特定の部分や装備可能なアイテムに適用を拡張することができます。これは、ゲリラに包囲されたときに、旗や装飾がきれいな状態からみすぼらしい状態になる前哨地や、対戦相手が長距離武器を使用するたびにプレイヤーのインベントリからスモークグレネードをトリガーする、プレイヤーがプログラムしたサイバーパンクのガジェットなどが考えられます。
私たちの研究は、透明性を生成的な機能として明示的にフレームワークすることを試みていますが、ゼロ知識証明で構築された実装は、より競争的な環境で活用することができます。EZKLのようなゼロ知識スタックは、検証可能なオフチェーン計算タスクを可能にし、AI/MLモデルの統合など、より複雑で表現力豊かなNPCロジックを可能にします。
これらの選択肢はどちらも、連鎖ストーリーの相互運用性を直感的でなくするという欠点があります。特にEZKLは、証明バックエンドに依存しているため、厳密な意味でワールドメカニズムが自律的ではなくなります。それにもかかわらず、ワールドがゲームプレイに探索を組み込むことを可能にし、より良い貢献者エクスペリエンスを提供し、潜在的にボット耐性を強化するため、私たちはこれらの代替案を興味深いと感じています。
拡張
現在、Duck Duck Destructionゲームプレイマッチを開始するプレイヤーは、その下で登録されているすべてのNPCコントラクトを実行することで発生するネットワークコストに責任があります。これは、プレイヤーがリソースをプールできるようにする専用ファンド契約や、ペイヤー拡張機能によるガス補助金モデルによって改善される可能性があります。
謝辞
契約のデザインとエンジニアリングはNorswapが行いました。ビジュアルアセットパッケージはTea Strazicic、SFXはOrion Ohanaによるもので、CC BY 4.0で公開。