ゲヌム゚コノミヌを蚭定するための私のアプロヌチスプレッドシヌト

この投皿は、開発者がExcelでお気に入りの䜜業方法を共有するずいうBrenda RomeroずIan Schreiberの提案に応えお曞かれたした。



Excelを䜿甚しお、ゲヌムの経枈性に関する倚くのプロゞェクトを完了したした。 今日、ゲヌムの経枈性を構成および調敎するずき、ほずんどの堎合、デヌタの特定の列を䜜成しお、各セルの倀が1぀たたは耇数の倉数を含む数匏に基づいお自動的に蚈算されるようにする必芁がありたすたずえば、どのようなダメヌゞずスペヌスに基づいお各歊噚のコストを蚈算するかプレむダヌのむンベントリを取埗したす。







原則ずしお、匏に含たれる倉数は1぀のオブゞェクトのさたざたなパラメヌタヌであり、それぞれがテヌブル内の独自の行を占有し、このオブゞェクトの他のプロパティの倀は特定の行の他の列にありたす。



次に、ゲヌムの経枈性を敎理するために、たたテヌブルに簡単な倉曎ず曎新を提䟛するために、Excelで䜿甚する方法を説明したす。



カラヌマヌカヌのある列



スプレッドシヌトでは、䞻に3぀のカテゎリの列を䜿甚したす。 この列の倀を盎接線集する必芁があるかどうか、たたはこれらの倀が匏を䜿甚しお蚈算されるかどうかがわかりたすので、各列の䞀番䞊の行に色を付けたす。 次のカラヌマヌカヌを䜿甚したす。



1. 緑 -これらの列の倀は手動で線集されたす。 さらに、そのような倀はより頻繁に倉曎する必芁がありたす。



2. 黄色 —これらの列の倀は、特定の領域の倀の蚈算に基づいお蚈算され通垞は巊偎の列の倀、これらの倀を倉曎するず特定のセル範囲に圱響したす。 これらの列の数匏は調敎が必芁ですが、「緑」の列のセルよりも頻繁に数匏を倉曎するこずはできたせん。



3. 癜 -これらの列の倀は、倧きな倉曎を必芁ずしない匏を䜿甚しお蚈算されたす。蚈算結果は「黄色」列の倀、関連する制埡倉数たずえば、最小-最倧範囲たたは有意因子に盎接䟝存するためです倉数の䞀般的なテヌブルで芋぀けるこずができたす。 したがっお、これらの列の匏は、最も極端な堎合に倉曎する必芁がありたす。



正芏化された範囲



他の列の倀に圱響を䞎えるだけでなく、倉曎を受ける可胜性のあるデヌタを含む列の堎合、この倉数の最小倀ず最倧倀を知るために、䞀般倉数テヌブルに新しい゚ントリを远加したす。 次に、新しい列を远加しお、元の列の察応する各セルの正芏化された倀を保存したす。



たずえば、歊噚テヌブルの列Dが緑色であり、各歊噚がどれだけのダメヌゞを䞎えおいるかに぀いおの情報が含たれおいるずしたす。 これらの倀を手動で入力した埌、「WeaponDamageMax」ずいう倉数テヌブルに新しい倉数を远加し、その倀を「= MAXWeapon [DD]」に蚭定し、別の倉数「WeaponDamageMin」を蚈算したす。匏「= MIN歊噚[DD]。



次に、匏「=D1-WeaponDamageMin/WeaponDamageMax-WeaponDamageMin」で正芏化された損傷倀を栌玍するために、アヌムテヌブルに列Eの新しい列を䜜成したす。



分垃匏



前述したように、数匏で正芏化された入力デヌタを䜿甚する列をマヌクするために黄色を䜿甚し、正芏化された範囲内で倀の分垃を倉曎するためにいく぀かの数孊挔算も実行したす。 これは、倀の分垃をより现かく制埡するために行われ、時々珟れる倀のクラスタヌを砎壊する方法でもありたす。



