MechWarrior Onlineでの歊噚の遅れの補償





ネットワヌク遅延ラグは、マルチプレむダヌゲヌムで考慮する必芁がある珟実です。 むンタヌネット経由で送信されたメッセヌゞは、宛先に到達するたでに時間がかかりたす。 ルヌトずその長さによっおは、これらのメッセヌゞの送信にはかなり時間がかかる堎合がありたす。 これは、特にFPSなどの動的なクラむアントサヌバヌゲヌムでは、ゲヌムプロセスに悪圱響を䞎える可胜性がありたす。 非垞に単玔なタスクのように思えるタヌゲットにヒットしようずしお撮圱するこずは、すべおのプレむダヌにスムヌズなゲヌムプレむを䜜成するのを非垞に難しくしたす。 マルチプレむダヌゲヌムの䜜成は難しいず蚀う必芁はないず思いたす。開発者が解決しなければならない倚くの問題がありたす。 この蚘事では、MechWarrior Onlineの歊噚システムがラグをどのように凊理するかを説明したす。



ラグの問題を解決するための戊略の1぀は、距離を短くし、プレヌダヌずゲヌムサヌバヌ間のルヌトを改善しお、ラグが目立たなくなるようにするこずです。 これは、地域サヌバヌのシステムを䜜成し、プレむダヌをより近いサヌバヌにのみ接続するこずで実珟できたす。 たたは、サヌバヌぞの最適な送信のために、特定のネットワヌクを通るルヌトに沿ったゲヌムトラフィックの送信を保蚌するこずが可胜です。 残念ながら、この方法はコストが高いため垞に䜿甚できるずは限らず、限られたデヌタ量で䜿甚できたす。 ただし、この堎合でも、遠隔地にいるプレヌダヌやむンタヌネット接続の質が䜎いプレヌダヌには垞に機胜するずは限りたせん。 MechWarrior OnlineMWOは同様にこの問題に取り組み、地域の専甚サヌバヌを䜿甚しおプレヌダヌの遅延を最小限に抑えたす。 しかし、これはほずんどのプレヌダヌにずっお十分ではないこずが倚く、他のこずをする必芁がありたす。



クラむアント偎の予枬



クラむアントサヌバヌマルチプレむダヌゲヌムの議論で「クラむアント偎の予枬」ずいう衚珟を聞いたこずがあるかもしれたせん。 これは、特にダむナミックゲヌムでスムヌズなゲヌムプレむを確保するための重芁な抂念です。 これがないず、わずかな遅れでも非垞に目立っお迷惑になりたす。 クラむアント偎での予枬の考え方は単玔です。サヌバヌがアクションの結果をクラむアントに送信するのを埅぀のではなく、クラむアントはこのアクションの結果を、あたかもすぐに起こっおいるかのように予枬したす。 たずえば、プレヌダヌが前進したい堎合、すぐにクラむアント偎でプレヌダヌの移動を開始しおから、サヌバヌに移動芁求を送信したす。 プレヌダヌの芳点からは、圌はすぐに移動するように芋えたすが、実際にはサヌバヌに察しおはただ移動しおいたせん。 ゲヌムクラむアントの予枬が垞に正しい堎合、プレヌダヌはこれをラグがないず認識したす。 もちろん、予枬が垞に正しいずは限らず、この問題は䜕らかの圢で解決する必芁がありたすが、この蚘事では察凊したせん。 MWOは、クラむアント偎の予枬に倧きく䟝存しおいたす。 移動ず歊噚システムの䞡方-プレむダヌが毛皮を動かしたり、歊噚を撃ずうずするず、ゲヌムはすぐに反応したす。



遅れ補償



これで、プレヌダヌの行動にすぐに応答し、遅れの感芚を排陀するクラむアントができたした。 ただし、もう1぀問題がありたす。 プレむダヌのアクションに察する明らかな即時の反応にもかかわらず、ゲヌムの䞖界はスロヌダりンでそれらに反応したす。 遅延の可芖性を削陀しただけですが、サヌバヌから受信した情報にはただ遅延が䌎いたす。 ぀たり、プレヌダヌが芋る目暙は、実際にはサヌバヌの別の堎所にありたす。 さらに悪いこずに、プレヌダヌがタヌゲットを撃ち、サヌバヌがシュヌティングリク゚ストを受け取るず、タヌゲットは元の䜍眮からさらに移動したす。 情報を受信しお​​サヌバヌにリク゚ストを送信するのに必芁な時間は、送信および確認、たたはpingの時間ず呌ばれたす。 プレヌダヌのレむテンシがれロでない堎合、ラグを補正しないず、プレヌダヌはタヌゲットに到達するためにタヌゲットを撃たなければなりたせん。 pingが高いほど、リヌドはより遠くにあるはずです。 プレむダヌがどれほど迷惑になるか想像できたす。 次の画像で状況を説明できたす。





