免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
一個(gè)數(shù)值框架,讓效率提升10倍!
 文/張小勇

  剛?cè)胄械臅r(shí)候,我調(diào)整一版完整的數(shù)值需要將近一周的時(shí)間,幾個(gè)EXCEL之間來(lái)回切換查看再匯總統(tǒng)計(jì)讓我十分忙亂,按照新的規(guī)劃重新計(jì)算大量的數(shù)值讓我非常疲憊,填寫(xiě)幾十份的配置表讓我無(wú)比痛苦。后來(lái)我不斷地優(yōu)化自己的數(shù)值框架,把一些EXCEL和VBA能處理的問(wèn)題全部在框架中一次性解決,現(xiàn)在我只需要用半天就能調(diào)整一版完整的數(shù)值,效率提升了10倍。我的數(shù)值框架將我從“高級(jí)填表員”的工作中解救出來(lái),讓我能夠?qū)⒏嗟臅r(shí)間和精力放在數(shù)值體驗(yàn)上,我的工作效率和質(zhì)量都提高了一個(gè)檔次。

  本文將分享一套以戰(zhàn)斗為主的數(shù)值框架,講述一下做數(shù)值框架的思路和方法,希望能對(duì)大家有所幫助。

  前期工作

  一般而言,我做數(shù)值框架會(huì)從確定屬性種類(lèi)和戰(zhàn)斗公式開(kāi)始。

  屬性種類(lèi)

  很多游戲喜歡將屬性分為一級(jí)屬性和二級(jí)屬性,這樣做最大的好處是方便做出“加點(diǎn)”的玩法,但一般需要輔助以比較多的屬性說(shuō)明,否則玩家會(huì)比較難理解,你能直接看懂下面這張圖中的幾個(gè)一級(jí)屬性代表什么意思么?


  因?yàn)槲易龅挠螒蚨紱](méi)有加點(diǎn)這個(gè)概念,所以我都是直接用生命、攻擊、防御、暴擊這些屬性種類(lèi),自己做著方便,玩家也容易理解。

  幾乎所有游戲中的屬性類(lèi)型都由血攻防這樣的基礎(chǔ)屬性和暴擊格擋穿透之類(lèi)的高級(jí)屬性組成,個(gè)人建議再規(guī)劃一個(gè)“超級(jí)屬性”。“超級(jí)屬性”指的是對(duì)PVP有決定性影響且十分難升滿的屬性,超級(jí)屬性可以承載大R玩家的追求和消費(fèi),比如《拳皇98OL》在傳統(tǒng)卡牌的基礎(chǔ)上將“先手值”獨(dú)立出來(lái)作為“超級(jí)屬性”,其中很多的大R玩家為了追求“先手值”這一項(xiàng)屬性消費(fèi)了幾萬(wàn)甚至十幾萬(wàn)。

  戰(zhàn)斗公式

  戰(zhàn)斗公式不是本文的重點(diǎn),相關(guān)的文章也很多,不再細(xì)述,簡(jiǎn)單說(shuō)幾點(diǎn)自己的體會(huì):

  1.沒(méi)有最好的,只有最合適的:剛?cè)胄械臅r(shí)候覺(jué)得像《WOW》、《暗黑》之類(lèi)的戰(zhàn)斗公式才叫牛逼,第一次看到damage=atk^2/(atk+def)的時(shí)候雖然看不懂,但是感覺(jué)簡(jiǎn)直屌爆了。當(dāng)時(shí)最鄙視的就是減法公式,damage=atk-def,尼瑪小學(xué)生都會(huì)算,一點(diǎn)都不高端。后來(lái)發(fā)現(xiàn)《放開(kāi)那三國(guó)》用的是減法、《傳奇》用的是減法、暢銷(xiāo)榜惡霸《夢(mèng)幻西游》用的也是減法,自己用了一次之后才深深地體會(huì)到了減法公式易做反饋、適合做小差距、適合做小數(shù)值的特點(diǎn),拿來(lái)做MMORPG十分好用。但如果是做MOBA,需要計(jì)算大量的平衡關(guān)系,就最好選用damage=atk*(c/(def+c))這種公式,因?yàn)檫@種公式下確定一個(gè)英雄的強(qiáng)弱只需要這個(gè)英雄自身的屬性就可以。

  2.關(guān)鍵在于怎么用: 同樣是減法公式,《傳奇》和《傳奇xxx私服》的體驗(yàn)完全不同。合適的公式確實(shí)會(huì)讓之后的工作舒爽一些,但最終的體驗(yàn)如何還是要看如何使用。

  3.多動(dòng)手: 網(wǎng)上有很多戰(zhàn)斗公式相關(guān)的文章,一般都是寫(xiě)一下公式,找個(gè)例子算一下,再做幾個(gè)函數(shù)圖,最后總結(jié)一下。我自己就看了很多這樣的文章,收獲不小,不過(guò)還是有很多疑惑沒(méi)有解開(kāi)。其實(shí)很多時(shí)候遇到公式上的疑惑,自己算一算,對(duì)比對(duì)比,在相關(guān)游戲中跑一跑,會(huì)獲得更深入更透徹的理解。

  數(shù)值框架中要明確地列出都有哪些屬性和這些屬性的詳細(xì)說(shuō)明,也要將詳細(xì)的傷害判定流程和傷害計(jì)算公式寫(xiě)出來(lái)。這樣既能防止自己不小心遺忘,也能方便以后的交接。下面這張圖是個(gè)簡(jiǎn)單的展示:


  職業(yè)設(shè)定

  職業(yè)設(shè)定一般而言有三個(gè)基本的目的:

  1.職業(yè)之間相對(duì)平衡(或是循環(huán)克制)

  2.職業(yè)差異化:不同職業(yè)的作用和體驗(yàn)不同

  3.整體戰(zhàn)斗體驗(yàn)好:戰(zhàn)斗節(jié)奏好,戰(zhàn)斗時(shí)長(zhǎng)能夠接受

  在數(shù)值框架中職業(yè)設(shè)定主要包含兩大模塊:屬性模型,技能設(shè)定。


  屬性模型主要是為了方便調(diào)整平衡、戰(zhàn)斗時(shí)長(zhǎng)和職業(yè)差異化,其本質(zhì)就是各職業(yè)屬性的比例關(guān)系,個(gè)人的習(xí)慣是將屬性模型中加入【技能輸出系數(shù)】和【技能生存系數(shù)】?jī)蓚€(gè)數(shù)值,分別代表算上技能之后輸出會(huì)變?yōu)閹妆逗蜕婺芰?huì)變?yōu)閹妆?,然后在技能設(shè)定中根據(jù)這兩個(gè)系數(shù)去調(diào)整具體的技能數(shù)值。

  技能設(shè)定時(shí),需要運(yùn)算多種技能的實(shí)際數(shù)值影響。其中倍數(shù)傷害、屬性類(lèi)buff、眩暈等類(lèi)型的技能是可以直接轉(zhuǎn)換成有效輸出的,相對(duì)比較好算,如果不會(huì)的話找個(gè)數(shù)值策劃群?jiǎn)栆幌戮涂梢浴6?lèi)似于加速、位移、陷阱之類(lèi)的技能難以量化,需要不斷地實(shí)測(cè)調(diào)整。各種技能的具體處理方式不再展開(kāi)描述。

  一些游戲?qū)⒉煌殬I(yè)的屬性比例做的完全相同,然后通過(guò)技能設(shè)定達(dá)到平衡和差異化的目的,十分簡(jiǎn)單粗暴,各位可以嘗試用一下。

  屬性分配

  個(gè)人習(xí)慣用最大模型和系統(tǒng)分配比例來(lái)做不同系統(tǒng)間的屬性分配,再在各個(gè)系統(tǒng)內(nèi)細(xì)調(diào),這樣做的好處是大的改動(dòng)比較快,細(xì)節(jié)體驗(yàn)也能調(diào)。

  系統(tǒng)間分配

  為了方便說(shuō)明,我們假設(shè)不同職業(yè)的屬性比例現(xiàn)在完全相同,這樣我們只需要做一套最大模型。將最大屬性模型中的每一項(xiàng)屬性與對(duì)應(yīng)的各個(gè)比例相乘即可得到每個(gè)系統(tǒng)應(yīng)分配的具體屬性。大致結(jié)構(gòu)如同下表:


  說(shuō)是“最大”屬性模型,但往往擴(kuò)展系統(tǒng)時(shí)會(huì)發(fā)現(xiàn)屬性不夠大,因此到后期屬性比例中一些屬性的比例總和會(huì)超過(guò)100%。

  最大屬性模型一般都是通過(guò)將職業(yè)直接放大得到,但要注意一些公式將各職業(yè)屬性等比放大后會(huì)破壞平衡,比如damage=atk*(c/(def+c))。


  系統(tǒng)內(nèi)分配

  某個(gè)系統(tǒng)的的屬性分配主要包含4個(gè)模塊:

  1.可分配屬性:對(duì)應(yīng)系統(tǒng)間分配出來(lái)的屬性、

  2.分配思路:文字描述,記錄自己在這個(gè)養(yǎng)成系統(tǒng)是用怎樣的思路分配每級(jí)的屬性的,否則到后面自己都會(huì)忘記為何這樣分配,如果有特殊的計(jì)算公式的話我也會(huì)記錄在這里。

  3.分配參數(shù):即使是幾百上千級(jí)的成長(zhǎng),也可根據(jù)幾個(gè)參數(shù)和公式來(lái)調(diào)控。


  4.最終屬性表:通過(guò)上面三個(gè)模塊計(jì)算得出的最終結(jié)果,如下圖


  經(jīng)濟(jì)關(guān)聯(lián)

  做經(jīng)濟(jì)系統(tǒng)時(shí),我會(huì)將每天把消費(fèi)產(chǎn)出全部拿完的玩家定為標(biāo)準(zhǔn)玩家,然后可以通過(guò)產(chǎn)出和消耗預(yù)算出標(biāo)準(zhǔn)玩家的成長(zhǎng)情況。因?yàn)闆](méi)有辦法確定玩家具體會(huì)進(jìn)行什么樣的操作,所以這里的一切計(jì)算都是估算,比如玩家可能優(yōu)先把材料全用來(lái)升武器,也可能材料全都放背包里不用,沒(méi)有辦法確定,所以我就按照玩家將所有材料平均分配到每一件裝備上培養(yǎng)來(lái)估算玩家的裝備培養(yǎng)等級(jí)。

  所有系統(tǒng)的經(jīng)濟(jì)做完后,我們可以得到一張表,里面有玩家在每個(gè)等級(jí)時(shí)各個(gè)養(yǎng)成系統(tǒng)的等級(jí)和玩家的總屬性,類(lèi)似下圖:


  怪物屬性

  有了通過(guò)經(jīng)濟(jì)關(guān)聯(lián)算出的玩家屬性,我們可以很輕松地得出各個(gè)等級(jí)對(duì)應(yīng)的每種怪物屬性。為了調(diào)整方便,我用怪物被玩家打時(shí)的生存時(shí)間和怪物打死玩家要用的時(shí)間來(lái)做參數(shù)。最終會(huì)得到一個(gè)類(lèi)似于下圖的表:


  如果沒(méi)有特殊需求的話,所有怪物都可以從這個(gè)表中直接取值。

  做怪物數(shù)值時(shí)需要注意的點(diǎn):

  1.上圖中的表格沒(méi)有技能,實(shí)際使用時(shí)需要注意技能的計(jì)算

  2.沒(méi)有特殊需求的話,就將所有種類(lèi)怪物的防御統(tǒng)一為一個(gè)值,比如玩家攻擊的80%或是直接用0。

  3.表中是以“格斗家”為標(biāo)準(zhǔn)做的怪物數(shù)值,在一些職業(yè)特性比較強(qiáng)的游戲中需要注意各個(gè)職業(yè)的戰(zhàn)斗體驗(yàn),否則可能出現(xiàn)治療職業(yè)半分鐘殺一個(gè)小怪之類(lèi)的問(wèn)題

  配置導(dǎo)出


  將計(jì)算結(jié)果按照配置的形式關(guān)聯(lián)到另一張表,然后通過(guò)VBA導(dǎo)出配置表,并不是很難,一會(huì)提供代碼,先簡(jiǎn)單說(shuō)下使用我的導(dǎo)出需要注意的地方:

  1.要在b1單元格填入導(dǎo)出后的表名

  2.需要導(dǎo)出的工作表的命名中需要有“-3”


  3.代碼的本質(zhì)是將第六行以下所有有內(nèi)容的單元格復(fù)制到另一個(gè)EXCEL中,并將該EXCEL重命名存在與數(shù)值框架相同路徑下的output文件夾中

  4.用這種方式導(dǎo)出的表需要另建一個(gè)文檔寫(xiě)相關(guān)的配置說(shuō)明

  5.需要注意一些美術(shù)資源的配置

  6.要養(yǎng)成在數(shù)值框架中改表導(dǎo)出的習(xí)慣

  這個(gè)導(dǎo)表VBA并不是很強(qiáng)大,使用不熟練時(shí)很容易出錯(cuò),但一旦用順手之后效率會(huì)提升很多倍。

  VBA代碼如下:

  1. Sub 單表導(dǎo)出()

  2.     If Dir(ThisWorkbook.Path & "\output", vbDirectory) = "" Then

  3.         MkDir (ThisWorkbook.Path & "\output")

  4.     End If

  5.    

  6.     If ActiveSheet.Name Like "*-3*" Then

  7.         With ActiveSheet

  8.             a = .Range("a65535").End(3).Row

  9.             b = .Range("IV6").End(1).Column

  10.             arr1 = .Range(.Cells(6, 1), .Cells(a, b))

  11.             

  12.             Filename = .Range("b1")

  13.         End With

  14.         If Filename = "" Then

  15.             MsgBox (Sheets(i).Name & "中的表名為空")

  16.             i = Sheets.Count

  17.         End If

  18.         

  19.         For Each xls In Workbooks

  20.             If xls.Name = Filename & ".xlsx" Then

  21.                 xls.Close

  22.             End If

  23.             

  24.         Next

  25.                

  26.                 Dim wb As Workbook

  27.         Set wb = Workbooks.Add

  28.         wb.ActiveSheet.Range(Cells(1, 1), Cells(a - 5, b)) = arr1

  29.         

  30.         Application.DisplayAlerts = False

  31.         wb.SaveAs ThisWorkbook.Path & "\output\" & Filename & ".xlsx"

  32.         Application.DisplayAlerts = True

  33.    

  34.         wb.Close

  35.     End If

  36. End Sub

  37.   

  38. Sub 導(dǎo)出()

  39.     If Dir(ThisWorkbook.Path & "\output", vbDirectory) = "" Then

  40.         MkDir (ThisWorkbook.Path & "\output")

  41.     End If

  42.    

  43.     For i = 1 To Sheets.Count

  44.         If Sheets(i).Name Like "*-3*" Then

  45.             With Sheets(i)

  46.                 a = .Range("a65535").End(3).Row

  47.                 b = .Range("IV6").End(1).Column

  48.                 Filename = .Range("b1")

  49.                 arr1 = .Range(.Cells(6, 1), .Cells(a, b))

  50.             End With

  51.             If Filename = "" Then

  52.                 MsgBox (Sheets(i).Name & "中的表名為空")

  53.                 i = Sheets.Count

  54.             End If

  55.             

  56.             For Each xls In Workbooks

  57.                 If xls.Name = Filename & ".xlsx" Then

  58.                     xls.Close

  59.                 End If

  60.                

  61.             Next

  62.                     

  63.             

  64.             Dim wb As Workbook

  65.             Set wb = Workbooks.Add

  66.             wb.ActiveSheet.Range(Cells(1, 1), Cells(a - 5, b)) = arr1

  67.             

  68.             Application.DisplayAlerts = False

  69.             wb.SaveAs ThisWorkbook.Path & "\output\" & Filename & ".xlsx"

  70.             Application.DisplayAlerts = True

  71.         

  72.             wb.Close

  73.         End If

  74.     Next i

  75.    

  76. End Sub
