寫(xiě)在前面
剛才手滑導(dǎo)致文章不小心被刪除了弟胀,本來(lái)只是想進(jìn)行修改的楷力。這里只好重新發(fā)一次了。
首先就是我在文章最后也提到了這篇文章參考了《平衡掌控者——游戲數(shù)值戰(zhàn)斗設(shè)計(jì)》這本書(shū)孵户,并結(jié)合我自己實(shí)際的工作經(jīng)歷和理解而寫(xiě)成的萧朝。這里希望小伙伴們不要誤會(huì)。也推薦對(duì)戰(zhàn)斗數(shù)值感興趣的同學(xué)購(gòu)買(mǎi)此書(shū)夏哭〖旒恚可以看出這本書(shū)的作者數(shù)值經(jīng)驗(yàn)十分豐富,但文字組織能力欠佳竖配。
討論數(shù)值策劃相關(guān)內(nèi)容的文章何址,明顯小伙伴們會(huì)更活躍一些,這也讓我很興奮进胯。所以我打算再接再厲用爪,繼續(xù)講關(guān)于屬性的話題。了解了屬性的基本設(shè)計(jì)選擇胁镐,接下來(lái)便是屬性的投放問(wèn)題了偎血。但是在考慮投放問(wèn)題前。我們首先要考慮屬性的價(jià)值問(wèn)題盯漂。只有知道了不同屬性之間的價(jià)值關(guān)系颇玷。清楚了屬性價(jià)值體系。才能進(jìn)行各成長(zhǎng)模塊的屬性投放設(shè)計(jì)就缆。
這里我不想直接將做法羅列出來(lái)帖渠。我一慣的做法是講述整個(gè)思考過(guò)程。只要大家跟著我的思路很容易理解我究竟在講些什么竭宰。因?yàn)橄嘈判』锇閭円呀?jīng)不止一次聽(tīng)過(guò)減法公式空郊、乘除法公式之類的名詞了份招。也都或多或少知道“減法公式重視防御,乘除法公式重視攻擊”這樣的結(jié)論狞甚。但我要和大家分享的是造成這種結(jié)果的原因脾还。
傷害公式對(duì)于數(shù)值策劃來(lái)說(shuō),一如編程語(yǔ)言對(duì)于程序員是一樣的道理入愧。初級(jí)程序員才會(huì)糾結(jié)于語(yǔ)言的優(yōu)劣鄙漏,中級(jí)以上程序員能知道語(yǔ)言之間的差異,各自的優(yōu)劣棺蛛。以及為了實(shí)現(xiàn)需求應(yīng)該使用怎樣的語(yǔ)言怔蚌。
傷害公式的選擇
這里講的傷害公式,是和戰(zhàn)斗公式存在一點(diǎn)差異的旁赊。戰(zhàn)斗公式應(yīng)該包含了造成傷害前的很多判斷桦踊。
傷害公式通常可分為減法公式和乘除法公式兩大類终畅。這里我們?cè)敿?xì)的討論這兩類公式的特點(diǎn)籍胯。然后在之后的工作過(guò)程中,根據(jù)需求選擇最合適的戰(zhàn)斗公式即可离福。
減法公式
傷害 = 攻擊 -防御
減法公式是那么的清晰易懂杖狼。這里我們假設(shè)防御為10,看下傷害隨攻擊的變化妖爷。
但存在一個(gè)大問(wèn)題:當(dāng)防御>攻擊時(shí)蝶涩,攻擊毫無(wú)意義,極端情況下傷害變?yōu)?絮识。這種設(shè)計(jì)會(huì)導(dǎo)致玩家過(guò)分堆積防御屬性绿聘。也就是說(shuō)防御屬性和攻擊屬性嚴(yán)重的不等價(jià)。
早期游戲的解決方法簡(jiǎn)單粗暴次舌,傷害最小值為1熄攘。想象一個(gè)場(chǎng)面,多名非R玩家圍攻一個(gè)超R玩家時(shí)彼念,不斷產(chǎn)生的1的傷害飄字挪圾。不過(guò)如果你設(shè)計(jì)的就是一個(gè)以養(yǎng)鯨魚(yú)用戶為目的的游戲時(shí)未嘗不是一種方式。這也是為什么國(guó)產(chǎn)頁(yè)游多采取這種方式的原因国拇。笑~
上面這部分有很多小伙伴表示看不懂土思,這里我們以《夢(mèng)幻西游》的物理傷害計(jì)算公式為例來(lái)解釋务热。需要注意的是忆嗜,實(shí)際《夢(mèng)幻西游》的傷害公式還要考慮
修煉等級(jí)
等一些其他的浮動(dòng)參數(shù)。但這里為了方便理解無(wú)視了這些參數(shù):
實(shí)際傷害 = 攻擊力 - 防御力 + (攻擊力*K1)
這里的參數(shù)K1作為1個(gè)調(diào)整系數(shù)崎岂,實(shí)際上就是給與攻擊力一個(gè)保底值捆毫,假設(shè)這個(gè)參數(shù)是0.1,就表示在不破防的情況下依然可以打出10%攻擊力的傷害冲甘。這在一定程度上保證了攻擊力的效用绩卤。而K1可以在測(cè)試中根據(jù)實(shí)際情況進(jìn)行調(diào)整。
可以看出減法公式改進(jìn)的方向都是針對(duì)于不破防的情況江醇。
但是這里不要誤會(huì)減法公式一無(wú)是處濒憋。減法公式實(shí)際上是我最喜歡的公式,因?yàn)?strong>數(shù)值敏感陶夜。設(shè)想一下你每增加1點(diǎn)攻擊力凛驮,(在不會(huì)出現(xiàn)不破防前提下)傷害也會(huì)隨之增加1點(diǎn)。這就是我在前文中說(shuō)的屬性的設(shè)計(jì)是明顯的条辟。
數(shù)值敏感性高黔夭,反饋明顯,這也是很多策略游戲傾向減法公式的原因羽嫡。
乘法公式
乘數(shù)法的公式有幾種變種本姥,這里我們主要解釋兩種。第一種是通過(guò)護(hù)甲計(jì)算出減免系數(shù)杭棵,第二種是通過(guò)攻擊和防御一起計(jì)算出傷害扣草。我們首先看一下第一種公式:
傷害 = 攻擊 * (1-傷害減免百分比)
傷害減免百分比 = 防御/ (防御+人物等級(jí)* K1 + K2)
其中K1和K2是調(diào)整系數(shù)。這里我們按照K1=50颜屠,K2 = 200來(lái)查看傷害曲線如下圖所示:
怎么理解這個(gè)曲線辰妙?隨著防御力等比例提升,收益逐漸放緩甫窟。傷害減免百分比是無(wú)限接近于100%的密浑。這就是為什么應(yīng)用減法公式的游戲,玩家通常更關(guān)注防御力粗井。而應(yīng)用乘除法公式的游戲尔破,玩家的注意力更多在攻擊力上。
那么怎么理解K1和K2這兩個(gè)參數(shù)浇衬?如果這兩個(gè)參數(shù)均為0懒构,那么傷害減免百分比就是100%。人物等級(jí)*K1實(shí)際上是使得人物等級(jí)(或者說(shuō)角色成長(zhǎng))參與到計(jì)算公式中來(lái)耘擂,這實(shí)際上是對(duì)防御力轉(zhuǎn)化為傷害減免百分比的變相削弱胆剧;而K2的作用則在于控制防御轉(zhuǎn)換為傷害減免百分比的一個(gè)密度分布,這種在公式中留有控制參數(shù)的做法在數(shù)值設(shè)計(jì)工作中很常見(jiàn)。
這套傷害公式的應(yīng)用以《魔獸世界》為代表秩霍。分析這款游戲?yàn)楹问褂眠@樣的傷害公式篙悯,結(jié)合我們說(shuō)的傷害公式的特點(diǎn)分析:魔獸世界中并沒(méi)有非常多的人物戰(zhàn)斗能力提升點(diǎn)(就是我們通常說(shuō)的成長(zhǎng)系統(tǒng)),等級(jí)和裝備是最關(guān)鍵的戰(zhàn)斗能力提升點(diǎn)铃绒。設(shè)計(jì)人員不希望游戲中出現(xiàn)所謂的"超級(jí)玩家"鸽照。魔獸世界希望玩家之間的屬性相對(duì)公平,不會(huì)產(chǎn)生大差距颠悬。這里也再次說(shuō)明了我的觀點(diǎn):采用什么樣的傷害公式矮燎,要看游戲整體是怎樣設(shè)計(jì)的,想要達(dá)到怎樣的設(shè)計(jì)目的赔癌。
除法公式
除法公式是在乘法公式的基礎(chǔ)上進(jìn)化得來(lái)的漏峰。
傷害 = 攻擊 * 攻擊/(攻擊 + 防御)
這里我們依然看一下這個(gè)公式的傷害曲線,假設(shè)防御力是100保持不變届榄。傷害隨著攻擊的提升:
有意思的是浅乔,當(dāng)我們將其和減法公式對(duì)比時(shí)發(fā)現(xiàn)。此公式很好的解決了減法公式很頭疼的防御>攻擊的情況铝条,并且在攻擊力提高時(shí)逐漸趨近于減法公式的效果靖苇。不過(guò)這個(gè)公式還是有改良的地方,正如我們上文中所說(shuō)班缰,我們可以通過(guò)加入?yún)?shù)的方式來(lái)讓這個(gè)攻勢(shì)更靈活贤壁。這里就不多說(shuō)了,讀者朋友們可以根據(jù)業(yè)務(wù)需求自行改進(jìn)埠忘。
屬性價(jià)值
各種屬性就好像各國(guó)貨幣一般脾拆,要衡量貨幣的價(jià)值,就要找到貨幣之間的“匯率”莹妒。
攻擊能力可以抽象為每秒鐘造成的傷害數(shù)值名船,簡(jiǎn)稱秒傷DPS;
生存能力則可以抽象成提供多少有效生命值EHP(這里要注意有效生命值和我們通常所說(shuō)的生命值是有區(qū)別的旨怠。)
而攻擊能力和生存能力的平衡渠驼,就是通過(guò)我們預(yù)期的戰(zhàn)斗時(shí)長(zhǎng)(回合制游戲中的回合次數(shù))T:
EHP = DPS * T
但隨著游戲時(shí)間推移,屬性也在不停成長(zhǎng)鉴腻。但戰(zhàn)斗時(shí)長(zhǎng)實(shí)際上是不會(huì)發(fā)生改變的(或者說(shuō)不會(huì)有大的改變迷扇,不會(huì)出現(xiàn)1級(jí)時(shí)打怪需要10秒,60級(jí)時(shí)打怪需要10分鐘的情況)因此爽哎,在任何一個(gè)時(shí)期蜓席,都可以說(shuō)EHP和DPS的對(duì)應(yīng)關(guān)系時(shí)保持不變的。這是屬性價(jià)值評(píng)定的基礎(chǔ)课锌。
屬性的效用是建立于公式體系上厨内,沒(méi)有公式,屬性價(jià)值無(wú)從說(shuō)起。公式體系定義了各種屬性的效用隘庄,也是通過(guò)公式體系,將所有的屬性鏈接起來(lái)癣亚。這方面推薦大家觀看這篇文章:
屬性數(shù)值設(shè)定過(guò)程(二)——屬性價(jià)值模型
已經(jīng)有很詳細(xì)的分析丑掺,這里就不多談了。
后記
如果游戲中角色的屬性沒(méi)有變化述雾,相信屬性的設(shè)計(jì)到這里也就結(jié)束了街州。可惜的是玻孟,屬性成長(zhǎng)幾乎是rpg游戲最核心的訴求之一唆缴,因此在完成以上內(nèi)容之后,我們還需要考慮屬性的成長(zhǎng)黍翎。
下一期中面徽,我們就來(lái)聊聊屬性成長(zhǎng)相關(guān)的話題吧。
參考文獻(xiàn)
《平衡掌控者——游戲數(shù)值戰(zhàn)斗設(shè)計(jì)》