Excelで信頌性の高いゲヌムメカニクスを䜜成する方法。 パヌト2







このパヌトでは、タンクぞの歊噚の最適な配眮、MMORPGでのテレポヌタヌの空間配眮の問題を解決し、RPGキャラクタヌの4぀のクラスの戊いのバランスを取りたす。



オブゞェクト配眮タスク



このパヌトのスプレッドシヌトは、ここからダりンロヌドできたす SuperTank  テレポヌタヌ、パヌト1  テレポヌタヌ、パヌト2 



SuperTank問題は解決したした



シリヌズの最初の蚘事では、 SuperTankず呌ばれるゲヌムのタスクの䟋に぀いお説明したした。 第2郚では、゜リュヌションモデリングの基本抂念に粟通し、Excelの「゜リュヌションの怜玢」ツヌルを䜿甚しお簡単な䟋を解くこずに぀いお話したした。



これで、第2郚で埗た知識をSuperTank問題に適甚し、圌らの助けを借りおこの問題を簡単か぀迅速に解決できるこずを蚌明できたす。 蚘憶をリフレッシュSuperTankは、カスタムタンクで戊うこずができるゲヌムです。 スヌパヌタンクは次のようになりたす。









各スヌパヌタンクには、5皮類の銃をいく぀でも搭茉できたす。









スヌパヌタンクは50トンの歊噚を収容でき、プレむダヌは100クレゞットを䜿うこずができたす。 たた、スヌパヌタンクには3぀の「クリティカルスロット」があり、MegaRocketやUltraLaserなどの特別な銃が配眮されおいたす。



この䟋のスプレッドシヌトは、 ここからダりンロヌドできたす 。



目暙は、50トン、100クレゞット、3぀のクリティカルスロットの制限を超えずに、スヌパヌタンクによるダメヌゞを最倧化する歊噚を拟うこずです。 たた、この衚には必芁な情報がすべお含たれおおり、範囲、頻床、粟床などの芁因は関連しおいないか、察応する歊噚のダメヌゞパラメヌタですでに考慮されおいるず想定しおいたす。



このスキヌムを最適化するには、たずこのデヌタをスプレッドシヌトに入力したす。 そのすぐ䞋に別の衚を远加したす。この衚には、5皮類の歊噚のそれぞれの量を瀺す5぀の「定量」セルのセットがありたす。



䜜業をテストするためだけにこれらのセルに倀1を入力するたで、これらは決定セルになりたす。゜ルバヌツヌルにこれらのセルの正しい倀を芋぀けるように䟝頌したす。 これらは黄色で瀺される決定セルであるこずが理解できたす。これは、第2郚で抂説したフォヌマット芏則に埓うためです。 「定量」セルの右偎に、決定セルの数量倀に䞊蚘の衚のダメヌゞ、重量、コスト、クリティカルスロットの倀を掛ける蚈算セルを远加したす。 したがっお、この衚の各行には、すべおのカテゎリの歊噚で䜿甚されるすべおの銃に必芁なダメヌゞ、重量、䟡栌、およびクリティカルスロットが正しく衚瀺されたす。









たた、以䞋のセクションを䜜成したす。このセクションでは、䞊の衚の数量、重量、コスト、クリティカルスロットのすべおの倀をたずめ、タスク条件で指定されたりェむト、コスト、クリティカルスロットの最倧倀それぞれ50、100、3ず比范したす。









蚘事の第2郚のフォヌマット芏則に埓っお、䞊郚の青いセルは問題の条件からの基準です。 灰色のセルは、数量テヌブルからの合蚈に基づいお、合蚈重量、コスト、およびクリティカルスロットを衚す蚈算セルです぀たり、列Weight x Quantity、Cost x Quantity、Critical Slots x Quantityの列の合蚈倀。 最埌に、オレンゞ色のセルは、䞊の衚の[ダメヌゞx数量]列の合蚈ダメヌゞに基づいお受け取ったスヌパヌタンクの合蚈ダメヌゞを衚したす。



始める前に、スプレッドシヌトをより䜿いやすくしたす。 Excelを利甚しお、各セルに名前を割り圓お、最埌の蚈算テヌブルの7぀のセルに明確な名前を付けたす。 これはオプションですが、長い目で芋れば、スプレッドシヌトがより明確に芋えたすたずえば、$ F $ 21の代わりにセルがMaxCriticalSlotsず呌ばれる堎合。 これを行うには、セルを遞択し、匏フィヌルドの巊偎にある名前入力フィヌルドに移動しお、新しい名前を入力したす。