復(fù)制代碼


  其他

  1.數(shù)值框架中包含游戲中所有的數(shù)值,后期框架中將有很多個(gè)工作表,建議做一個(gè)目錄

  2.根據(jù)自己的需求去設(shè)計(jì)框架結(jié)構(gòu),少做無(wú)用功。我曾經(jīng)為了結(jié)果準(zhǔn)確,做了個(gè)很復(fù)雜的戰(zhàn)斗模擬器,做完時(shí)程序的戰(zhàn)斗模塊已經(jīng)做完了,之后我再全都是配到游戲中直接體驗(yàn),再也沒(méi)有用過(guò)這個(gè)模擬器。

  3.用顏色區(qū)分一下內(nèi)容的類(lèi)型,但不要用太多的顏色。

  4.實(shí)際應(yīng)用時(shí)記得在框架中體現(xiàn)出不同層次玩家的數(shù)據(jù),這樣可以幫助你猜想各類(lèi)玩家的體驗(yàn)

  結(jié)語(yǔ)

  文章中的截圖是我臨時(shí)做的一個(gè)簡(jiǎn)化框架,其中只做了“格斗家”一個(gè)職業(yè)的詳細(xì)數(shù)值,但功能基本是完整的。僅供各位參考,歡迎各種交流~

  相關(guān)閱讀游戲戰(zhàn)斗數(shù)值框架搭建入門(mén)

via:GAD

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
怎么判斷一款游戲核心機(jī)制的好壞?
OpenPyXl的使用
EXCEL函數(shù)實(shí)例活用100談》讀書(shū)筆記
VBA實(shí)現(xiàn)多工作薄匯總
VBA對(duì)單元格及區(qū)域、行、列的選擇、寫(xiě)入、復(fù)制、刪除、插入等 ?
策劃丨游戲中的百分比屬性:循序漸進(jìn)的四種方式
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服