AOテストネットは6ヶ月間運営されており、オリジナルのEVMエコシステムから多くの開発者を引き付けている。開発プロセスにおいて、多くの開発者はまだイーサネット・プログラミング思考を使用していますが、AOプロセスはよりコンピュータ・プロセスに近く、より安価なストレージと並列実行が可能です。AOプログラミング・パラダイムは、ゲーム開発において独自の利点を発揮しています。たとえば、プレイヤー・キャラクターとゲーム装備はスタンドアロン・プロセスとして存在し続けることができるため、プレイヤーがオフラインになったり、ゲームが停止したりしても、キャラクターと装備はすべての履歴を保持し、実行し続けることができます。プレイヤーがオフラインになっても、ゲームが停止しても、キャラクタと装備品はすべての履歴を保持し、実行し続ける。さらに、AOシステムの独立したプロセス状態と並列コンピューティングは、状態の爆発とトランザクションの混雑を排除し、AOの弾力的にスケーラブルなストレージとコンピューティングリソースにより、ゲーム開発者はサーバーの運用とメンテナンスの問題を心配する必要がなくなります。
AOテストネットワークは半年間稼働しており、より多くのアプリケーションと活発なエコシステムがあります。もともとEVMエコシステム上にいた多くの開発者(私を含む)が、AOを使って次々と製品を作ろうとしています。開発プロセスにおいて、多くの開発者はまだイーサリアムのプログラミング思考や習慣に慣れておらず、スマートコントラクトとしてのプロセスを直接利用している。もちろん、トークン・ブループリントやアトミック・アセットなど、これらの実装は基本的にERC-20やERC-721に直接対応しています。 AO上のプロセスコードのほとんどは、スマートコントラクトに非常によく似ていると言えます。
AOのホワイトペーパーでは、AOの定義はActor Oriented Machine(アクター指向マシン)であり、アクター(プロセス)はシステムの基本単位です。プロセスは、スマートコントラクトというよりは、コンピュータのプロセスに近く、安価なストレージと並列実行を備えている。プロセスを開始するコストは高くなく、すぐに使用して破棄することもできる。低コストと並列実行によって、AOプログラミング・パラダイム(アクター指向プログラミング)はスマート・コントラクトとは全く異なるものになる。ここでは、ゲームのシナリオを発展させ、AOプログラミングパラダイムがどのように適用されるかを見てみたい。
AOゲームの新しい遊び方
ワールド・オブ・ウォークラフトのような多人数参加型オンラインRPGにいると想像してください。プレイヤーが操作する各キャラクターはプロセスであり、プレイヤーはゲームの世界でこのプロセスを操作して、モンスターと戦ったり、アップグレードしたり、装備を売買したり、対戦したりすることができます。プレイヤーがオフラインになると、World of Warcraftはキャラクターの現在位置と状態を保存し、キャラクターが占有しているリソースをサーバーのメモリから解放します。他のプレイヤーの目には、キャラクターが透明になり、システムがフレンドにオフラインになるよう促しているように映る。しかし、AOの世界では、プレイヤーがオフラインになっても、プロセスはまだ存在し、解放されることはない。もちろん、コードにロジックを追加して、プロセスが受信メッセージの処理を拒否するようにして、「擬似オフライン」にすることはできます。しかし、より良いアプローチは、プロセスに「自動操縦」モードを持たせて、プレイヤーがAFKしている間に、キャラクターがモンスターと戦ったり、アップグレードしたり、お金を稼いだり、装備を売買したりできるようにして、プレイヤーからNPCに変えることです。この一連の「自動操縦」コードは、プレイヤー自身が書くことができ、AIによって駆動させることも可能で、実際のプレイヤーと同様の複雑な動作をさせることができる。この設計により、プレイヤーの入れ替わりによるゴーストタウン現象が発生することはなく、AOワールドは常に活気に満ちている。さらに楽しいのは、『World of Warcraft』のようにユーザー名やパスワードをお互いに明かす心配をすることなく、プレイヤーは自分のキャラクターを貸し出すことができることです。
それから、AOの世界では、現実の物理世界と同じように、ギアを別個のプロセスにすることができます。キャラクターAの手に握られている鉄剣と、キャラクターBの手に握られている鉄剣は、鋳造された当初は(鋳造された時期を除いて)同じであったかもしれないが、時間の経過とともに、手の入れ替えや殺しの記録を持つ鉄剣のプロセスは、どんどん異なっていく。鉄剣Aが鶏を3羽殺しても、鉄剣Bがドラゴンを殺せば、鉄剣Bには「人間的価値」がある。もちろん、ドラゴンの血を引いた剣の属性を高めることもできる。AOのプログラミング・パラダイムは、従来のゲームや連鎖型ゲームでは行われなかった、各装備の履歴を完全に記録することが当然可能です。例えば、レベル1のダークエルフがダーナサス(エルフの生まれ故郷)からストームウィンド(ヒューマンの生まれ故郷)まで走るというようなものです。AOの世界では、歴史全体が不正できないため、同じ挑戦を直接行うことができ、それを行うこと自体が検証になる。もちろん、エンターテインメントのためには、すべてをビデオに撮ったほうがいい。
AOの成績は?
チェインプレーの開発者は、この時点で尋ねるかもしれません。これほど多くのプレイヤーと機材が、すべて別々のプロセスで動いている状態で、AOの世界の状態は爆発するのだろうか?同時オンラインプレイヤーの増加によって、AOの世界は取引で混雑するようになるのだろうか?
私の答えは「ノー」です。EVMのグローバルな状態とは異なり、各プロセスの状態は独立しており、グローバルな状態は存在しないため、すべてのAOのデータを保存する物理的なマシンは必要ありません。AOのコンピューティングリソースは、CUによって動的に割り当てられるため、水平方向に伸縮性と拡張性があります。開発者はゲームロジックだけに集中すればよく、面倒なサーバーの運用やメンテナンスの問題を気にする必要はありません。
トランザクションの混雑の問題については、EVMはシリアルコンピューティングであるため、どのようなレイヤー2技術で高速化しても、処理速度の上限があります。 鉄の剣Aは鶏を切り、鉄の剣Bはドラゴンを切る、2つのイベントは次々に発生しなければなりません。一方、AOは違う。アイアンソードA、チキン、アイアンソードB、イービルドラゴン、この4つのプロセスは共有メモリを持たず、ワールドクロックも必要ない。アイアンソードAのハッキングイベントとアイアンソードBのハッキングイベントは完全に並列に計算できる。そのため、AOのアーキテクチャにはトランザクションの輻輳の問題はありません。
止まらない+自由な組み合わせ
従来のゲームでは、ゲームが儲からなくなったり、版権が切れたりすると、ゲームの運営会社はサービスを停止します。サービス停止をドラマチックにするために、無敵のボスがプレイヤーを皆殺しにするような全滅イベントが作られることもある。AOでは、一度開発したキャラクターや装備は(少なくともAOが存在する限り)不滅であり、常にオンラインである。開発者が継続的にメンテナンスしないと決めても、他の開発者がシームレスに引き継ぐことができる。たとえ開発者が継続的にメンテナンスしないと決めたとしても、他の開発者がシームレスに引き継ぐことができます。 たとえ開発者がゲームを最初からDLCに開放したとしても、プレイヤーは自分のキャラクターや武器を作ることができ、協力してゲーム全体を作り上げることができます。
AO上のすべてのプロセスが相互に通信するというのはどういうことですか?すべてのゲームを含むAO上のすべてのアプリが、本質的に相互運用可能であることを意味します。例えば、プレイヤーAがモノポリーゲームで鉄鉱石工場を購入し、生産した鉄鉱石を持ってAOのワールドで鉄剣を鋳造し、最後にマリオのワールドに走って鉄剣でキノコモンスターを刺したとしよう。映画『プレイヤー・ワン』でガンダムとウルトラマンが同時進行していたように、奇妙な組み合わせはいくらでも実現できる。伝統的なゲーム開発者がよくやるのは、ストック映像ライブラリーをあさって、スキンを入れ替えることだ。アートリソースのオーバーヘッドは、ゲーム全体の半分以上になることも多い。AOゲームの世界では、素材の豊富さは時間の経過とともに一方向的に成長し、より多くのよく書かれた素材やアイテムが利用できるようになり、後続の開発者にとってはますます始めやすくなり、最終的にはレゴを組み立てるのと同じくらい簡単になって、誰もがゲームを始められるようになる。
まとめ
まとめましょう。AOには、キャラクターや小道具をゲームから決して外すことができず、決して破壊することができず、その歴史が保たれるという、ゲームにおけるユニークな利点があります。AOのストレージとコンピューティングリソースは、弾力的に拡張することができ、サーバーの設定や管理を心配する必要はありません。これらの機能は、AOはゲーム開発者にとって幸せな場所になります。しかし、この目標を達成するためには、エコシステムを充実させ続ける必要があり、ゲーム開発者は、一緒に構築するために参加し続ける必要があります。