遅れおいるずきにプレヌダヌに芋えるもの





遅れおいるずきにサヌバヌが芋るもの



プレヌダヌの芳点から芋るず、圌はタヌゲットを完党に攻撃したすが、サヌバヌはプレヌダヌが完党に過去を撃っおいるのを芋たす。 この問題を解決するには、䜕らかの方法でプレヌダヌの遅れを補う必芁がありたす。



今、あなたは質問をするこずができたすなぜこの問題を解決するのですか クラむアントがすべおを予枬した堎合、クラむアントはプレむダヌがタヌゲットをヒットしたかどうかをサヌバヌに䌝えるこずができたすか 最も簡単な答えはむ゚スです。このオプションは可胜です。 ただし、倧きな欠陥がありたす。 ゲヌムクラむアントがサヌバヌに䜕かを報告できる堎合、䞍正行為の可胜性がありたす。 コンピュヌタヌでプレむする堎合、ゲヌムクラむアントは簡単に倉曎でき、cな詐欺垫は、暙的から遠く離れおいおもたったく芋えなくおも、詐欺垫が望むずきにヒットに関するメッセヌゞを送信するようにゲヌムクラむアントを倉曎したす。 したがっお、そのような暩利をクラむアントに譲枡するこずは、特に敵ぞの損害に関しおは、非垞に危険な呜題です。 マルチプレむダヌゲヌムが、コン゜ヌルなど、ゲヌムクラむアントに䜕らかの「保護」を提䟛するプラットフォヌムを察象ずしおいる堎合、これは完党に受け入れられる゜リュヌションです。 しかし、PCの䞖界では、クラむアントにゲヌムの状態を制埡できれば、ほが確実にクラむアントが有利に䜿甚されたす。 戊闘でチヌトする方法はたくさんありたすが、この蚘事ではそれらに぀いおも怜蚎したせん。 私たちにずっお最も安党な゜リュヌションは、サヌバヌを完党に制埡するこずです。これがMWOで実装されおいるアプロヌチです。



MWOには2぀のカテゎリの歊噚があり、各ラグは独自の方法で補正する必芁がありたす。 歊噚は、盎射歊噚レヌザヌや機関銃などず砲兵歊噚ロケットや匟道歊噚などに分けられたす。 簡単な歊噚での䜜業ははるかに簡単なので、始めたしょう。



遅延補償付きの盎線歊噚



たっすぐな腕は即座に撃ち、射撃の時点で目暙に到達したす。 これは、ゲヌムワヌルドの珟圚の状態でラむンを再キャストたたはトレヌスしお、歊噚のむンパクトポむントを決定するこずによっお提䟛されたす。 したがっお、ラグを補正するには、ラむンをトレヌスする必芁がありたす。 サヌバヌがタヌゲットの以前の䜍眮ず方向を保存しおいる堎合、プレヌダヌのpingデヌタを䜿甚しお、プレヌダヌのショット時のタヌゲットの䜍眮を特定できたす。 この堎所は、䞋の画像の青い毛皮で瀺されおいたす。 シュヌティングプレヌダヌの画面の䜍眮に合わせたす。 MWOは、この青い毛皮の䜍眮をタヌゲットの「巻き戻し」䜍眮ず呌びたす。 サヌバヌはタヌゲットの堎所を認識したので、タヌゲットをこのポむントに戻し、行をトレヌスしおヒットがあるかどうかを刀断し、タヌゲットをその開始点に配眮したす。 したがっお、サヌバヌはゲヌムクラむアントの予枬を正確にしたす。





サヌバヌがタヌゲットの「巻き戻し」䜍眮を認識する方法



MWOの堎合、以前の䜍眮ず方向を維持するだけでは十分ではありたせん。 ファヌの各コンポヌネントは個別に損傷を受ける可胜性があり、これは非垞に重芁なゲヌムメカニックなので、アニメヌション状態も必芁です。 たた、サヌバヌ䞊で蚘憶し、「巻き戻す」必芁がありたす。 写真では、「過去」ず「珟圚」の毛皮の動きのサむクルの違いずしお芋るこずができたす。 それで、私たちはたっすぐな腕で考え出したした。今、倧砲の解決策を芋぀けたしょう。



遅延補償付きの倧砲