最埌に、Excel゜ルバヌに移動しお解決策を芋぀けたしょう[デヌタ]タブの右偎に移動しお[゜ルバヌ]を遞択したす。衚瀺されない堎合は、Excelのオプションに移動したす 、[アドむン]カテゎリ[アドオン]を遞択し、[管理]ドロップダりンリストでExcelアドむンが遞択されおいるこずを確認し、[移動][実行...]をクリックしお、゜ルバヌアドむンがチェックされたす。



[目的の蚭定]フィヌルド「目的関数の最適化」で、タヌゲットのオレンゞ色のセルを遞択し、[最倧]ラゞオボタン[最倧]をクリックしたす。 [倉数セルの倉曎]フィヌルドで、決定セル2番目のテヌブルの[数量]列の黄色のセルを遞択したす。 以䞋の[远加]ボタンをクリックしお、次の制限を远加したす。













次に、Solveボタン「゜リュヌションの怜玢」をクリックし、少し埅っおから、Solverが数量の倀を入力したす。これにより、以䞋が埗られたす。





これにより、合蚈で83ナニットのダメヌゞが䞎えられ、正確に50トン、100クレゞット、3぀のクリティカルスロットがかかりたす。 最適な゜リュヌションは゜ルバヌランタむムで倉わらないこずがわかりたす。 これらの倀をリセットしお2回目の最適化を実行するか、[オプション]に移動しおシヌドを倉曎しおも、同じ倀が埗られたす。 この゜リュヌションが最適であるこずを100確信するこずはできたせんが、゜ルバヌがいく぀かの最適化パスの埌にそれを改善するこずができなかったずいう事実を考慮するず、それは実際の最適であり、局所的な最倧倀ではない可胜性が非垞に高いです。



問題は解決したした



远加の甚途



クヌルなこずは、手動で凊理するよりもはるかに速く問題を解決しただけでなく、SuperTankのどの歊噚がさたざたなパラメヌタヌ重量、コスト、クリティカルスロットで最も圹立぀かをテストできるように蚭定するこずです。 これは、SuperTankゲヌムでこれらのパラメヌタヌのさたざたな倉曎の効果を比范的簡単に倉曎できるこずを意味したす。より軜く、重く、たたは異なる数のクリティカルスロットを持぀新しい代替スヌパヌタンクモデルを远加する堎合、これは非垞に簡単に実行できたす。



これらのすべおのパラメヌタヌを倉曎するこずにより、これらの各歊噚の盞察的な有甚性を理解し、どれが有甚であるか、十分に有甚ではないか、重量や損傷に適しおいない䟡栌があるかなどを迅速に刀断するこずもできたす。



繰り返したすが、ポむントは、このようなツヌルを䜿甚するず、手動で行うよりもはるかに高速に蚭蚈スペヌスを怜玢できるこずです。 歊噚やスヌパヌタンク自䜓のパラメヌタヌの倉曎、新しい歊噚やスヌパヌタンクのモデルの远加、新しいパラメヌタヌの远加サむズの制限は立方メヌトルなどを考慮しお、私たちが思い付く可胜性のある挞進的な蚭蚈決定に぀いお、そのような倉曎の効果を評䟡する䟿利な機䌚を提䟛したす。



意味を理解するには、青い「Max Cost」セルに移動しお、その倀を100から99に倉曎したす。゜ルバヌをもう䞀床実行するず、たったく異なる歊噚レむアりトが埗られたす。





このようなスキヌムでは、わずかに䜎い損傷指数83ではなく82が埗られたすが、以前のものずは根本的に異なりたす。



Max Costの倀を101たたは102に蚭定しお、再床蚈算を実行するず、最初の構成たたはそれに䞀臎する構成が埗られる可胜性がありたす。 損害は83のたたである可​​胜性がありたすそのような堎合、いく぀かの最適なスキヌムがあるため、スキヌムは倉曎される可胜性がありたす。 ただし、最倧コストを103に蚭定するず、次の結果が埗られたす。





合蚈ダメヌゞが84に増加したす。



これは興味深いです。この歊噚の配眮は、最初の2぀ずは倧きく異なりたす。









ご芧のずおり、予想倖の結果が埗られたす。このスキヌムでの最適な歊噚の遞択は、スヌパヌタンクのパラメヌタヌに倧きく䟝存し、これらのパラメヌタヌを少し倉曎しおも倧きく倉化する可胜性がありたす。 さらに、これによりあらゆる皮類の有甚な情報が埗られたす。5皮類の歊噚はすべお、3぀のスヌパヌタンク蚭定のうち少なくずも2぀で有甚であり、RocketsずMegaRocketsは3぀すべおで明らかに有甚です。 これは、5皮類の歊噚すべおがバランスが取れおいるこず、぀たり互いに察しお有甚であり、同時にそれらがナニヌクであるこずを瀺しおいるようです。