たずえば、開発者が5,000,000のダメヌゞを匕き起こす新しい最も匷力な歊噚を远加し、列Dの残りの歊噚ダメヌゞ倀が1から200の範囲にある堎合、そのような倧きな倀は、0-1の範囲の䜎いレヌトで他の倀を歪めたすカラムEの正芏化された損傷倀を取埗するために、WeaponDamageMaxを䜿甚しおそれらを配垃する堎合。これは望たしい堎合もありたすが、これらのデヌタクラスタヌを分割し、範囲党䜓に均等に分散させたい堎合がありたす。



これは、分垃匏が圹立぀堎所です。 正芏化された倀は、既存のデヌタに分垃曲線を適甚するこずにより、簡単に倉換しお目的の䌝播倀を取埗できたす。 この堎合、新しい「黄色」列である列Fを䜜成しお、列Dから倉曎された倀を保存したす。



この方法は非垞に匷力で柔軟性がありたすが、サヌドパヌティのツヌルを䜿甚しお曲線を芖芚化し、生成するのははるかに簡単です。 これらのタスクはExcelで実行できたすが、個人的には、次のツヌルを䜿甚しお分垃匏を芖芚化および倉曎するこずを奜みたす。



芖芚化 - グラフィック蚈算機 



1.軞を0〜1の範囲に増やしたす

2.「y1 =」フィヌルドで曲線が調敎されおいる列から数匏をコピヌしたす

3.正芏化された列の文字を「x」に眮き換えたす

4. [グラフ]ボタンをクリックしお、遷移曲線を衚瀺したす。



倉曎 - フルヌ゚ンシヌ関数ゞェネレヌタヌ



1.曲線の制埡点を必芁な倖芳になるたで倉曎したす

2.「関数」フィヌルドから、関数の最埌の行の「b + c *」の埌の郚分括匧内の郚分をコピヌしたす

3.コピヌした数匏を、曲線が調敎されおいる列に貌り付けたす

4.名前「t」を正芏化された倀nvcIDの列の文字に、名前「ts」を「nvcID ^ 2」に、「tc」を「nvcID ^ 3」に眮き換えたす。



列Eの歊噚による損傷の正芏化された倀の堎合、列Fの元の匏を䜿甚しお、倀=のクラスタヌを範囲の䞋郚に匕き䌞ばすこずができたす。 「E1 ^ 2*E1 ^ 2+ -18.395 *E1 ^ 3+ 3.825 *E1 ^ 2+ 2.57 * E1」



この匏は、もずもず䞊で説明した平滑化関数のゞェネレヌタヌを䜿甚しお取埗されたもので、必芁に応じお分垃を調敎するために倉曎できたす。 繰り返したすが、列Fの残りの行にこの数匏を適甚し、列の残りのセルの䞋にある数匏で䞀般的なドラッグアンドドロップを䜿甚しお、各行のE1を倉曎したす。



䜿甚する分垃匏に関係なく、結果の倀が0〜1の範囲にあるこずを確認しおください。





ただ...必芁なものを取り、お金を残しお...



範囲制埡倉数



匏によっお自動的に蚈算される倀この䟋では、これは各歊噚の䟡栌ですに぀いお、指定された範囲内に保぀ために、このパラメヌタヌの最小倀ず最倧倀を制埡できるず䟿利だず思いたす。 これを行うには、各「癜」列匏に埓っお蚈算が行われるに察応する調敎可胜な最小/最倧倉数を远加したす。この倉数には、自動蚈算倀が入力されたす。



歊噚の䟡栌の堎合、倉数の䞀般的なテヌブルに2぀の新しい倉数WeaponCostMinずWeaponCostMaxを远加したす。 それらはい぀でも手動で倉曎できたす-たずえば、WeaponCostMaxが90,000の堎合、プレヌダヌは最倧50,000コむンを収集できたす。しかし、あなたはすべおの歊噚を買うこずができたす。



加重平均係数



匏によっお蚈算されるプロパティ倀は、1぀以䞊の元の倀を䜿甚しお蚈算できたす。これを「ファクタヌ」ず呌びたす。 圌らの助けを借りお、最終的に生成された倀を取埗できたす。 たずえば、歊噚のコストを蚈算する堎合、これらの芁因は次のずおりです。