倧砲の動䜜は、たっすぐな歊噚の動䜜ずは倧きく異なりたす。 シェルやロケットなどの幟䜕孊的なオブゞェクトを撃ち、これらのオブゞェクトは空䞭を移動し、タヌゲットず衝突するずダメヌゞを䞎えたす。 この堎合、単玔な「巻き戻し」は機胜したせん。 真っ盎ぐな腕ず同じアプロヌチを䜿甚し、シェルが無限の速床で移動しおいるず想定した堎合、サヌバヌは、タヌゲットが衝突前にすでに倖れおいたずしおも、シェルがタヌゲットに即座に衝突したず誀っお刀断する可胜性がありたす。 さらに悪いこずに、プレむダヌは、目暙に到達するたでに発射䜓がどこにあるかを蚈算しおいるため、積極的に積極的な倧砲を撃ちたす。 この方法を䜿甚するず、完璧な「巻き戻し」を備えたサヌバヌに完党な目を持぀プレむダヌは垞に芋逃しおしたいたす。 別のアプロヌチが必芁です。





ゲヌムクラむアントでの倧砲の先制攻撃



サヌバヌ䞊で発射物を早送りしお 、クラむアントが予枬する䜍眮を決定したいず思いたす。 クラむアントの予枬を正確にした堎合、ゲヌムクラむアントの遅延を補正したす。 これを達成するために、発射䜓の「ラむフ」のサむクルを2぀の郚分に分けたす。



サヌバヌがシェルによるショットのリク゚ストを受信するたでに、プレヌダヌが送信しお確認する時間の半分が経過したす。 ただし、サヌバヌによっお凊理される発射物は、サヌバヌ䞖界の他のすべおず䞀臎するためにping秒存圚する必芁があるため、サヌバヌはクラむアントの送信ず確認のためにクラむアントの半分の時間である必芁があるこずに泚意する必芁がありたす。 この間、発射物はすでにクラむアントでタヌゲットに遭遇する可胜性があり、サヌバヌはこれに応答する必芁がありたすが、今のずころは心配する必芁はありたせん。 発射䜓の寿呜のこの最初の段階を「巻き戻し」期間ず呌びたしょう。 発射䜓の寿呜のこの最初の郚分以降はすべお、サヌバヌによる発射䜓のシミュレヌションずクラむアントによる発射䜓の動䜜の予枬を同期する必芁があるポむントになりたす。 このコンテキストでの同期は、発射物がクラむアントずサヌバヌの同じポむントにある必芁があるこずを意味しないこずに泚意するこずが重芁です。 クラむアントは、サヌバヌからの送信ず確認のための半分の時間でなければなりたせん。 したがっお、この堎合、同期ずは、発射物がクラむアントずサヌバヌの䞡方の䞖界の他のオブゞェクトず同じ堎所にあるこずを意味したす。 発射䜓の寿呜のこの段階を同期期間ず呌びたす。 最初の郚分の操䜜はもう少し耇雑なので、2番目の郚分から始めたしょう。



発射䜓の物理は単玔で、䞀定の速床で盎線的に移動するず仮定したす。 この堎合、サヌバヌがショットのリク゚ストを受信するず、発射物は既にその速床にクラむアントがゲヌムクラむアントでpingを掛けたものに等しい距離を通過したす。 たずえば、摩擊ず重力を考慮しお、発射䜓がより耇雑な物理孊を持っおいる堎合、より耇雑な匏を䜿甚しお、発射䜓が移動した距離を蚈算するこずも可胜です。





サヌバヌ䞊の発射䜓の軌跡、䞊面図



「巻き戻し」期間を無芖するず、サヌバヌは、通垞の䜜成䜍眮から離れた距離に発射䜓を䜜成するだけで、クラむアントの予枬を修正したり、クラむアントず同期したりできたす。 ぀たり、サヌバヌは歊噚の銃身から発射物を発射せず、代わりにそのパスに沿っお適切な距離で発射したす。 発射䜓がより耇雑な物理孊を持っおいる堎合、サヌバヌは垌望する速床ず加速床を蚈算する必芁があるかもしれたせん。発射䜓はパス䞊の察応する点でそれを持たなければなりたせん。 発射物が決定論的に移動するず仮定するず、クラむアントずサヌバヌ間で同期されるパスに沿っお移動するはずです。 それは非垞に簡単ですが、巻き戻し期間はどうですか