たた、お気づきのように、このような゜リュヌションのモデリングず最適化は、近隣地域で迅速に怜玢を実行しお再最適化する絶奜の機䌚を提䟛したす。 䞀郚の皮類のタスクでは、他の方法では芋぀けるこずが困難たたは䞍可胜なプレヌダヌの支配的な戊略ず゚クスプロむトを怜出できたす。



テレポヌト-ワヌムホヌル



最埌の2぀の䟋戊略ゲヌムずSuperTankの皎率の䟋を芋お、このような手法はナヌザヌが数字を扱っおいる堎合にのみ適甚できるず考えるかもしれたせん。 しかし、あなたは絶察に間違っおいるでしょう 埌で説明するように、ナヌザヌにずっお数字のように芋えないだけでなく、たったく芋えないデザむン芁玠を最適化する利点を埗る方法の䟋はたくさんありたす



たた、意思決定モデリングは、プレむダヌがゲヌムで行うこずができる決定にのみ適甚できるず考えるかもしれたせん。 これも事実ではありたせん。堎合によっおは、デザむナヌずしお独自の゜リュヌションを最適化するためにモデリングに䜿甚できたす。



スペヌスMMORPGで䜜業しおいるずしたしょう。 リヌドデザむナヌが顔に䞍安を感じるず思い぀きたす。 「オメガセクタヌの再蚭蚈を完了しおいたす」ず圌は蚀いたす。 「そしお問題がありたした。 䞖界のこのセグメントにいく぀かのテレポヌト「ワヌムホヌル」を远加する予定ですが、それらをどこに配眮するかに぀いおは同意できたせん。



「テレポヌタヌは䜕人ですか」



「ただわかりたせん。 おそらく3ですが、2から4たでありたす。 ただわかりたせん。」 次に、圌は次のような地図を衚瀺したす。









「これは䜕」あなたは尋ねたす。



「これはオメガ郚門の地図です。 たたは、少なくずもこの象限でプレむダヌがアクセスできるスタヌシステム。 ワヌムホヌルがどの现胞にあるべきかを刀断する必芁がありたす。」



「じゃあ、どんなルヌルで配眮されおいるの スタヌシステムを䜿甚しおワヌムホヌルを1぀の象限に配眮するこずは可胜ですか”



「星系から最も近いワヌムホヌルたでの距離が最短になるように、ワヌムホヌルを配眮しおほしい。 はい、スタヌシステムず同じ象限に配眮できたす。 それらは空間にぶら䞋がっおいる小さなテレポヌタヌであるため、どこにでも配眮できたす。 いく぀あるべきかはただ決たっおいないので、2、3、4぀の「ワヌムホヌル」の解決策を教えおください。」



この問題を定匏化する方法ずそれを解決する方法は



テレポヌタヌの最適化



溶液セルを準備するこずから始めたしょう。 4぀のテレポヌトをA、B、C、Dずしお瀺したす。各テレポヌトは、本質的にオメガセクタヌの星図䞊の座暙x、yにすぎないこずを知っおいたす。 たた、アクティブなテレポヌトの数を瀺す䜕らかの方法が必芁になるこずもわかっおいるため、テレポヌトの数を蚭定できるセルを远加したす。 テレポヌトDは4぀のワヌムホヌルが䜿甚されおいる堎合にのみ䜿甚され、Cは3぀以䞊ある堎合にのみ䜿甚されたす。









以䞋に、各星系から最も近いテレポヌトたでの距離を蚈算するための衚を準備したす。 この衚は次のようになりたす。









巊の青は、地図䞊の各星系の座暙を瀺しおいたす。 各行は1぀の星系です。 オメガセクタヌのマップからそれらを単玔に転送したした。これは、䞻芁なデザむナヌから提䟛されたした。



右偎では、4぀の各テレポヌタヌぞの距離を蚈算したす。 これは単なるピタゎラスの定理です。 距離は、星系ずテレポヌト間の氎平および垂盎距離の平方根ずしお蚈算されたす。



= SQRT$ B14-Ax^ 2 +$ C14-Ay^ 2


心配しないでください-これがシリヌズで出䌚う最も難しい数孊であるこずを玄束したす



䞊蚘の衚の青いセルから各星系のXおよびY座暙を取埗し、䞊郚の黄色の゜リュヌションセルから各テレポヌト䞊蚘のSQRT関数のテレポヌトAのAxおよびAyずいう名前のセルのXおよびY座暙を取埗したす。



最埌に、Dist to Closest列でこれら4぀の倀の最小倀を取埗したす。぀たり、MIN関数を䜿甚しお、巊偎の4぀の倀の最小倀を決定したす。 次に、以䞋の列党䜓をたずめたす。 合蚈がタヌゲットセルです。



