遊戲系統數值建模過程設計

2022-09-10 23:03:41 字數 2834 閱讀 1957

作為一名數值策劃,不僅要學會如何搭建遊戲數值架構這類寬而泛的事物,也應該要懂得針對系統策劃設計出來的單個系統或者單個玩法,進行單個系統或玩法內部的數值建模,以及數值調優,以滿足系統策劃對其的各種合理預期。在進行數值建模的過程中,你需要針對提供的這個系統或玩法,事先考慮在數值上預留一定的擴充套件性(如果單個系統或玩法的規則有修改,則不是數值上的問題,需要修改**邏輯),讓我們在數值引數的調整上提公升效率。

以下就某遊戲的乙個玩法來進行單玩法的數值建模及後續數值調優設計。

熟悉的同學應該都知道這是《神武2》中的幸運轉轉樂玩法,大致講一下這個玩法內容以及規則:

這個玩法中,我主要是想知道在多次擲骰子的情況下,平均一次我能夠獲得多少價值的獎勵。

基於上面建模的目的,玩法中的某些資料是用不到的。

用到的資料列表如下

說明一下,輸入資料統一用綠色標識,建模後需要檢視的資料統一用橙色標識;格仔數量和格仔價值在excel表中用兩列來輸入資料(這裡為了顯示方便做了分列處理)

可以看到,在這樣的輸入資料下,我們可以對骰子個數進行改動(以前一次只能擲2個骰子,現在可以修改為擲任意多個骰子)、對總的格仔數進行改動、對每個格仔裡物品的價值進行改動。這樣,即是為建模做了數值上的擴充套件,但如果你想讓玩家能夠選擇擲乙個或者兩個骰子,那麼就需要到**中進行規則的修改。以上,是對輸入資料上的數值擴充套件,後面會講到對結果資料上的擴充套件。

以下,開始編寫**進行模擬。模擬過程主要分為3部分:資料錄入、資料處理(邏輯規則運算)、輸出結果並顯示。這3部分都會在下面的**中得以展示。

1

option

explicit23

subshenwu()

4dim pos() as

integer, value() as

integer

5dim startpos as

integer, times as

integer

6dim n as

integer, i as

integer

7j:j"))

910redim pos(0

to n - 1) as

integer

11redim value(0

to n - 1) as

integer

1213

for i = 0

to n - 1

step

114 pos(i) = range("

j" & i + 2

).value

15 value(i) = range("

k" & i + 2

).value

16next

1718 startpos = range("o1"

).value

19 times = range("o2"

).value

2021

dim totalvalue as

long

22dim random as

integer

23dim midpos as

integer

2425 totalvalue = 0

2627

for i = 1

to times step1)

29 startpos = (startpos + random) modn30

while startpos = 0

)32 startpos = (startpos + random) modn33

wend

34 totalvalue = totalvalue +value(startpos)

35next

3637 range("

o4").value =totalvalue

38 range("

o5").value = round(totalvalue / times, 0)39

end sub

view code

可以看到,最開始的幾行**是將excel中的資料儲存到**的相關變數中,for迴圈這段**開始對我們設定的擲骰子次數進行一次次的模擬運算,最後將結果儲存在totalvalue中。for迴圈外下面的幾行**,則是將結果顯示到excel表中,方便結果分析優化。

這段**沒有去用骰子個數,而是直接用2個randbetween()函式來實現擲骰子行為;如果需要進行骰子個數擴充套件,可以使用for迴圈實現。

上面的**已經能夠滿足我建模的目的:得到多次擲骰子情況下,平均一次能夠獲得的物品價值。不僅如此,如果我們需要觀察每一次擲骰子的結果,上述**也是可以實現的。每次更新startpos後,將這個startpos以及對應的value(startpos)輸出顯示到excel上即可。這樣,就對輸出資料進行了一定程度的擴充套件。

對於輸出資料的擴充套件,基本上都需要改動**,但盡量保證在原有的**上進行**新增,而不是修改**,這是在建模過程中的乙個好習慣。

數值調優過程,是乙個在現有規則不變的情況下,不斷調整優化輸入資料,使輸出資料滿足策劃預期的乙個過程。

這裡,我們可以通過不斷的調整格仔的數量以及每個格仔裡的物品(即物品價值),使最終的平均價值達到給定的預期為止。到這一步,就是純工作量的問題了,就不細說了。

一般而言,當你建模完成後,還是會遇到策劃臨時新增其他需求的情況,那麼此時應該怎麼處理?假如這個時候有乙個需求,我希望有5%的機會能上電視(上面規則有提到,如果獲得高階物品,能夠上電視)。那麼,如何完善之前的建模來滿足這個需求呢?

以上,將之前的模型加以了補充和完善,滿足了後續的額外需求。

當完成乙個系統或者乙個玩法的時候,系統策劃、數值策劃最好能夠事先就把數值需求確定清楚、完整,後面數值策劃在進行建模的時候,就不用過多的修改**,而只需要進行數值調優,快速的完成乙個系統或乙個玩法的數值工作,這樣,效率才會大大提公升。

遊戲數值分層分段設計

數值分層分段思想的運用,在遊戲中,尤其是pc端網遊以及手遊,幾乎隨處可見,但是卻常常被人忽略。打算寫這篇文章,主要是對之前體驗過的slg手遊的乙個收穫感想,為以後工作提供文字化參考,同時也作為乙個思想上的分享。玩家玩遊戲,最初不會去關注遊戲中數值的分層分段,直到對遊戲內某個模組的體驗感受和預期出現了...

如何系統學遊戲建模?遊戲建模必備知識,值得收藏

一 如何學習遊戲建模?1 對於有興趣且有時間的小夥伴,相信都是選擇自學,也許你會在網上尋找大量的資料 教程,然後開始你的探索之旅,當然,在我看來,自學是比科班教學更加有效和更深刻的過程,在其中你收穫到的相信不只是學識,還有自我控制力 毅力,後者對於你的人生的作用是無限的,而前者的作用是有限的,也許看...

過程系統建模平台 gPROMS

gproms 新一代過程系統建模平台 gproms generalprocessmodelingsystem 是對工藝裝置及流程進行 建模及設計優化的新一代通用過程模擬平台。相比其他類似軟體,優點在於 1.求解器是ipdae求解器,即integratedpartialdifferential alg...