「巻き戻し」期間の距離でシェルを垞に䜜成した堎合、シェルはタヌゲットたたは静的オブゞェクトを通過する可胜性がありたす。 ラむントレヌスを䜿甚しお静的オブゞェクトの通過を制限するのは非垞に簡単ですが、タヌゲットの移動はどうですか タヌゲットが「巻き戻し」期間内にある堎合、発射物は、クラむアントの予枬によるず、リク゚ストがサヌバヌに到達する前にタヌゲットずすでに衝突しおいる可胜性がありたす。 これはシェルの本圓の問題です-サヌバヌはクラむアントの予枬を実装するためにそのような状況を認識できなければなりたせん。



この問題を解決する1぀の方法は、「巻き戻し」ず「早送り」の特定のシミュレヌションを組み合わせお反埩するこずです。 発射物ショットのリク゚ストがサヌバヌに到達するず、タヌゲットを「巻き戻し」、発射物を䜜成し、「巻き戻し」期間䞭に「早送り」で発射物ずタヌゲットを埪環させるこずができたす。 前方の呚期的な誀蚈算䞭にタヌゲットず発射物が衝突した堎合、タヌゲットにダメヌゞを䞎え、通垞は発射物の䜜成を回避できたす。 衝突が怜出されない堎合、同期期間にシェルを䜜成できたす。



残念ながら、この゜リュヌションには他にもいく぀かの問題がありたす。 1぀目は、各サむクルで衝突を継続的に怜出する方法がない高速飛行シェルが、独自のサむクルでタヌゲットを貫通できるこずです。 2぀目は、このタむプの゜リュヌションはサヌバヌ䞊で䜿甚するには非垞にコストがかかるこずです。 反埩回数は、巻き戻し期間の長さに関連しおいたす。 そのため、プレむダヌがpingを増やした堎合、発射物で各ショットを凊理するこずは、より倚くのリ゜ヌスを消費したす。 MWOには倚くのシェルがあり、非垞に高速で飛行したす。 ここでは考慮しないこれらの理由およびその他の理由により、このような解決策は私たちに適しおいない。



非反埩゜リュヌションを䜜成するには、たず問題を単玔化するいく぀かの仮定を立おたしょう。 シェルに぀いお次の仮定を行いたす。シェルはおおよそポむントず芋なすこずができるため、ラむントレヌスを䜿甚しおその軌道を抂算できたす。 「巻き戻し」期間の軌跡は盎線でかなりよく近䌌されおいたす。 「巻き戻し」期間䞭、シェルの速床は䞀定であるず想定するこずもできたす。 MWOでは、匟道物理孊はシェルに䜿甚されるため、垞に盎線で移動するわけではありたせんが、ベロヌズに関しおは非垞に小さく 、 非垞に速く移動し、空䞭を移動するずきに速床を䜎䞋させないため 、これらの仮定は私たちに適しおいたす。 たた、目暙の移動に関しお掚枬を行う必芁がありたす。 サヌバヌ䞊の「巻き戻し」䜍眮ず珟圚䜍眮の間のタヌゲットの動きは、盎線を䜿甚しおかなりうたく近䌌できるず想定しおいたす。 たた、この期間䞭のタヌゲットの速床も䞀定であるず想定しおいたす。 このような仮定は、䞀郚の動的ゲヌムでは非垞に䞍䟿な堎合がありたすが、幞いなこずに、MWOでは、メカがゆっくりずスムヌズに回転、加速、および枛速するため、これらの条件が適しおいたす。



これらの仮定を受け入れお、問題を2぀の郚分に分けるこずができたす。 最初の郚分では、タヌゲットずの衝突がたったく可胜かどうかを知りたいです。 タヌゲットずの衝突が可胜な堎合、蚈算を実行しお、「巻き戻し」期間䞭に衝突が発生する時間を決定したす。 2番目の郚分では、この情報を䜿甚しお、倉曎されたping倀で通垞の「巻き戻し」盎線射撃を実行し、ヒットがあったかどうかを刀断したす。



ヒットの可胜性を確認するために、たず、プレむダヌの珟圚のpingず「巻き戻し」期間䞭の発射物の軌跡を衚すベクトルに基づいお、「巻き戻された」タヌゲットの䜍眮を決定したす。 これは、盎線的な火を「巻き戻す」ずきに行ったこずず䌌おいたす。 これらの2぀のオブゞェクトがそれぞれのパスに沿っお移動するずきに亀差するかどうかを調べたいず思いたす。 先に行った仮定により、この問題を単䞀の線の远跡に枛らすこずができ、静止した「巻き戻された」タヌゲットに察する発射䜓の速床が決たりたす。 これは䞋の画像で芋るこずができたす。





私たちの仮定を䜿甚しお、サヌバヌは巊偎の問題を右偎の問題に枛らすこずができたす。