䞊のスクリヌンショットでは、すべおのセルがDからDに蚭定されおいるこずに気付いたかもしれたせん。理由は、゜リュヌションモデルの䞊郚セクションで「Number of Teleporters」セルを䜿甚しおいるためです。 テレポヌタヌの数が2の堎合、Dist to CずDist to Dの䞡方で倀99を䜿甚し、3の堎合、倀99はDist to Dの列でのみ䜿甚されたす。 2぀たたは3぀のテレポヌトの堎合、最も近いテレポヌトたでの距離を蚈算するずき。



次に、゜ルバヌを起動したす。









タヌゲットセルは、[Dist to Closest]列の䞋郚にある合蚈です。 他の䟋ずは異なり、ここでは「ToMin」ラゞオボタンを䜿甚するこずに泚意しおください。これは、最倧ではなく、すべおのスタヌシステムずテレポヌタヌの間に最小距離が必芁だからです。



以䞋に、「ワヌムホヌル」A、B、C、DのXおよびY座暙の解の8぀の黄色いセルを「可倉セルの倉曎」ずしお瀺したす。制限セクションでは、各座暙を0から0の範囲の敎数倀ずしお制限したす。 12.リヌド蚭蚈者は各テレポヌトがどのセルに入るかを知りたいだけであるため、これらの゜リュヌションセルには敎数制玄を䜿甚したすが、蚭蚈者がマテリアル座暙が必芁な堎合はこの制限を簡単にスキップできたす。



「テレポヌタヌの数」の倀を2、3、および4に蚭定し、各倀に察しお順次゜ルバヌを実行するず、次の構成が埗られたす。









この情報があれば、䞀流のデザむナヌに行き、2から4の範囲の任意の数のテレポヌタヌの堎所に最適な堎所を芋せるこずができたす。これは、2、3、4テレポヌタヌの「ワヌムホヌル」の最適な堎所がマップ䞊で芋える方法です緑色で衚瀺。









この䟋のスプレッドシヌトは、ここからダりンロヌドできたす 。



私は忍者に぀いお話したしたか



「玠晎らしい」ずリヌドデザむナヌは蚀いたすが、圌の顔には苊しみが芋えたす。 「えヌ、しかし、これらのシステムのいく぀かは宇宙忍者によっお占められおいるこずを䌝えるのを忘れおいたした。 たた、忍者のいるシステムを「ワヌムホヌル」から遠ざけお、プレむダヌが過床の脅嚁を感じないようにしたす。」



「すごい。 これにより問題が完党に倉わりたす。」



「そうです。 さらに、いく぀かの星のシステムには、1぀ではなく2぀のコロニヌがありたす。぀たり、それらはテレポヌタヌに近いこずの2倍重芁です。 たたは、スペヌスニンゞャの2぀のコロニヌがあるシステムである堎合、さらに2倍重芁です。 マップは次のようになりたす。 "









圌は続けたす。「各負の数は宇宙忍者のコロニヌです。 番号2のシステムには2぀の人間のコロニヌが含たれ、番号-2のシステムには2぀の忍者のコロニヌが含たれおいたす。 この堎合、テレポヌタヌを配眮する堎所を教えおもらえたすか」



「教えおください、少なくずも、2、3、4のテレポヌトの数はすでに決たっおいたすか」ず、皮肉を蟌めお尋ねたす。



「私はただ怖くない。」



忍者を考慮しお解決したす



この問題を解決するには、テヌブルの重みを瀺す新しい列をテヌブルに远加する必芁がありたす。 これを乗数ず呌びたす。 この倀に「Dist to Closest」列の倀を掛けるだけです。



これを行うず、Dist to Closestはその意味をわずかに倉曎したす。 忍者星系では倀が-1倍倉化するため、これは最も近い星系ぞの距離ではありたせん。 これは䞀般化された「ポむント」スコアのように芋えるため、それらをそれず呌びたしょう。









したがっお、ポむントは环積倀を瀺すようになりたした。 それを最小化するこずにより、Solverは人のコロニヌがあるシステムにできるだけ近くなるず同時に、忍者システムから可胜な限り離れるように努力したす。



これで、次の結果が埗られたす。









ご芧のずおり、これによりテレポヌタヌの構成が埗られたす。それぞれの堎合、忍者のいない単玔なバヌゞョンずは倧きく異なりたす。









テレポヌト䟋のこの拡匵バヌゞョンのスプレッドシヌトは、ここからダりンロヌドできたす 。



ご芧のずおり、圓瀟の゜リュヌションモデルはこの重芁なタスクを非垞に迅速に解決するこずができ、倉化する芁件に適応させるこずができたした。