歊噚が䞎えるダメヌゞの量より倚くのダメヌゞ=より高い䟡栌

圚庫に必芁なスペヌスの量スペヌスが倚い=䟡栌が䜎い。



この段階では、各因子はすでに分垃関数を䜿甚しお正芏化および調敎されおいるず考えられたす぀たり、歊噚による損傷の初期倀は列Dに、歊噚による損傷の正芏化された倀は列Eに、最終的な損傷倀は列Fに入力されたす私たちの䟡倀公匏で䜿甚される流通によっお芏制された歊噚から。



歊噚の損傷の最終倀が「黄色」列Fにあり、特定の歊噚のむンベントリに必芁なスペヌスの量の最終倀が「黄色」列Uにあるずしたす。「癜」列Cの匏を䜜成したす。各歊噚の自動蚈算された䟡栌が保存されたす。 列Cの最も簡単な公匏の1぀は、私たちの芁望ず芁件を考慮に入れお、これら2぀の係数の算術平均を芋぀けるこずです



「= WeaponCostMin +WeaponCostMax-WeaponCostMin*F1 +1.0-U1/ 2.0」



この堎合も、列Cの他のすべおのセルに数匏を適甚するには、数匏を再床䞋にドラッグする必芁があるこずに泚意しおください。



したがっお、これは、ダメヌゞのレベルずこの歊噚のむンベントリ内の堎所の芁件に基づいお、指定された範囲内の各歊噚のコストを瀺したす。 ただし、これは、これらの芁因の䞡方が最終コストの決定に等しく圱響するこずも意味したす。これは、いく぀かの芁因がある堎合に垞に望たしいずは限りたせん。



このような状況での迅速、簡単か぀柔軟な゜リュヌションは、匏を加重平均倀に倉換し、各因子の手動で構成可胜な有意係数を倉数の䞀般的なテヌブルに远加するこずです。 これにより、必芁に応じお個々の芁因の重芁床を調敎できたす。



この堎合、倉数の䞀般的なテヌブルに2぀の新しい倉数、WeaponCost_DamageFactorWeightずWeaponCost_SpaceFactorWeightを远加したす。 これらの倀は単なる盞察的な「重み」なので、歊噚のコストを蚈算したい堎合、そのダメヌゞはこの歊噚のむンベントリの堎所の芁件よりも倧きくなければなりたせん。次の倀を蚭定できたす。 「= 1」。



最終的に、加重平均を䜿甚しお歊噚のコストを蚈算するための列Cの匏は次のようになりたす。



"= WeaponCostMin +WeaponCostMax-WeaponCostMin*F1 * WeaponCost_DamageFactorWeight+1.0-U1* WeaponCost_SpaceFactorWeight/WeaponCost_DamageFactorWeight + Weapon



この匏は、圚庫の損傷ずスペヌスの初期倀が0〜1の範囲にある堎合にのみ機胜するこずに泚意しおください。 これは、゜ヌスデヌタをさたざたな远加操䜜を実行する前に正芏化するもう1぀の理由です。



結論



䞊蚘の方法は決しお完璧ではありたせんが、少なくずもその芁玠のいく぀かが誰かに圹立぀こずを期埅しお、私はそれに぀いおただ話したした。 これらの方法は非垞に簡単ですが、蚈算をさらに簡単にする機䌚が垞にあり、蚈算プロセスを単玔化する方法に関する他の開発者からの提案を期埅しおいたす。



たずえば、分垃曲線を調敎するプロセスは、ゲヌムのバランス調敎ずカスタマむズの適切な経隓がなくおも、そのような方法を実践しようずしおいる開発者にずっお障害になる可胜性があるこずがわかりたした。 曲線を操䜜するずきに蚈算が非垞に面倒であるこずがわかった堎合は、代替方法、たずえば線圢セグメント曲線法を怜蚎できたす。 線圢セグメント化された曲線を䜿甚しおゲヌムのバランスず調敎を行う䟋に぀いお孊ぶには、Wolfgang Grebnerによっお曞かれたClash of Clansの䟋を䜿甚しお、䞀時的な収益化公匏の詳现な分析を確認しおください。



All Articles