導入
Dark Forest は、イーサリアム ブロックチェーンに基づいた分散型戦略ゲームです。ゲーム内では、プレイヤーはリソースを収集し、基地を建設し、テクノロジーを開発し、武器を収集し、他のプレイヤーと戦い、リソースを奪い合うことができます。
Dark Forest では、各プレイヤーは自分の惑星を管理し、戦闘能力を向上させるために資源を収集し、基地を建設し、惑星上でテクノロジーを開発する必要があります。プレイヤーは資源生産施設、技術研究施設、武器製造施設を利用して戦闘を有利に進めることができます。
プレイヤーは星間空間を飛行しながら、継続的な偵察と探索を通じて他の惑星や資源を発見する必要があります。 2 人のプレイヤーが同時に同じ惑星を発見した場合、その惑星を攻撃するか逃げるかを選択できます。攻撃するとき、プレイヤーは自分の武器を使用して相手の基地を攻撃し、相手のリソースを奪取する必要があります。
Dark Forest の特徴は、ゲームが完全にブロックチェーン技術に基づいていることです。各プレイヤーの惑星とリソースはブロックチェーン上に保存され、改ざんまたは削除することができません。さらに、Dark Forest も分散型ゲーム (DeGame) であり、ゲームプロセスを制御する中央サーバーはありませんが、すべてのプレイヤーによって共同で維持され、決定されます。
Dark Forest は、フルチェーン分散型ゲームに霧の戦争システムを導入した最初のゲームでもあり、これは V God によって認められています。この記事ではこれを徹底的に分解して、このようなリアルタイム ストラテジー ゲームをフルチェーン環境でどのように実装できるかを探っていきます。ちょうど 4 月 1 日に @DfArchon が、興味のある学生もテストに参加できる「コミュニティ ラウンド」を開催すると発表しました。
まずはゲームの種類から始めて、MMORPG と MMOTS ゲームを比較してみましょう。
MMO - RPG ゲーム: マルチプレイヤー オンライン ロール プレイング、オープン ワールド、ゲームには始まりと終わりがあります。このゲームの楽しみは、ストーリーとメタバース ゲームの世界を没入的に体験することにあります。たとえば、ワールド オブ ウォークラフト。 MMO-RTS ゲーム: マルチプレイヤーのオンライン戦略対決、比較的小さな閉じられた世界、始まりと終わりのあるゲーム ラウンド ゲームの面白さは、ストーリーの背景にあるマルチプレイヤーの対決にあります。戦略はリソースを獲得するために必要です。開発してから敵を破壊します。代表的なのは StarCraft と Warcraft で、各ゲームは 20 ~ 40 分かかります。 DF は MMORTS ゲームであり、同時に参加できる人数が多く (最大数千人)、ブロックチェーン TPS が制限されているため、ラウンドの期間は約 10 日間です。ラダーのスコアに基づいて結果が決まります。スコアは主にゲーム内で得られる資源(PVEでは無料で入手、PVPでは略奪)から得られます。ブロックチェーン上でゲームを一時停止する方法については、まだ完全には明らかではありません。 リアルオファーオペレーション
公式ラウンドしかなかった頃は、参加するにはログインに招待コード(キー)が必要でしたが、現在はロビー機能により誰でもラウンドを作成できるため、いわゆるコミュニティラウンド(コミュニティラウンドのようなもの)が存在します。 )。ホームページ https://zkga.me/ にアクセスし、「ロビーの作成」をクリックして、以下に示すようにロビー設定ページに入ります。
ゲーム設定: ゲーム速度は、エネルギー/シルバーの回収率と航行速度を変更することで変更できます。ワールド サイズ: ユニバースの半径を変更して、マップのサイズを変更します。スペース タイプとバイオーム: ゲーム マップを選択します。惑星: 惑星の基本パラメータを設定します。プレーヤーのスポーン: プレーヤーのパラメーター設定を生成します。 Space Junk: このゲーム プロップのパラメータ設定。キャプチャ ゾーン: キャプチャ ゾーンのパラメータ設定。アーティファクト: ゲームの小道具のパラメータ設定。管理者権限:ホワイトリストプレーヤーを開くかどうかを設定します。高度な Snarks: Fog of War パラメータ設定。
ロビーの使用に関するその他のヒントについては、この公式回答を参照してください。
https://blog.zkga.me/introducing-dark-forest-lobbies
Dark Forest は表面的には複雑に見えますが、基本的なゲーム ルールは実際には非常にシンプルです。惑星にはエネルギー値があり、惑星間を飛び越えることは互いに攻撃することを意味し、攻撃の結果はエネルギー値の決定に基づいて決まります。減衰後。もちろん、ゲームの遊び方を説明した記事やビデオはすでにたくさんあるので、ここでは詳しく説明しません。
開発者ドキュメントの分析
https://dev-guides.zkga.me/
開発者ドキュメントでは、プラグイン開発者、Web クライアント開発者、ゲーム契約開発者、ZK 回路開発者を対象として、ゲーム開発アーキテクチャに関するフレームワークの説明が提供されます。
ブロックチェーンに接続する
ゲームは xDai のレイヤー 2 で実行されます。これは現在 Gnosis Chain です。ゲームは動作中にコントラクトとの多くの対話を必要とするため、RPC ノードが組み込まれています。 Gnosis チームは、このゲーム専用のゲーム ノードもオープンしました。
プラグイン
Dark Forest では、プレイヤーはプラグイン システムを通じてデフォルトの Web クライアントをカスタマイズできます。 プラグインは、プレイヤーがゲーム データの代替ビューを生成したり、一般的なゲームプレイ プロセスを自動化したり、さらにはゲームのスキンを変更したりするために作成できるコードのスニペットです。 基本的に、Dark Forest では、プレイヤーがプログラムで好きな方法でネットワーク クライアントと対話できるようになります。
鉱業
Dark Forest の主要なメカニズムは、暗号化された戦争の霧です。 初めてゲームに参加したときは、他のプレイヤーがどこにいるのかわかりません。プレイヤーはハッシュを計算して、惑星や他のプレイヤーの位置など、宇宙内の興味深い点を発見する必要があります。 これらのハッシュはブラウザのローカル ストレージに保存され、機密データとして扱われます。デフォルトでは、Dark Forest のデフォルト Web クライアントはシングルスレッドの Javascript マイナーを使用して宇宙を探索しますが、マイニング ボタンの横にある CPU コアを変更するなど、ハッシュ レートを高めるためにできることはたくさんあります。 コンピューターの実際のコア数よりも多くのコア数を設定しようとすると、マイナーのパフォーマンスが頭打ちになります。
プレイヤーのマイナーが宇宙の領域の地図を発見すると、Web クライアントはこれらの未発見の領域に関連する情報をブラウザのローカル ストレージに保存します。 Dark Forest はデータを IndexedDB に保存します。 プレイヤーは、リモート サーバーを実行してロケーション マップを探索するマイナーとして行動することもできます。
皮肉
Dark Forest は、入力やロジックを明らかにすることなく関数の正しさを証明するために使用できる暗号化技術である ZK-Snark テクノロジーを利用しています。 Dark Forest はこのテクノロジーを使用して、チェーンを覗き見している人々に惑星の位置を明かすことなく、ゲーム内の動きが有効であることを検証します。 この手法 (Zk-snark Proof Generation) は計算コストが非常に高くなります。 したがって、この ZK-Proof では計算がブラウザの外に移動し、Node.JS をローカルで実行する必要があります。もちろん、このゲームでは、リモート サーバーを使用してこのサービスを実行することもできます。
要約する
非常に革新的なフルチェーン ゲームである Dark Forest の開発は確かに遅いです。考えられる理由の 1 つは、これがコミュニティ主導のプロジェクトであるためです。これにより分散化が確保されますが、開発効率にも影響します。最後の公式ラウンドは2022年2月でした。 Webclient の更新は 2020 年 10 月に行われ、2022 年 7 月のナイトマーケット (匿名取引惑星座標) や 2022 年 3 月のロビーなど、サードパーティ (コミュニティ) プラグインの更新はまだわずかにアクティブです。