このタスクは、「オブゞェクト割り圓おタスク」ず呌ばれるタスクのクラスに属し、運甚管理の分野で非垞によく研究されおいたす。 しかし、ご芧のずおり、これらはゲヌムデザむンやレベルデザむンで䜿甚される可胜性があり、Excelでの゜リュヌションは単玔ではないにしおも簡単です。



プレむダヌ察プレむダヌの戊いのクラスバランス



この郚分のスプレッドシヌトは、ここからダりンロヌドできたす リンク



スプレッドシヌトずシミュレヌション



このシリヌズの蚘事の前の3぀のパヌトでは、゜リュヌションのモデリングず最適化の抂念、およびExcelパッケヌゞの゜ルバヌツヌルに぀いお玹介したした。 4X戊略で郜垂の最適な皎率を蚈算し、宇宙ゲヌムでのテレポヌタヌの最適な配眮を決定し、第1郚で説明したスヌパヌタンクタスクの最適な歊噚レむアりトを遞択するためにそれらを䜿甚する方法を瀺したした。



自然な問題が発生したす。ゲヌムのバランスはどうですか 倚くの異なる皮類のゲヌム、特に戊略、RPG、MMORPGに芋られるあらゆる皮類の耇雑なバランス調敎タスクに同様の手法を適甚するこずは可胜ですか



もちろん、この質問に察する答えはむ゚スですが、倚くの予玄がありたす。 特に、スプレッドシヌトには倚くの制限がありたす。これは、ほずんどの堎合、ゲヌムを正確に説明しおいないためです。 したがっお、最適化手法を䜿甚しお信頌性の高いバランシングを実行するこずは困難です。 倧郚分のゲヌムの実際のバランス調敎タスクは、スプレッドシヌトでモデル化できるものをはるかに超えおいたす。 ゲヌム自䜓のシミュレヌションは通垞非垞に耇雑で、倚くの「可動郚分」があり、しばしばリアルタむムで実行されたす。離散シミュレヌションを詊みるず、あらゆる皮類の問題に遭遇する可胜性がありたす。



したがっお、 WildStarなどのMMORPGやPlanetary Annihilationなどの戊略ゲヌムでクラスのバランスを取るために同様の手法を䜿甚する堎合、少なくずもある皋床の粟床ず有甚性を確保するために、ゲヌム自䜓のシミュレヌションにそれらを統合する必芁がありたす。



さらに、真実は、バランスの䞀郚の偎面を自動化できないこずです。 蚘事の最初の郚分で説明したように、ゲヌムの感芚を自動的に調敎するこずはできたせん。



したがっお、私たちが期埅できる最善の方法は、このタむプのタスクぞの䞀般的なアプロヌチを瀺す簡単な䟋のデモンストレヌションですExcelの簡単な䟋を䜿甚しお、このタむプのバランス問題の定匏化にアプロヌチし、それらを最適化する方法を孊びたす。 少なくずも単玔な戊闘の䟋では、゜ルバヌはいく぀かのRPGクラスを盞互に適切にバランスさせるこずができるこずを瀺したす。 次に、この基本構造を基に、このような最適化問題をより耇雑なスキヌムで解決し、ゲヌムのシミュレヌションにより深く統合したす。



私たちず䞀緒にあなたがすべおのトリックを孊び、この簡単な䟋が私たちに䜕を䞎えるこずができるかを芋おほしい。



䞍均衡



「バランス」ずいう蚀葉の䞀般に受け入れられおいる単䞀の定矩はありたせん。 それには倚くの意味があり、通垞は問題のゲヌムのコンテキストに䟝存したす。 さたざたな条件で、バランスは、ロヌルプレむングゲヌムの胜力を同等にするためにいく぀かのクラスのキャラクタヌを蚭定するこず、戊略ゲヌムで互いに戊う盞手の勢力の数、たたはそれらの有甚性に応じおさたざたなナニットたたはリ゜ヌスのコストを調敎するこずに関連付けるこずができたす。



「バランス」の最良の定矩は、通垞、問題のゲヌムの蚭蚈目暙に䟝存したすが、これらの目暙は任意である可胜性があるため、ゲヌム党䜓のバランスが本圓に意味するこずをアプリオリに決定するこずは䞍可胜です。



䞀郚のプレむダヌは、戊闘でバランスを取るこずは等しいダメヌゞを意味するず信じがちです。 これは、MMORPGの堎合に特に圓おはたりたす。MMORPGでは、あるクラスの1秒あたりのダメヌゞDPSが他のクラスに比べお小さすぎるか倧きすぎるずしばしば䞍満を述べたす。



もちろん、クラスはDPSだけでバランスを取るこずはできたせん。 1぀のクラスのDPSが他のクラスよりも倧きいこずは蚱容されたすが、これはクラスの党䜓的な有甚性を制限する他の芁因、たずえば、生存期間の短瞮や短期DPSず比范した長期DPSの䜎䞋などによっお盞殺されたす。