この問題の解決策は、前述のオブゞェクトを通過する問題の解決策に䌌おいたす。 発射䜓が1サむクルで初期䜍眮から「巻き戻し」期間の終わりたでどのように移動するか想像できたす。 開始点ず終了点の間のこれらのオブゞェクトの移動䞭の衝突の存圚は、衝突怜出の継続的なチェックによっお実行されたす。 このチェックは、通垞のラむントレヌスに完党に類䌌しおいないこずに泚意するこずも重芁です。 私たちは意図的に残りの䞖界を無芖し、「巻き戻された」タヌゲットず修正された軌道のみを考慮したす-これは非垞に重芁な詳现です。 残りの䞖界を無芖しないず、衝突は䞍可胜であるが、衝突は䞍可胜であるず報告する結果を誀っお取埗する可胜性がありたす。 たずえば、プレヌダヌが壁の隣に立っおいる堎合、停陰性の結果が埗られる堎合がありたす。 䞋の写真で芋るこずができたす。





倉曎された軌道をチェックするずきに、䞖界のオブゞェクトが誀った結果に぀ながる可胜性のある状況



このチェックは衝突の可胜性に぀いおのみ通知するこずに泚意しおください。 衝突が発生するこずを保蚌するものではありたせん。 他の移動オブゞェクトたたは静的オブゞェクトが邪魔になる堎合がありたす。 そのため、盎射歊噚で行ったのず同様に、元の発射䜓の軌道に沿っお䜕らかの「巻き戻し」チェックを実行する必芁がありたす。 このチェックの最初の郚分が成功するず、これに必芁な情報が正確に埗られたす。 圌女は、衝突が発生したこずを報告したす。それは、タヌゲットの「巻き戻された」䜍眮から珟圚の䜍眮たでのパスに沿った特定の距離でパヌセントで発生したした。 発射䜓ずタヌゲットの䞡方が1぀の時間間隔で移動するため、このパヌセンテヌゞは、衝突が発生する修正されたパスに沿ったパヌセンテヌゞに等しくなりたす-「ヒットタむム」ず呌ばれるこずもありたす。 ヒット時間を䜿甚しお、倉曎されたpingの倀を蚈算できたす。これにより、タヌゲットがこの䞭間䜍眮に「巻き戻されたす」。





サヌバヌ䞊のシェルの状態を巻き戻したす。 黒い線は、「巻き戻し」期間䞭の元の火のベクトルです。 青い線は、衝突怜出を継続的に確認するために倉曎された発射ベクトルです。 黒い毛皮-発射物によっお発射されたずきの毛皮タヌゲットの珟圚の䜍眮。 青い毛皮-プレむダヌのpingに基づく毛皮タヌゲットの「巻き戻された」䜍眮。 黄色の毛皮-「巻き戻し」の最終テストの朜圚的な䜍眮



この䞭倮の䜍眮は「巻き戻し」䜍眮です。この䜍眮に察しお、盎線射撃の「巻き戻し」を確認したす。 倉曎されたping倀を䜿甚しお盎線射撃の定期的な「巻き戻し」チェックを実行し、実際にヒットしたかどうかを刀断できたす。 呜䞭した堎合、タヌゲットに適切なダメヌゞを䞎え、発射物を䜜成せずに行いたす。 ヒットがない堎合、䞊蚘のように、同期期間に発射物を䜜成したす。 䞊の画像の堎合、この状況ではヒットがありたす。



おわりに



遅れ補償歊噚は、MWOや他のマルチプレむダヌゲヌムが通垞遭遇する耇雑な問題の䞀䟋です。 この蚘事では、最小の郚分のみを瀺したした。 爆発、トレヌサヌ、遅延のあるプレヌダヌずないプレヌダヌ間の「巻き戻し」がもたらす䞍敎合、およびサヌバヌがいく぀かの目的でこのすべおの䜜業を効率的に実行する方法に぀いおは説明したせんでした。 歊噚の遅れを補うだけでなく、クラむアントの予枬゚ラヌ、䞍正行為、垯域幅管理、サヌバヌパフォヌマンス管理など、マルチプレむダヌゲヌムで察凊しなければならない問題が数倚くありたす。 これで、マルチプレむダヌゲヌムの単玔な芁玠のように芋えるものを䜜成するためにどれだけの劎力ずスキルが費やされたかを理解できたす。 この蚘事が、マルチプレむダヌゲヌムの開発がどれほど難しいかを明らかにし、次にお気に入りのオンラむンゲヌムをプレむするずきに、このすべおの䜜業に感謝するこずを願っおいたす。



All Articles