物理シミュレーションに基づくゲーム開発(ゲームワールドの現実的な破壊可能性のため)

このゲームに関する最初の投稿では、克服しなければならない技術的な困難について話しました。 読んでいる2番目の投稿は読みやすくなっています。 ここでは、物理モデルを構築する方法全体をgifで説明し、各ステップについて簡単に説明します。



Unityでの新しいプロジェクトの作成から、Steamでのベータ版の公開までに10か月が経過しました。 時間の90%は、物理モデルの作成、最適化、舐めに費やされ、残りはゲームプレイに費やされました。



目標は、完全に物理的な世界を作成することでした。 しかし、Red Factionで実装されたアプローチは面倒であり、現実的ではありませんでした。 そのゲームでは、爆発メッシュが細かく砕かれ、物理的なコライダーによって引っ張られました。 妥協や多くの特別な破壊に苦しむことなく、すべてのケースで機能するシンプルなシステムを作成することにしました。



地球、建物、プレイヤーの戦車、敵、シェル、ボーナスなど、相互作用する粒子からすべてを成し遂げました-それだけです。 並列計算の場合、プロセッサよりも生産性が50〜100倍高いため、ビデオカード上のパーティクル間の相互作用を実装しました。



粒子から得られた物質は、最初は奇妙に見え、液体または気体に似ていました。



画像



そして、ゲームには、形を保つことができる強力な何かが必要でした。 粒子を相互作用させるさまざまな方法を試したところ、レナード・ジョーンズの力が最も耐久性のある物質を与えることがわかりました。 セモリナのおridgeのようなものになりました。 実験のために、マウスのクリックで爆発を追加しました。



画像



粒子にはすでに温度があり、物質は爆発の熱で溶けて特性が変化します。 物質自体が体積を保持し、粒子は六角形の格子を形成する傾向があります。 (レナードジョーンズ力に加えて)粘性の割合が小さいと、物質の安定性が向上します。



これが安定性の問題です。 モデルの離散性は、粒子間の相互作用力の大きさを制限します。高速では、反発力の最も急な(12度)成長曲線を無視して、粒子が1ステップで近づきすぎる可能性があるためです。 これは、彼らに途方もない加速を与え、新しい不自然な和解をさらに可能にします。 エネルギー保存の法則に違反し、問題が爆発します。 また、粘性によりこの効果を弱めることができます。



問題が多かれ少なかれうまく動作し始めたとき、私は粒子からタンクを収集し、それを制御しました:計算の各ステップで、プレーヤーによって押されたキーのデータがビデオメモリに転送され、これらのデータはホイールの回転と銃の傾きを制御するために使用されます:



画像



物理的に現実的な世界との交流は刺激的で、私は刺激を受けました。 ゲームは私が望んだ方向に正確に開発されました。



次に、写真からレベルを構築するためのモジュールを追加しました。ピクセルが読み取られ、その場所に物理的な粒子が作成されました。 さらに、物質は「黒焦げ」であり、高温に長時間さらされると黒くなる。



この段階で、物理モデルの不完全さが明らかになりました。 石柱はゼリーのように振る舞いました:



画像



不安定になるリスクなしに、パフォーマンスを犠牲にし、サンプリングステップを減らし、それによって粒子間の相互作用の力を増やす必要がありました。 物質の耐久性が向上し、石、金属、雪、砂、土、氷、ゼリーなど、いくつかの異なる物理的材料を作成しました。 それぞれの材料は他のものとわずかに異なり、砂はゆるく、石は強く、金属は強くて柔軟で、ゼリーは柔軟で脆いものでした。 木は燃えて灰に変わり、氷は耐久性がありますが、簡単に溶けます。



次に、同じパーティクルからいくつかのタイプの空飛ぶ円盤を作成し、同じ場所で、ビデオカードで実行されるシェーダーコードで、敵の制御システムを作成しました。 彼らはよく狙い、お互いをかわし、異なる戦闘戦術を使用します。



従来の意味でのコンピューターゲームと非常によく似ています。



画像



このgifでは、新しいエンティティ(パーティクル間の距離を設定する一種のボーン)を使用したことがわかります。 それらは筋肉でもあります。なぜなら、それらは剛性特性と時間とともに変化する長さを持っているからです。 そのため、高層ビルを強化し、レベルで移動可能なプラットフォームを作成することが可能になりました。



さらに、さまざまな破壊兵器を記述できるユニバーサルな兵器記述システムを作成しました。これにより、いくつかの統一された効果を他のものに単純に結び付け、一連のイベントを作成しました。 機関銃、火炎放射器、飛行中にイライラするミサイル、熱核爆発のマルチビーム太陽、雷のファン、愛の銃、そして大量の物質の修正がありました。



また、ボタンイベントの原則に従ってカートリッジを拾ったり、戦車を強化したり、レベルに影響を与えたりできるように、ボーナスも作成しました。 たとえば、ここでは、プレーヤーがキーを拾ったときに何が起こるかを確認できます。



画像



また、インターフェースが戦車キャラクターの健康状態やその他の特徴、利用可能な武器のリストと類似していることに気付くことができます。



ゲームは公開できます。Steamでさまざまなフォームに記入し、検証の結果を待って、ページを設計し、トレーラーとスクリーンショットを作成しました。



準備ができたときにredditでgifを公開したため、Greenlightはその時までに過ぎませんでした。



最後に、ゲームは早期アクセスで登場しました。ここに予告編があります。







(音楽-ビクターアルゴノフ「2032」のテクノオペラ。意味はあまりふさわしくありませんが、刺激的です)。



開発経験をまとめると、実験では物理学をゲームプレイに深く浸透させることは技術的に実現可能であることが示されましたが、ゲームプレイにとって最大の利点となるように物理学を使用する方法はまだ明確ではありません。 物理的な世界からどのようなユニークなゲーム機能がもたらされるのかを理解する必要があります。 現在、私はシングルプレイヤーキャンペーンに取り組んでいます。このキャンペーンでは、レミングとプラットフォームシューターの一種のハイブリッドを作成して、世界とのやり取りの通常とは異なる方法を使用しようとしています。 レミングでは、多くのことを掘り、吹き飛ばし、構築する必要があり、射手では-射撃する必要がありました。 それでは、私ができるハイブリッドを見てみましょう。 プレイヤーがあなたに伝えることを願っています。 現時点では、公開されているゲームでは、ゲームScorched Earthを模倣したバトルモードのみが使用可能です。



この出版物の目的は、この実験の結果を他の開発者と共有することです。 おそらく誰かがゲームに興味を持ち、物理学により多くのスペースを割り当てたいと思うでしょう。 コメントでは、おそらくSteamのページについて尋ねられるので、すぐにそれを示します。



All Articles