小さなMMO



「Tiny MMO」ず呌ばれる非垞に単玔化された倧芏暡なマルチプレむダヌオンラむンロヌルプレむングゲヌムである新しいプロゞェクトを䜜成しおいるず想像しおください。 蚭蚈開発の䞀環ずしお、プレヌダヌ察プレヌダヌPVPの戊いの4぀のクラスのバランスを取り、4぀のクラスすべおが互いに比范的平等に戊い、明確な「より良い」たたは「悪い」クラスが存圚しないようにしたす。他のクラスず戊うこずができたす。



Tiny MMOはリアルタむムゲヌムですが、各プレヌダヌのアクションは正確に3秒続きたす。そのため、各動きがゲヌムプレむの3秒分であるタヌンベヌスのゲヌムずしお提瀺するこずで、それを離散化できたす。



このゲヌムのプレむダヌは、4぀のキャラクタヌクラスのいずれかを遞択できたす。





これらの4぀のクラスに぀いお知っおいるのはこれだけです。4぀のクラスすべおに぀いお、健康HP、ダメヌゞ、回埩、攻撃範囲の初期パラメヌタヌを蚭定する必芁がありたす。 各クラスが䞀意であり、その特性が他のすべおのクラスず倧きく異なるようにバランスをずる必芁がありたすが、その結果、各クラスは他の3぀のクラスに察しお可胜な限り「バランス」が取れるようになりたす。



぀たり、次の衚の最適化に努めおいたす。









ここでは、䞀時的な倀を䜿甚し、各クラスは50 HPで始たり、1タヌンあたり10ダメヌゞを䞎え、1タヌンあたり0 HPを回埩し、40メヌトルの攻撃範囲があるず仮定したす。各キャラクタヌは1回転に぀き10メヌトルの速床で移動したす。蚭蚈では、4぀のクラスのキャラクタヌすべおが同じ速床で移動できるこずが瀺されおいるため、この倀を定数ず芋なし、決定倉数の衚に移動速床を入力したせん。



明らかに、これは非垞に単玔化された損傷モデルを䜿甚したケヌススタディです。これは、毎秒のダメヌゞの連続的な平均倀であり、パルスダメヌゞず長期ダメヌゞの違い、およびクラスの攻撃胜力を倉曎するマナやその他のメカニズムを無芖したす。ほずんどのクラスには数十皮類のダメヌゞがあるため、1皮類のダメヌゞしかありたせんが、これは非垞に非珟実的です。各タヌンに攻撃を遞択するAIシステムを実装する必芁がありたす。さらに、ほずんどのゲヌムでは、ダメヌゞにはランダム性の芁玠がありたすが、ここではこれを省略し、ダメヌゞのばら぀きが2぀のクラス間の戊闘の結果に倧きく圱響するほど倧きくないず仮定したす。



もちろん、Excelで実行されるバランスは、ゲヌムの最終的なバランスず理想的たたは䞀貫性があるずは考えられたせん。圌女はプレむテストを䜕床も繰り返す必芁がありたす。しかし、Excelでゲヌムの適切な最初のオプションを取埗するのに 1〜2時間かかる堎合、少なくずも初期バランスの定性的パラメヌタヌに近づく可胜性が高くなりたす。これにより、取埗する最終バランスに近づきたす。



勝利衚



1察1のバトルでは、4぀のクラスのバランスを取る必芁がありたす。4぀のクラスWarrior、Mage、Healer、およびBarbarianしかないため、異なるクラスの6぀の可胜な組み合わせがありたす。





このバランス調敎は非垞に耇雑です。4぀のクラスを䜿甚する比范的単玔なケヌスでも、正方圢の4点間に6本の線を匕くこずができるように、6぀のクラス間リレヌションを取埗したした。









いずれかのクラスのパラメヌタヌの1぀に少しでも倉曎を加えるたびに、この倉曎は、このクラスのペアず他の 2぀のクラス間のPvPバランスにも圱響したす。このべき法則の盞互接続性は、クラス数の増加に䌎っおのみ成長し、他のすべおの盞互䜜甚を考慮せずに「真空」で行われたクラスのペア間でPvPのバランスをずる決定は非垞に危険になりたす。



理想的には、䜕らかの勝利テヌブルを䜜成したい以䞋に瀺すようなものです。スプレッドシヌトでこれらの6組のそれぞれの間の戊いをシミュレヌトできる堎合、6組のそれぞれに察しお特定の「ポむント」倉数を生成できたす。ポむントが倚いほど良いので、これらの6぀のポむントすべおを組み合わせお目暙関数を生成できたす。









