Author: Jake @ Antalpha Ventures, Blake @ Akedo Games, Jawker @ Cipherwave Capital
Preface 研究開発企業によって(プロジェクト+ミドルオフィス組織を使った)アーキテクチャが異なるため、プロジェクト組織とミドルオフィス組織への重点の置き方が異なります。h1>
R&D企業によって(プロジェクト+ミドルオフィスの組織を使って)構造が異なるため、プロジェクトとミドルオフィスの組織に対する重点の置き方が異なり、プロジェクトに強くミドルオフィスに弱い企業もあれば、ミドルオフィスに強くプロジェクトに弱い企業もある。そこで、本連載では、主にゲーム開発を機能・プロセス別に分析する。これを踏まえ、本連載の第2回目は、Web3 Gamingの産業化された生産と制作(アートとテクノロジー)の側面に焦点を当てる。ゲームプロジェクトが開始された後、ゲームプランナーは、キャラクターの成長、プレイヤーの行動誘導、マップやストーリーなど、ゲームプレイやプレイアビリティの核となる詳細をすでに決定している。そのため、ゲームプランナーはアートやテクノロジーとコミュニケーションを取りながら、Web3ゲーム開発を設計・開発フェーズへと進めていく必要がある。
ソース:公開されているゲームプラットフォーム。">出典:オープンマーケット情報
出典:BuMing Technologies 工業生産と製造:技術部分の概要 企画が要求を明確にした場合、ゲームのフロントエンドとバックエンド技術などの技術手順チームは企画部門が提案したゲームデザインを実現し、ゲームコードを書き、ゲームの技術実装を確保する必要がある。具体的な実施プロセスでは、フロントエンドのプログラムとバックエンドのプログラムに分けることができる。メインプログラムは技術の全過程を管理する必要があり、主な技術実装計画を決定し、各種性能を最適化し、基礎となるフレームワークの構築を指導するが、これに限定されない。
以下の図は、Web3デモンストレーションのフロントエンド・アプリケーションとバックエンド・アプリケーション部分におけるゲームです。両方の部分については、後で詳しく分析します。
ソース:Web3 Gaming。">Source:SwimShark Gaming Circle; collated by Jake Industrialised production and production: the technical front-end ゲームのフロントエンドのプログラム開発は、ゲームのインターフェイス、インタラクション、ユーザー体験に焦点を当てます。インターフェイス、相互作用、およびユーザー エクスペリエンスに焦点を当てます。ゲームのインターフェイス (UI) の設計と実装、ユーザー インターフェイス (UI) システムの開発、アニメーションと視覚効果の作成など、ゲームのインタラクションとユーザー エクスペリエンスに焦点を当てる必要があります。また、フロントエンドエンジニアは、デスクトップやモバイルデバイスなど、異なるプラットフォーム間で一貫したユーザーエクスペリエンスが得られるようにする必要があります。ゲームロジックの実装に関しては、開発者はゲーム内のキャラクターの動作、ゲームルールの適用、スコアと進捗の管理、ゲーム内のイベント応答メカニズムに焦点を当てる必要があります。開発者は、スムーズで公平でやりがいのあるゲームプレイを保証する、効率的でシームレスなコードを書く必要があります。
したがって、これらの目標に基づいて、フロントエンド開発者は、関連するプログラミング言語 (C#
, C++
など) やゲームエンジン (Unreal, Unity, Source, CryEngine など) を使用してゲームを作成する必要があります。CryEngine など) を使用して、ゲーム インターフェイスを作成したり、アニメーションのリアライゼーションやサウンド効果を調整したりすることができます。開発者が使用できるゲーム エンジン ツールは数多く市場に出回っており、特定のゲーム エンジン ツールを選択する際は、開発者の具体的なニーズに基づきます。ゲームエンジンによって、開発者コミュニティが重視するサポートは異なり、ゲーム技術の研究開発におけるゲームエンジン選択の好みとニーズは次のとおりです:
プロジェクトの要件:ゲームの種類によって、エンジン選択の要件は異なります。ゲームの種類によって、エンジンの選択に対する要件は異なります。たとえば、視覚効果を重視する AAA ゲームには Unreal Engine や CryEngine が適しているかもしれませんが、モバイル プラットフォームの小規模なゲームには Unity が適しているかもしれません。
学習曲線とコミュニティ サポート: 学習しやすく使いやすいエンジンは、開発の難易度を大幅に下げることができます。さらに、活発なコミュニティは、開発者が問題に遭遇したときにすぐに解決策を見つけられるように、豊富なリソースとサポートを提供できます。
パフォーマンスと最適化: エンジンのパフォーマンスと最適化機能は、ゲームがいかにうまく動作するかという点で非常に重要です。
コストとライセンス: エンジンによっては、使用に支払いが必要な場合や、特定のライセンス要件がある場合があります。開発者は予算とプロジェクトのニーズに基づいてトレードオフを行う必要があります。
拡張性とカスタマイズ性: ゲーム業界が進化し続けるにつれて、ゲーム エンジンは新しい技術動向や需要に適応できなければなりません。エンジンの拡張性とカスタマイズ機能を理解することで、開発者は将来の変化に対応しやすくなります。
上記のニーズ分析に基づき、代表的なゲーム エンジンである Unity と Unreal Engine の簡単な紹介と分析を以下に示します。
Unityは、Windows、Mac、iOS、Androidなど、複数の主要プラットフォームをサポートするゲームエンジンです。Unityは高度にカスタマイズ可能で、開発者はC#
を使用して独自のゲームを作成することができます。Unityは高度なカスタマイズが可能で、開発者はC#
またはJavaScript
でスクリプトを書くことができます。Unityは、開発者がプラグイン、モデル、サウンドを購入してダウンロードできる豊富なリソースショップを提供しており、主な利点として、活発なコミュニティ、優れたクロスプラットフォーム互換性、比較的使いやすい開発環境、および多数のサードパーティ製パッケージが挙げられます。開発者は独自の機能パックを作成し、Unity公式ショップで販売することができる。現在、毎月150万人以上の開発者がショップを訪れ、56,000以上のパッケージが利用可能です。Unityの商業化と実現という観点から、商業化チャネルはより多様化し、Monetization SDK、Unity Game Cloudワンストップネットワークゲームサービス、Vivoxゲームボイスサービス、Multiplay海外サーバーホスティングサービス、Unity Content Delivery Platform (UDP)、Unity Cloud Buildなどの多様なサービスが含まれます。これらのサービスのうち、Monetization SDKは、開発者がUnityの直接広告配信ポータルにアクセスして広告を配信できるようにするもので、このサービスはエンジンの商用ライセンスに代わってUnityの主な収入源となっています。Escape from Tarkov」、「Temtem」、「Call of Duty」、「The Legend of Hearthstone」などの世界的に有名なゲームは、Unityが市場で最高のゲームエンジンの1つであることを証明しています。ただし、Unity のパフォーマンスの最適化は比較的不十分で、大規模なシーンや高精度のモデルを処理する能力には限界があります。Unity の UI エクスペリエンスは Unreal に劣るため、開発者はエンジンの機能を向上させるために多くのサードパーティ製パッケージを追加する必要があります。プログラミングの面では、Unity は C#
と JavaScript
を使用しているため、Unity の開発中に適応の問題が発生しました。2020年3月、UnityはHDRP(High Definition Render Pipeline)とURP(Universal Render Pipeline)機能を含む最新の2019.3
リリースを正式に開始した。ビジュアル・エフェクトと最適化機能の強化エフェクト ビュー エディター、リアルタイム ファイバー トラッキング システムなどが追加され、今日の市場や大規模なゲーム制作への適応性がさらに高まりました。
Unreal Engine は、その素晴らしいグラフィックと物理演算で知られる、完全オープンソースの高性能ゲーム エンジンです。C++ およびブループリントのビジュアル プログラミングをサポートし、リアルなゲームプレイのための強力なマテリアル エディターとライティング システムを提供します。開発者にとって、Unreal は無料で使用できるだけでなく、コードを研究して開発効率をさらに向上させることができます。さらに、Unreal Engine にはブループリントが付属しているため、技術開発者でなくても、ピアツーピアのビジュアル インターフェイスを通じてゲームのデザインを完成させることができます。さらに、Unreal Engine にはクロスプラットフォーム互換性があり、高度にカスタマイズ可能な UI システムを備えています。価格に関しては、Unreal は伝統的なエンジンのビジネス モデルを採用しています。ひとつは、ゲームのグロス収益が100万ドルを超えた場合、5%の固定手数料を徴収するもので、もうひとつは、公式またはサードパーティのマテリアルをモールで販売し、そこから収益の12%を徴収するものです。ゲームの出力と人気という点では、『No Man's Sky』、『Batman: Arkham Asylum』、『Final Fantasy VII Remake』など、世界的に有名なゲームはすべてアンリアル・エンジンを使用しています。ただし、アンリアル エンジンは学習曲線が険しく、習得するのは簡単ですが、使いこなすのは容易ではなく、マスターするには一定の時間と経験が必要です。
Medium and Competitive Coreのデータ分析によると、2021年、Unityの世界市場シェアは49.5%に達し、Unrealの世界市場シェアは9.7%となり、二大競争パターンが形成されます。別の市場調査レポートによると、2023年にはUnityの市場シェアは48%、Unreal Engineの市場シェアは13%に達する見込みです。以下は、グラフィックス、機能、コード、パフォーマンスにおける両者の比較分析です。
ソース:InFormation.com。">Source: Incredibuild; Jake Overall Analysis ビジュアルおよびグラフィック効果という点では、Unreal Engine は Unity よりも少し優れていますが、その差は非常に小さいです。実践的な観点から見ると、Unity は初心者にとって使いやすく、Unity で必要とされる C#
は通常、コンパイル速度と反復時間の短縮につながりますが、Unreal Engine はアニメーションとグラフィック処理の面で初心者にとってより困難です。実際には、Unreal Engine で実現したいことは Unity でも実現できます。どちらのソフトウェアもAPIやツールを呼び出して、より高品質で効率的なグラフィックパフォーマンスを実現することができます。統計的に、実際には、コード エンジニアは Unity を好み、より高いグラフィックと表現力を必要とするテクニカル アーティストは Unreal Engine を好みます。
Unityハンズオン インターフェイス デモ、ソース: Open Market Information
アンリアル エンジンのハンズオン インターフェイス、ソース: オープン マーケット情報 同様に、フロントエンド開発者にとって、Unity と Unreal 以外にも選択できるゲーム エンジンがあります。
CryEngineは、高品質なグラフィックスと強力な物理エンジンで知られています。リアルタイム・グローバル・ライティングと高品質のモデルとマテリアルを提供し、開発者に本物のワールドクラスのゲームを作成する可能性を与えます。しかし、CryEngineはドキュメントやコミュニティリソースが比較的少なく、初心者が学ぶには難しいかもしれません。
GameMaker Studio 2は、2Dまたは3Dゲームの作成に使用できるゲーム開発ツールです。GameMaker Studio 2には、直感的で使いやすいドラッグ&ドロップ(DnD™)アクションインターフェイスアイコンが用意されており、仮想コードロジックを使用してゲームを作成することができます。また、スクリプト言語 GML を使用してゲームを作成することもできますし、DnD™ アクション呼び出し関数を使用して両方を組み合わせることもできます。
Godot Engineは、Windows、macOS、Linux、その他多くのオペレーティングシステム上で動作する、汎用性の高いクロスプラットフォームの2Dおよび3Dオープンソースゲームエンジンです。作成されたゲームは、PC、Android、iOS、HTML5、その他のプラットフォームで動作します。ノードベースのアーキテクチャでゲームを設計することにより、3Dレンダラーは3Dゲームのグラフィックスを強化するように設計されています。内蔵ツールによる2Dゲーム機能は、ピクセル座標で動作し、2Dゲーム効果を制御します。
どのようなゲーム エンジンを選択するにしても、フロントエンド ゲーム テクノロジーの開発者は、それが実際にどのように使用されるかを考慮する必要があります。Web3 ゲームは消費者向け製品であるため、さまざまなゲームプレイ メカニクス (集中、共感、想像など) と没入感のある感情的なインタラクション (喜び、恐怖、憧れ、成長、余暇、リラックス、驚きなど) が、消費者の消費を持続させるための重要な前提条件となります。以下は、ゲームプロセスにおける物理シミュレーションと描画システム(レンダリングシステム/レンダラー)の例であり、ゲームエンジンを使用する際にフロントエンド技術者が考慮すべき技術的な詳細とユーザーエクスペリエンスの問題を分析しています。
正確な物理シミュレーションがなければ、どんなにゴージャスなゲームも静的で退屈に見えてしまいます。ゲーム内の多様なシーンには、すべて物理原理と物理エンジンが関わっています。物理エンジンとは、ゲーム世界のオブジェクトに現実世界の物理属性(重量や形状など)を割り当て、滑車やロープなどの剛体モデルに抽象化するコンポーネントで、ゲームオブジェクトが現実世界の運動や力の作用による相互衝突をエミュレートする。つまり、ニュートンの古典力学モデルに基づいて、ゲームオブジェクトの移動、回転、衝突を計算するための簡単なAPIを介して、現実的な動きと衝突の効果。計算プロセスでは、運動学や動力学などのいくつかの分野からの理論と計算が適用されます。
運動学:物体の位置の時間的変化のパターンを、幾何学的な観点から記述・研究する力学の一分野(物体自体の物理的特性や、物体に加わる力には関与しないという意味)。点の運動学は、運動方程式、軌跡、変位、速度、加速度、および点の運動の他の特性、ならびに異なる空間における変換を研究する。運動学は理論力学の一分野であり、幾何学を使って物体の運動を研究する。作業の過程で、フロントエンド技術は、同時に実際の物理的なルールにできるだけ近い前提を増やすことを考慮する必要があり、計算の複雑さを軽減することができます。一般的な前提には、外力下での運動を考慮しない、素運動モデルへの幾何学的構成要素として物体を抽象化する、物体の特性(位置、速度、角度など)のみを考慮する、などがあります。
力学:物体に作用する力とその運動との関係を主に研究する。力学は、光速よりもはるかに小さい速度で動く巨視的な物体の研究です。ゲーム物理エンジンでは、主に剛体力学の側面を扱い、運動量の定理、運動量モーメントの定理、運動エネルギーの定理から導かれるプラズマ系の力学の基本定理、およびこれら3つの基本定理から演繹される他の多くの定理を含む。このうち、運動量、運動モーメント、運動エネルギーは、プラズマ、プラズマシステム、剛体の運動を記述する基本的な物理量である。作業工学や計算工学で考慮しなければならない要素や仮定には、物体の運動に対する外力の影響、力の役割(物体の重量や形状、さらには弾性体に作用する重力、抗力、摩擦などの力)、剛体に関する仮定、現実世界の運動に近いゲーム内の物体の仮定などがあります。
物理エンジンを使用すると、ゲーム開発者は、ゲーム内のオブジェクトに形状 (一様な分布を仮定) と力を割り当てることだけを考え、ゲーム エンジンによって駆動されるモーションと衝突の計算を自動化する必要があります。また、上記の物理エンジンの分析に基づけば、フロントエンドの技術チームは、運動学や衝突計算、最適化に関する複雑な知識を探る必要はなく、物理エンジンにパラメータを入力するだけでよい。しかし、物理エンジンを効率的に利用するためには、フロントエンドの技術チームは物理運動の基本的な知識を理解する必要があるだけでなく、ゲームの歪みを避けるために、ゲームの離散的なシミュレーションによって発生する特殊な現象を理解する必要があることに注意する必要がある。また、経験豊富なフロントエンド技術者は、ゲームの流れやゲームのパフォーマンスなどについても考える必要がある。
ゲーム用の剛体モーションモデルを構築する前に、以下の要素を考慮する必要があります:
そのセットアップが剛体であるかどうか、ストレスを受けた後に剛体になるかどうか。rigid bodyであるかどうか、力が加えられた後の弾性変形の程度;
運動中、または力が加えられた後にその形状や大きさが変化するかどうか;
力が加えられた後のオブジェクト内部の点の相対的な形状や大きさ;
力が加えられた後のオブジェクト内部の点の相対的な形状や大きさ;
力が加えられた後のオブジェクト内部の点の相対的な形状や大きさ。
したがって、上記の分析に基づいて、技術フロントエンドチームは、オブジェクトの中心、形状、質量、および初期動作方向と軌道を設定する必要があります。さらに、重力と運動の場合、オブジェクトのモデルが均質で、中心が質量中心と一致すると仮定して、オブジェクトは質量中心の設定に集中する必要がある。物体の運動を設定する場合、物体に作用する力は、中心点に作用する力と中心点を中心に回転するモーメントに分解して考える必要があります。パラメータ設定は、没入感を演出するために、プレイヤーの物体や動きに対する感覚に沿ったものにする必要があり、そうでないと、プレイヤーがゲームから抜け出してしまい、没入感を演出することが難しくなります。次の図は、力とモーメントの分解を示しています。
出典:オープンマーケット情報 現実的な物理的挙動を実現するために、ゲーム内のオブジェクトは正しく加速する必要があり(つまり、人間の知覚に合わせて)、衝突や重力などの力を受けます。最初に注意すべきことは、3Dオブジェクトモデルをモーション用にセットアップするとき、オブジェクトモデルが凸型かどうかを判断しなければならないということです。ほとんどの実オブジェクトは凸状ではありませんが、物理シミュレーションでは凸状オブジェクトが理想的な近似となることがよくあります。凸オブジェクトは、物理エンジンが衝突の計算やシミュレーションを行う際に、衝突や落下といった受動的な挙動をより正確に生成することができます。凸の衝突形状は、プリミティブな衝突形状と凹の衝突形状のバランスをとり、どんな複雑な形状も表現できます。スクリプトで物理を制御することで、乗り物や機械、さらには布のような動的特性を持つオブジェクトを提供できます。もちろん、入力メッシュを凹形状にすることもでき、物理エンジンはその凸部分を計算します。オブジェクトの複雑さにもよりますが、複数の凸形状を使用することで、通常は凹状の衝突形状を使用するよりも良いパフォーマンスが得られます。Godotエンジンでは、凸分解を行うことで、中空オブジェクトにほぼ一致する凸形状を生成することができますが、凸形状の数が大きくなりすぎると、このパフォーマンスの利点は減少します。レベル全体のような大きく複雑なオブジェクトには凹形状を推奨します。オブジェクトの形状をモデリングする場合、SPHERE、BOX、CAPSULE、CYLINDER、CONVEX_HULLなどの一般的な参照タイプを追加して、テクニカルフロントエンドで使用するための重心、回転角度、寸法などのパラメータを含めることができます。
オブジェクトの動きをモデリングする場合、追加の計算プロセスが必要です。モデルをインポートするときに物理エンジンを追加しても効果がない場合があります。そこで、単純なメッシュをオブジェクトに巻き付け、オブジェクトの姿勢をメッシュに追従させることができます。 バビロンを使用して作成したメッシュは、物理プロパティを直接追加することも、カスタムシェーダーで作成することもできます。カスタムシェーダーはより複雑ですが、より効果的です。エディタでは、メッシュインスタンスを選択し、3Dビューポートの上部にあるMeshメニューを使用することで、1つ以上の凸コリジョン形状を生成することができます。
単一の凸コリジョンを作成するには、Quickhull
アルゴリズムを使用します。これは、自動的に生成された凸コリジョン形状を使用して、ColisionShape ノードを作成します。ColisionShapeノード。単一のシェイプのみが生成されるため、パフォーマンスが向上し、小さなオブジェクトモデルに適しています。
複数の凸状の衝突兄弟を作成する V-HACD
アルゴリズムを使用すると、複数の ColisionShape ノードを作成できます。凸形状を持つ複数のColisionShapeノードを作成できます。複数の形状が生成されるため、パフォーマンスを犠牲にする代わりに、凹オブジェクトに対してより正確です。中程度の複雑さのオブジェクトでは、単一の凹状の衝突形状を使用するよりも速いかもしれません。
また、凹面衝突形状の場合、凹面は最も遅いオプションですが、Godotで最も正確でもあります。凹面形状はStaticBodiesでのみ使用できます。剛体のモードが静的でない限り、KinematicBodiesやRigidBodyでは使えません。レベルデザインに GridMap を使用しない場合、凹形状はレベルコリジョンに最適な方法です。3Dモデラーで簡易コリジョンメッシュを作成し、Godotにコリジョン形状を自動生成させることも可能です。凹面のコリジョン形状は、エディタからMeshlnstanceを選択し、3Dビューポートの上部にあるMeshメニューを使用して生成できます。
特に RigidBody や KinematicBody のような動的オブジェクトでは、パフォーマンスを向上させるためにシェイプの数をできるだけ少なくすることをお勧めします。をパン、回転、スケーリングしないようにします。StaticBodyで1つの変換されていないCollisionShapeを使用する場合、エンジンのワイドフェーズアルゴリズムはアクティブでないPhysicsBodyを破棄することができます。ほとんどのゲームには 100% 正確なコリジョンはなく、ゲームは通常のゲームプレイ中にコリジョンを隠したり、目立たないようにする独創的な方法を見つけてきました。
ソースはこちら:オープンマーケット情報 上記の内容は、物理シミュレーション部分をケーススタディとして、フロントエンド開発者が何を完成させ、何に注意を払う必要があるかを分析するものです。描画システムは、ゲームエンジン全体の中でも最も高度で難しい部分の一つでもあります。理論的には、ユーザーにゲームへの没入感を与えるために、レンダリングには数学(数学的、物理的、アルゴリズム的な正しさ)と描画効果(ライティング、ステレオアングル、散乱、屈折、反射など)の精度の2つの側面に対処する必要があります。実装と実践の過程で、次の4つの実際的な問題を解決する必要があります:
シーンの複雑さ: 1つのシーンに対して複数のオブジェクトを複数のアングルでレンダリングし、各ゲームフレームの生成では、すべて何度も繰り返す必要があります。
ハードウェアの深度適応:PC、携帯電話、およびその他のハードウェアの能力は、アルゴリズムの動作と出力に影響します。ハードウェアの場合、さまざまな時間のかかるテクスチャサンプリング作業や、サイン、コサイン、指数、対数の超越関数演算など、より複雑な数学的計算に対処する必要があります。
パフォーマンス予算: ゲーム グラフィックの要求がどれほど高くても、ゲーム エンジンはゲーム グラフィックの計算が 33 ミリ秒 (つまり、1/30 秒) で完了するようにする必要があります。大規模で没入感の深いゲームの場合、ゲーム画面は比較的短時間で大きく変化する可能性がありますが、必要な計算時間は短縮できません。また、ゲーム産業の発展に伴い、ゲームの細かい要求度はますます高くなり、ゲーム画面のフレームレート要求とフレームサイズ要求もますます高くなっている。
1フレームあたりの時間予算はますます小さくなっていますが、同時に画質の要件はますます高くなっています。
1ゲームフレームあたりの時間予算の割り当て:グラフィックスカードの性能の割合から見ると、GPUはCPUよりも多くを占めることができます。グラフィックス レンダリング アルゴリズムは、システム内の他のモジュールで使用可能なリソースよりも多くの CPU コンピューティング リソースを使用すべきではありません。
Source: BuMing Technologies 以上の分析によると、計算は描画およびレンダリングシステムの最も重要なコア機能の1つであり、すなわち、数千万の頂点とピクセルの計算、論理演算、および計算プロセスです。頂点とピクセル、論理演算ユニット、テクスチャ。簡単に説明すると、具体的な演算では、三角形で構成された複数の平面を投影行列を介してスクリーン空間に投影する。頂点データはラスタライズによってスライスに変換され、スライスの各要素はフレームバッファのピクセルに対応する。この処理によって、グラフはラスタで構成される2次元画像に変換される。シェーディングとペインティング処理では、小さなピクセル点ごとに、そのピクセル点に対応するマテリアルとテクスチャがデコンピュテーションされ、そのピクセル点が対応する色にレンダリングされる。そして、没入感や臨場感を高めるために、オブジェクトの照明やパターンなどの情報を実際の状況に応じて調整し、最終的な効果をレンダリングする必要があります。その後、頂点バッファとインデックスバッファが構築され、メッシュデータがグラフィックスカードに渡されます。上記の「投影-ラスタライズ-シェーディングとペイント-後処理とライティング操作」のプロセスがペイントのプロセスです。
ソース: BuMing Technologies 詳細には、レンダリングされるオブジェクトとシーンには、さまざまなジオメトリ、マテリアル、パターン、およびアプリケーションのシナリオがあるため、実際のレンダリング操作では、オブジェクトとシーンをケースバイケースで分析する必要があります。一般的に、モデルファイルには複数の頂点が含まれ、頂点の位置、頂点における法線方向、頂点のUV座標、その他の属性が含まれる。多くの場合、各モデルの三角形の向きを計算し、隣接する複数の三角形の法線ベクトルを平均化に使用することで、頂点の法線ベクトルの向きを得ることができます。実際の実装では、モデルファイルの三角形はインデックスデータと頂点データによって記述され、すべての頂点は配列に入れられ、3つの頂点のインデックス位置情報のみが保存されるため、元のストレージ容量の1/6に保存容量を節約することができます。
テクスチャは素材を表現する非常に重要な方法です。材料の種類の認識は、材料のパラメータではなく、そのテクスチャによって決定されることがよくあります。たとえば、滑らかな金属表面と錆びた非金属表面の視覚的表現の区別は、テクスチャの粗さによって区別されます。着色・塗装工程におけるテクスチャ・サンプリングの性能消費は膨大かつ複雑で、テクスチャ・サンプリングを行うには、2×4で合計8ピクセルのデータをサンプリングする必要があり、7回の補間演算が必要となる。テクスチャサンプリングは、サンプリングなどの問題を回避し、遠近感の変化によるジッターや位置ずれを避ける必要があるため、4点をサンプリングして補間する必要があり、2層テクスチャの比例サンプリングも不可欠であることは注目に値します。
シェーディングとペイントを行う場合、さまざまな要素をつなぎ合わせて結合する必要があります。この時点で、エンジンによって生成されたシェーダーコードは、データのバイナリブロックであるブロックにコンパイルされ、ネットワークとともに保存されます。多様なメッシュとシェーダーコードの組み合わせが、多様なゲーム世界を作り出します。同じモデルの異なるマテリアルは、それぞれのサブメッシュで独自のマテリアル、テクスチャ、シェーダーコードを使用できます。各サブメッシュはデータの一部しか使用しないため、インデックスバッファ内の開始位置と終了位置のオフセットのみを保存すればよい。さらに、シェーディングとペインティングの実際の操作では、同じリソースプール(メッシュプール、テクスチャプールなど)を共有してスペースを節約することができます。インスタンス化されたレンダリング中に頂点データのコピーを共有することで、グラフィックスメモリの使用量が大幅に削減され、グラフィックスメモリの帯域幅が減少することは注目に値します。同時に、より負荷の高いゲームでは、インスタンス化の使用は、個々のオブジェクトの選択操作など、他の追加の技術的な処理を必要とします。
また、ポスト処理やライティング操作では、光の強度、光の角度、ユーザー視点、散乱と屈折、マテリアルによる光の吸収の度合いなど、考慮すべき複数の次元があります。たとえば、Unity のビルトインパイプラインでは、ポスト処理エフェクトを達成したい場合、ポスト処理スタックを使用してこの目標を達成するか、OnRenderlmage()
と Shader
メソッドを使用してカスタマイズできます。このメソッドでは、シーン上で希望する後処理効果を使用でき、いつでも変更・拡張できる自由度の高さがあります。ゲームエンジンでは、光処理の計算過程はもっと複雑で、光の分析と式の表現については、次の図を参照することができ、興味のある読者は自分の試みを参照することができます。ゲーム産業の発展に伴い、照明性能はゲーム産業のハイレベルな性能の重要な一部となる傾向があり、関連するレンダリング技術はアニメーション、映画、バーチャルリアリティなど多くの分野でも使用することができます。
ソース:BuMing Technologies ひとつ付け加えておくと、ゲームエンジンの描画システムは非常にシンプルなものだ。ゲームのエンジンはコンピューター工学であり、エンジンの能力を完全に実現するには、グラフィックス カードのアーキテクチャ、パフォーマンス、消費電力、速度、および制限について深く理解する必要があります。さらに、GPUは非常に高速な並列処理能力を持っているため、低コストでオクルージョンのセットの深度マップを形成し、モデリングされたオブジェクトの一部を除去することができ、複雑なシーンの処理能力を最適化することができます。
工業生産と制作:技術的なバックエンド バックエンドの主な作業は、サーバー側のロジックとデータ処理、ネットワーク通信と同期、およびその他の技術的なソリューションをカバーします。サーバー ロジックの面では、バックエンド開発者は、サーバー側ロジックと、プレイヤー アカウント管理、ゲーム世界の状態同期、およびマルチプレイヤー インタラクション サポートを含むゲーム データ ストレージの処理を担当する必要があります。さらに、開発者は、ゲームの進行状況、プレイヤーの実績、仮想アイテム、その他の情報を保存するための効率的なデータベースアーキテクチャを設計し、実装する必要があります。さらに、バックエンドシステムはゲームクライアントからのリクエストも処理する必要があります。これには、プレイヤーのインタラクションに関する情報、プレイヤーのユーザー数データ、キャラクターのアップグレード、リソースの購入などのリクエストが含まれます。通信速度と決済時間などの要因により、現在の通信と暗号化技術のレベルに基づいて、大規模なWeb3ゲームのバックエンドアーキテクチャはまだ完全にチェーン上に構築されていません。
Source: 公開市場情報 ゲームのネットワーク通信と同期のバックエンド開発では、バックエンド開発者はTCP/IP、HTTP、WebSocketなどのさまざまな種類のネットワークプロトコルを使用して、クライアントとサーバー間の安定した通信リンクを確立します。この開発プロセスでは、高頻度のデータ交換とリアルタイムのゲーム状態の更新をサポートするために、ネットワークプロトコルを設計し、実装する必要があります。効果的なネットワーク通信ストラテジーと同期メカニズムは、待ち時間を短縮し、すべてのプレイヤーがゲーム世界の一貫した状態を確認できるようにします。特にオンラインゲームでは、リアルタイムのデータ転送と同期は、優れたユーザーエクスペリエンスを確保するための中心的な要素です。
バックエンドを開発する際には、全体的なスケーラビリティ、安定性、およびパフォーマンスの向上に注意を払う必要があります。パフォーマンスの面では、バックエンドは低レイテンシとキャッシュでの高速な計算フィードバックを達成する必要があるだけでなく、HTTPプロトコルの面でサーバーとリアルタイムで通信する能力も必要です。安定性とユーティリティの面では、1つのサーバーの問題がすべてのサーバーに影響するのを避けるために、サーバーを分離する必要があります。高いスケーラビリティの観点から、開発者は、ピーク時の情報およびリクエストに対するサーバの処理能力を向上させるために、単一のサーバと複数のサブサーバを接続し、TCPやIPCなどのチャネルを介して通信することにより、計算能力と機能の拡張に注目する必要がある。下図は、ストレージ、サービス、相互作用の観点から見た、技術的バックエンドの全体構造の代表的な概略図である。
Source: 公開市場情報 マルチユーザーおよびマルチシナリオのWeb3ゲームでは、ゲームユーザーの体験を保証し、短時間に大量のアクセス要求によるプレッシャーを軽減するため、開発者は複数のサーバーを設置することができます。各サーバーでは、複数のワールドモードをクラスタにグループ化することで、多数のユーザーに対してゲームの実用性を満足させることができる。同時に、複数サーバーのセットアップでは、多数のユーザーのリアルタイム動作に対応でき、多数のアクセスやリクエストのプロセスにおける待ち時間の短縮にあらゆる努力を払うことができる。下図は、ワールドを持つマルチサーバーの参考回路図である。
Source: Open Market Information Web3ゲームの技術的なフロントエンドとバックエンドは完全に分離しているわけではなく、全体的な技術サポートを完成させるために、多くの点で連携する必要があります。たとえば、プラグインの場合、フロントエンドとバックエンドの両方のテクノロジーがそれぞれの強みを発揮し、プラグインを検出するために協力することができます。
Anti-Acceleration: サーバー検証、クライアント側の協力;
Anti-Acceleration: サーバー検証、クライアント側の協力;
Anti-Acceleration: サーバー検証、クライアント側の協力;
メモリデータの暗号化: Unity AssetStoreのプラグインを介したクライアントサイドのメモリ暗号化と、クライアント内のすべてのデータに対する依存性の低減;
プロトコルCD: プロトコルへの頻繁なアクセスを防止します。
プロトコルの暗号化:プロトコルヘッダのバイト数を増やします。
WPEにおける重複パケットの防止:ピックアップとエントリーの重複を防ぎます。
非リチャージ可能チャネルの監視:非リチャージ可能チャネルからの通貨とアセットのアクセスを監視します。
移動と操作の加速防止:検出ロジックは、プレーヤープロセスとシーンプロセスに配置することができます。
上記は、技術的なフロントエンドとバックエンドの連携によるプラグインの使用例です。ゲーム開発プロセスのフロントエンドとバックエンドを通じて、さまざまなタスクのそれぞれの責任の理解の深い理解だけでなく、密接にリンクされ、一緒に完全なゲームシステムを構成します。素晴らしいゲーム体験は、フロントエンドの豊かな相互作用とバックエンドの強力なサポートから生まれます。上記は、Web3ゲーム技術の一部を簡単に紹介したにすぎません。 フロントエンドとバックエンドの技術にもっと興味がある方は、以下の書籍を参考にしてください。
Mathematical Aspects of Web3 Game Programming: Foundations of Game Engine3Dゲームとコンピュータグラフィックスにおける数学的方法」 「グラフィックスとゲーム開発のための3D数学入門」 「ゲームとインタラクティブアプリケーションのための必須数学コンピュータ・サイエンスのための幾何代数 コンピュータ・グラフィックスのための幾何ツール アルゴリズムの説明 四元数の視覚化 散布、回転、勾配の説明 計算幾何学
ゲームプログラミング:「Unreal Engineゲーム開発を学ぶ」、「Blueprints Visual Scripting for Unreal Engine」、「ゲームデザイン、プロトタイピング、開発入門」、「Unity 5実践ガイド」。と開発》《Unity 5実践編》《ゲームプログラミングのアルゴリズムとテクニック》《ゲームプログラミングパターン》《クロスプラットフォームゲームプログラミング》《Android NDKゲーム開発クックブック》《FPSゲームの構築UnityでFPSゲームを作る》《Unityバーチャルリアリティプロジェクト》《拡張現実》《実用拡張現実》《ゲームプログラミング黄金律》《ベストゲーム
ゲームエンジン:「ゲームエンジンアーキテクチャ」、「3Dゲームエンジンアーキテクチャ」、「3Dゲームエンジンデザイン」、「高度なゲームスクリプト」、「プログラミング言語実装パターン」、「ガベージコレクション」。プログラミング言語実装パターン" "ガベージコレクション・アルゴリズム・ハンドブック: 自動化されたメモリ管理の技術" "ビデオゲームの最適化" "Unity 5 ゲームの最適化" "アルゴリズムの洞察: 効率的なアルゴリズムの謎" "モダン X86 アセンブリ言語プログラミング" "ゲームと科学のための GPU プログラミング"
ゲームエンジンゲームと科学のためのGPUプログラミング》《ベクトルゲーム用演算プロセッサ》《ゲーム開発ツール》《ゲーム開発ツールのユーザー体験設計
Computer Graphics and Rendering: Real-Time 3D Rendering with DirectX and HLSL, Computer Graphics, Principles and Practice of Computer Graphics: C Language Description, Principles of Digital Image Synthesis, Digital Image Processing, 3D Image Processing.デジタル画像合成の原理 3Dゲームプログラミングマスターテクニック リアルタイムシェーディングテクニック リアルタイムコンピュータグラフィックス リアルタイムボリュームグラフィックス レイトレーシングのアルゴリズムとテクニック 物理ベースレンダリング グラフィックスプログラミング法Direct3Dグラフィックシェーダーによる実践的なレンダリングと計算 OpenGLシェーディング言語 OpenGLインサイト 高度なグローバルイルミネーション 制作編レンダリング、テクスチャリングとモデリング、ポリゴンメッシュ処理、3Dグラフィックスの詳細レベル、バーチャルグローブのための3Dエンジン設計、非フォトリアリスティックレンダリング。
ゲームサウンド:「ゲームオーディオプログラミング」
ゲーム物理学とアニメーション:《コードネイティブアニメーション:《コードネイティブ:自然システムをシミュレートするプログラミング》《コンピュータアニメーション》《ゲーム開発物理学》《ゲームプログラマーのための物理モデリング》《物理ベースのアニメーション》《リアルタイムカメラ》《ゲームインバース・キネマティクス》《流体エンジン開発》《ゲーム物理の真珠》《蓮根流体アニメーションの極意》《コンピュータグラフィックスのための流体シミュレーションインタラクティブ3D環境における衝突検出》《リアルタイム衝突検出アルゴリズム技術》《ゲーム物理エンジン開発》
游戏人工智能:《ゲームのための人工知能》《游戏开发中的。ゲームのための人工知能》、《ゲーム人工知能プログラミング事例エッセンス》、《Unity人工知能ゲーム開発》、《ゲームAIのための行動数学》
マルチプレイヤーゲームプログラミング:《マルチプレイヤーゲームプログラミング》、《Massively
Multiplayer Game Programming: "マルチプレイヤーゲームプログラミング"、"Massively Multiplayer Game Development" "POSIX Multithreaded Programming" "Massive Online Game Development" "TCP/IP詳解 1-3巻"
工業生産と制作: アートパート スペースの都合上、Web3のこのパートは簡単に分析しました。ゲームの芸術の部分を簡単に分析する。Web3ゲームにおいて、アートは非常に重要な役割を果たします。特に3Aレベルでは、高レベルの3Aゲームはすべて芸術作品です。芸術表現という点で、ゲームスタジオは特殊効果、インタラクション、アニメーション、レンダリングなど、さまざまな方法でWeb3ゲームの芸術表現を向上させます。下の表は、Web3ゲームの芸術表現を多くのサブディレクションで示したものです。以下の表は、Web3ゲームの芸術的表現において考慮すべき多くのサブディレクションを示しています。ゲームのジャンル、ゲーム制作の時間枠、およびゲームのターゲットオーディエンスの違いにより、Web3ゲームスタジオは、ゲームの芸術的表現のバランスとトレードオフを考慮する必要があります。
Source: Shark Gaming Circle; collated by Jake Source: Shark Gaming Circle; collated by Jake 全体として、ゲームのアートスタイルは企画者が設定したテーマや背景に沿ったものである必要がありますが、アートパフォーマンスの評価や分析は比較的主観的なものであり、ゲームのアートパフォーマンスを分析・評価する8つの視点の例として、以下を挙げることができます:
キャラクターデザイン:キャラクターの外観、キャラクターのアニメーション、キャラクターの動き、キャラクターと環境の統合;
UI/UXデザイン:ユーザーインターフェースのデザイン、インターフェースとアートスタイルの一貫性、情報の提示;
アニメーションと特殊効果:ゲームの滑らかさと表現力、特殊効果の視覚的なインパクト、サウンドと視覚効果の統合;
環境デザイン:環境内のシーンの詳細と雰囲気、シーンオブジェクトの相互作用;
技術的な実装:現実的な物理レンダリング、画質とパフォーマンスのバランス、
芸術的な表現とゲームプレイ:ゲームの中核となる仕組み、背景、物語に対する芸術のサポート、
さらに、Web3のスキンは、ユーザーが最も消費して購入したがるゲームコンポーネントの1つです。ゲームコンポーネントの1つを消費し、購入する。消費財の観点から見ると、スキンやアクセサリー、特殊効果などの芸術的表現は、ユーザーを惹きつけて購入・消費させる核心的な原動力の一つです。追加アート製品を購入するゲームユーザーの心理は、次のような観点から分析することができます。
ゲーム内アセットの効用:ゲーム内NFTアセットは、Web3ゲームにおいて、以下のような追加効果をプレイヤーに与えることができます。
ゲーム内経済:Web3
ゲームでは、スキンに取引や交換の価値があり、ユーザーや裁定者はスキンを購入したり取引したりすることができます。 パーソナライゼーションと自己表現:スキンはキャラクターの外観をカスタマイズすることを可能にし、ユニークなスキンを選択することで、プレイヤーは自分の個性やスタイル、好みを表現することができます。
達成感やステータスを誇示する。
2024年第2四半期時点の統計分析によると、地域によってユーザー・プレイヤーのアートに対する好みが異なることがわかりました。アメリカでのカートゥーン、マンガ、リアリスティックの人気比率は51:5:44で、カートゥーンスタイルの人気はアメリカのアニメやカジュアルカテゴリーの人気によるものかもしれません。日本でのカートゥーン、マンガ、リアリスティックの人気比率は35:44:20で、「第二世代」の嗜好度は80%に達しています。
Source: open market information オーディオとサウンドの方向性について、ゲームスタジオが現在オーディオとサウンドのパフォーマンスを重視しているかどうかは、さまざまな要因によって異なります。十分な予算を持つ大規模なスタジオの場合、プロのオーディオ デザイナー、作曲家、サウンド エンジニアを雇ったり、ゲームの雰囲気や感情的な共鳴を高める没入感のあるオーディオ体験を作成するために高度なオーディオ技術や機器を使用するなど、高品質のオーディオとサウンド パフォーマンスを完成させるために多くのリソースを投資する能力と時間があります。しかし、予算が限られている小規模スタジオでは、オーディオやサウンドエフェクトのリソー スが比較的不十分な場合があります。資金やスタッフの制約から、小規模なスタジオでは既製のサウンドライブラリやシンプルなオーディオデザインツールに頼らざるを得ないこともあります。また、小規模なゲームスタジオの中には、オーディオやサウンドエフェクトのアウトソーシングを利用して仕事をこなすところもあります。その結果、オーディオとサウンドパフォーマンスの質は、大規模なスタジオほど良くないかもしれません。
同時に、オーディオはゲームのクオリティを向上させるために他の部署と協力します。 たとえば、オーディオとコピーライティングの場合、オーディオデザインにVO作業が含まれると、オーディオ部門はコピーライターと何度も連絡を取り、キャラクターの演技を開発するのを手伝ったり、セリフの分岐をどこに持っていくかを決めたり、さらには、コピーライターが書いたセリフを正しく伝えるために必要な発音を確認するために、VOの段階で声優を手伝ったりします。そして、コピーライターが書いたセリフがどのように正しく伝えられたかを確認する。音声とマップの編集、アニメーション、特殊効果の工程では、それぞれのアウトプットを連携させる必要があり、例えば、マップの中でキャラクターが移動する際には、草むらを通過するキャラクターの足音を設定し、マップ内の重要な小道具の特殊効果まで発動させる必要がある。その結果、複数の部署が協力する必要があり、作業の調整や、同じものが一緒に動作し、アウトプットが高品質であることを保証するために、互いのファイルへのアクセスを交渉するなど、多くのコミュニケーションが必要でした。
さらに、プロジェクトの規模とタイプは、オーディオとサウンドエフェクトの入力に影響を与えます。ビジュアルやプロットが中心のゲームでは、オーディオやサウンドエフェクトは、比較的入力が少なく、二次的な要素とみなされるかもしれません。雰囲気を高め、没入感を高めるためにサウンドエフェクトが必要なゲームでは、オーディオデザインの重要性は大幅に増します。
この記事は、Web3のゲーム分析シリーズの2回目であり、工業生産と制作(技術およびアート)に関するものです。
Web3のゲーム分析シリーズ(III)テストと運用の次の記事をお楽しみに。