䞊蚘の衚では、察角線に沿ったセルはれロであるこずに泚意しおください。これは、定矩によっおバランスがずられる同じクラスのペアを瀺すためです。たた、右䞊隅のセルもれロです。これは、巊䞋のセルずたったく同じペアを瀺すためです。



次に、2぀の異なるクラス間の戊いに向けおモデルを準備したしょう。



「バトルシミュレヌタヌ」



クラスの各ペアを互いに100メヌトルの距離で配眮したす。各キャラクタヌには3秒の攻撃があるため、これは各「移動」が3秒を意味するタヌンベヌスのシミュレヌションず考えるこずができたす。各「移動」で、各キャラクタヌは、攻撃範囲内であれば盞手を攻撃するか、距離を瞮めるために動き続けたす。



シミュレヌションは次のようになりたす。









䞊蚘は戊闘に参加した2人のキャラクタヌです。この堎合、Mageクラス1ずHealerクラス2です。巊の列は、シミュレヌトされた2぀のキャラクタヌ間の珟圚の距離を瀺しおいたす。



各文字の列は次のずおりです。





したがっお、䞡方のキャラクタヌはお互いに向かっお動き始め、その埌、どちらかたたは䞡方が死ぬたで攻撃したす。各キャラクタヌは、3秒ごずに5メヌトルず぀移動したす「タヌン」ごずに5メヌトル。䞡方のキャラクタヌがお互いに向かっお移動するず、範囲ごずに10ナニットず぀倉化し、どちらか䞀方だけが移動するず5ナニットず぀倉化したす。ゲヌム自䜓は、䞡方のキャラクタヌが同時に動き始めるこずができるように構成されおおり、その埌、同時に動きが蚱可されるため、䞡方のキャラクタヌが同時に死ぬ可胜性がありたす。



次に、このテヌブルのスコアを蚭定し、戊闘がどれだけ「良い」かを瀺す数倀を生成する必芁がありたす。぀たり、蚭蚈目暙の達成にどれだけ近いかずいうこずです。



明らかに、䞡方のキャラクタヌが戊闘終了たでに死ぬか、少なくずも可胜な限り死に近づきたす。戊闘のバランスが取れおいれば、䞡方の戊闘クラスが戊闘終了時に敵の健康を最小化するはずです。



ただし、これだけでは十分ではありたせん。この方法でスコアリングを敎理するず、オプティマむザヌは、䞡方のキャラクタヌが即座にお互いを殺すように、ダメヌゞ倀をできるだけ倧きくするだけです 興味がある堎合は、蚘事に添付されおいるスプレッドシヌトを倉曎しおみおください。明らかに、私たちは即死を目指しお努力しおいたせん。䞡方のキャラクタヌが戊闘終了たでに死んでいるか、ほずんど死んでいる必芁がありたすが、同時に戊いを劥圓な時間持続させたいです。



蚀い換えれば、すべおのクラスのバランスが比范的均等になるように努力しおいるだけではありたせん。たた、戊いが適切な時間続くこずを含め、バランスを面癜くしたいず思いたす。



このようなバランスの芋積もりを生成するには、各テヌブルの右偎にいく぀かのセルを䜜成する必芁がありたす。継続時間は、戊闘の継続時間を瀺したす。圌女は䞡方のキャラクタヌがただ生きおいるテヌブルの行数を数えたす。Total HPは、生き残った2人のキャラクタヌの合蚈ヒットポむントを蚈算したす。理想的には、0にする必芁がありたす。぀たり、戊闘が終了するたでに、䞡方のキャラクタヌが死亡したす。









最埌に、スコアは、フォヌム内のヒットポむントの継続時間ず合蚈量を組み合わせたす期間/1 +合蚈HP。 Total HPが0になる可胜性があるため、陀数に1を远加したこずに泚意しおください。その堎合、れロによる陀算゚ラヌが発生したす。したがっお、私たちは、戊いの最倧期間芋぀けるためのそのオプティマむザの報酬を保蚌するこずができたすし、ヒットポむントの量の最小倀を。



クラス間の戊闘の各「シミュレヌション」には17行あるため、これは本質的に、戊いが玄17ラりンド続くべきであるずいう蚭蚈䞊の決定を行ったこずに泚意しおください。長い堎合は、行数を倉曎し、スコアを蚈算するための匏を線集し、それに応じお再最適化するこずができたす。



最埌に、これら6぀のスコア倀各テヌブルに1぀を取埗し、䞊蚘の勝利テヌブルで䜿甚しお、クラスの各ペア間の戊闘の結果を瀺したす。



これらの6぀のスコア倀を単玔に芁玄し、その結果を最終的なスコア倀ずしお䜿甚できたす。ただし、これを行うず、゜ルバヌは個々の戊いの最高ず最䜎の栌付けのバランスを芋぀けるこずができなくなり、クラスのペアによっおは非垞に高い栌付けを獲埗し、他のクラスの䜎い栌付けを獲埗したす。これは私たちが望んでいるこずではありたせん。すべおのマヌクを高くする必芁があり、それらすべおを䞊げるよう努めおいたす。これを修正するために、掚定倀の合蚈に最小倀を掛けたす グルヌプ評䟡Excel MIN関数を䜿甚により、゜ルバヌが最も䜎い倀の掚定倀に集䞭できるようにしたす。



制限を远加する



ただ終わっおいたせん。珟圚のパラメヌタヌを䜿甚しお゜リュヌションモデルを最適化するず、クラスが正しく構成されない可胜性が高くなりたす-実際、モデルが同じHP、損傷、回埩、範囲の倀を決定倉数のテヌブルに曞き蟌む可胜性が高くなりたす。



そしおもちろん、各クラスに独自の個性を持たせたいず思っおいたす。最倧のダメヌゞを䞎えるには戊士が必芁であり、メむゞには最倧の範囲があり、ヒヌラヌには最倧のヒヌリング倀があり、バヌバリアンには最倧のHPがありたす。たた、これらの違いが小さくなりすぎないようにする必芁がありたす。これらのクラスは互いに倧きく異なる必芁がありたす。



これを行うために、制限の小さなテヌブルを䜜成したす。この衚により、4぀のクラスのそれぞれに察応する属性が蚭定され、制玄条件が満たされおいるかどうかに応じお0たたは1のスコアが䞎えられたす。









右偎の衚の最小差は、他のすべおのクラスに察するクラスの各属性の最小差を瀺しおいたす。蚀い換えれば、戊士は他のすべおのクラスよりも少なくずも4 HP以䞊のダメヌゞを䞎えられなければならず、メむゞは少なくずも10以䞊の攻撃範囲を持たなければなりたせん。



これらの特別な制限を远加したので、最適化する時が来たした



゜リュヌションを怜玢



これで、Excelに組み蟌たれおいる゜ルバヌツヌル「゜リュヌションの怜玢」を実行しお、初期パラメヌタヌを最適化するこずができたす。タヌゲットセルずしお、6぀のトヌナメントすべおの結果を結合するスコアセルを遞択したす。最初に䜜成した黄色の決定倉数テヌブルに16個のセルすべおを含めるように決定倉数を蚭定したす。



たた、次のように制玄[制玄の察象]フィヌルドでを蚭定したす。











最埌に、Solving MethodをEvolutionaryに蚭定し、Solverを実行したす。これは進化的アルゎリズムであるため、2回目たたは3回目の゜ルバヌ実行䞭、たたは進化的最適化のパラメヌタヌオプションボタンの蚭定埌に芋぀かった゜リュヌションを改善する可胜性があるこずに泚意しおください。



その結果、次のようになりたす。









...そしおたるで魔法のように、゜ルバヌは私たちに良い初期バランス構成を䞎えたした。



ご芧のずおり、今では戊士が最倧のダメヌゞを䞎え、魔術垫が最倧の範囲を持ち、ヒヌラヌが最高のヒヌルを持ち、バヌバリアンが最倧のHPを持っおいたす。さらに、個々のトヌナメントの結果を「クラス察クラス」で確認し、クラス同士がどのように戊いを芋せおいるかを芋るこずができたす。ご芧のように、それらのほずんどは非垞に均等にバランスが取れおいたす-戊いの終わりたでに䞡方のクラスが死にかけおいるか、それらの1぀がかろうじお生き残りたす。さらに、すべおのトヌナメントは十分に長く続き、䞀方のクラスが他方を「ワンホット」するこずはできたせん。



数時間の仕事で悪くないですよね



おわりに



この䟋では、単玔なバランス調敎タスクを䜜成し、実際にシミュレヌションず最適化の助けを借りおそれを解決できるこずを瀺したした。これが単玔な䟋であるこずは明らかですが、モデリング技術ず意思決定の最適化の力を瀺しおいたす。さらに、むンスピレヌションの源ずなり、ゲヌムのシミュレヌションに密接に統合されたより耇雑なバランシングツヌルで䜿甚できたす。この䟋を実際にそのようなタスクを定匏化するためのガむドずしお䜿甚できるこずを願っおいたす。



シリヌズの次の2぀のパヌトでは、2぀以䞊の゚ンティティセットからの最適な割り圓おの遞択に関連する割り圓おタスクの領域に飛び蟌みたす。これらのタむプの問題を解決する方法を瀺し、このアプロヌチを䜿甚しおiOS / Android City Conquestの戊略ゲヌムでタワヌデザむンを䜜成する方法を瀺したす。



All Articles