1. 卷首語(yǔ)?數值計算簡(jiǎn)述
以天堂為例的韓國的網(wǎng)游的入侵,把網(wǎng)游界的畫(huà)面要求提高到一個(gè)境界,畫(huà)面表現慢慢變得不再是好網(wǎng)游的門(mén)檻;以魔獸為例的歐美大作的進(jìn)軍,把網(wǎng)游界的系統和內在要求提高到另一個(gè)境界,系統和玩點(diǎn)也變得不再是好網(wǎng)游的門(mén)檻。國內網(wǎng)游目前最大的門(mén)檻在于數值計算——一塊在解決美術(shù)與系統門(mén)檻之前被擱淺著(zhù)的核心部分。
數值計算可以說(shuō)是游戲內部數據組織的最重要的一個(gè)環(huán)節。數值計算的輸出數據是為游戲的數據庫而服務(wù)的。
當然,數值計算的結果并不是一步到位的,這些數據無(wú)法保證不用作絲毫調整即可在游戲中不出一點(diǎn)差錯的達到完美平衡。通過(guò)復雜的數值計算得到的數據,首先會(huì )填寫(xiě)到游戲的數據庫中,而后通過(guò)封測、內測、公測的多次驗證和缺陷暴露,由數值計算人員和公式總設計師共同校正游戲的公式或者修改調整部分的數據,這樣不斷地重復校驗和修改的過(guò)程,游戲的數值才會(huì )慢慢趨于完美的平衡。
2. 數值計算在項目制作中所處的環(huán)節
如下圖所示:
正如上圖所示,數值計算處于系統案細化階段與數據庫填表階段之間,而后者跟客戶(hù)端整合階段并行,客戶(hù)端整合以后則交由QA進(jìn)行測試。從系統案細化完成到客戶(hù)端整合這兩個(gè)階段間經(jīng)歷的時(shí)間比較漫長(cháng),包括系統細化案的程序執行、操作與交互界面的設計和美術(shù)資源的制作與執行三大塊。
因此,可以這么說(shuō),數值計算階段可以說(shuō)是一個(gè)相對比較獨立而又歷時(shí)比較長(cháng)的制作階段。
3. 數值計算人員的要求
數值計算可以說(shuō)是技術(shù)含量相當高的一個(gè)制作流程,由于其要求之高,該制作環(huán)節對其人員的素質(zhì)具有一定的要求:
數學(xué)基礎。數值計算需要經(jīng)常和數字、公式打交道,數學(xué)的基礎是從事數值計算的人員一項不可或缺的能力。高中的數學(xué),各種函數的定義與特征、等差等比數列及其求和等自然絲毫不能忘卻,而高等數學(xué)也需要經(jīng)常用到,包括正態(tài)分布、概率統計、離散數學(xué)等諸多相關(guān)的技術(shù)。一定程度上可以說(shuō),數值計算要求的是數學(xué)專(zhuān)業(yè)的人員,至少是理科出身。
緊密的思維。數值計算需要制作人員具有緊密的思維,公式設計者自然需要如此,每一條公式不僅僅針對一個(gè)數值而已,數值計算過(guò)程中的所有數據就好像一個(gè)緊密而復雜的網(wǎng)狀結構,環(huán)環(huán)相連,牽一發(fā)動(dòng)全身,稍有不慎即會(huì )影響到整個(gè)戰斗系統、或升級系統、或職業(yè)系統、或經(jīng)濟系統……填表的人也絲毫不能錯亂思維,一來(lái)公式是死的,數據需要適應游戲而微調,對微調的數據和公式產(chǎn)生的數據,填表人員需要有敏銳的觸覺(jué);二來(lái),填表人員也需要時(shí)刻清楚并警惕數據間的全局聯(lián)系。
對數字敏銳,乃至敏感。對數字的大與小的概念一定要很靈活而又很敏感。對數字敏感,不單要對單個(gè)的數字的差異有所敏感,還需對整個(gè)數值段都具有敏感的觸覺(jué)。例如一列不同等級的攻擊力數據,需要從中迅速觀(guān)察并在腦海里構造出其數值曲線(xiàn)。
耐苦、負責并能承受壓力。正如前文所說(shuō),一個(gè)游戲的數值計算過(guò)程并不是幾天或一周的事情,而是一個(gè)至少歷時(shí)兩三月才初步完成的過(guò)程,計算完畢以后還要不斷的修正甚至重設計公式。數值人員需要每天對著(zhù)多張填滿(mǎn)密密麻麻的數值的表格,并且經(jīng)常需要心算和筆算,如果沒(méi)有耐苦、負責和能承受壓力,或者喜歡這份工作的人員,勢必很快感到枯燥繁瑣,而更嚴重的是導致數值計算上的出錯,這是比工作效率下降要嚴重百倍的后果。
經(jīng)驗。理所當然,經(jīng)驗是數值計算的寶貴資源。經(jīng)驗分為兩種,游戲的經(jīng)驗和數值計算的經(jīng)驗。前者指從大量的游戲過(guò)程中獲得的感覺(jué)積累和公式積累,這并不單單能靠幾款網(wǎng)游的浸淫就能造就的,無(wú)論單機還是網(wǎng)游,需要涉獵的面很廣,觀(guān)今天很多經(jīng)典的數值模型,大多來(lái)自單機的;后者指從事數值計算工作的經(jīng)驗,同樣是A的x次方,A的2次方的曲線(xiàn)和A的3次方的曲線(xiàn)可能不少人還能輕易感覺(jué)出來(lái),A5和A2(A3+3A),其中的微妙差別就要靠經(jīng)驗才能洞察出來(lái)了,對于很多蹩腳的公式或者不合理的數值設定,很多時(shí)候對公式調整一兩個(gè)參數即可修正到很好的效果,而另外,如果C是由A和B共同推出的,當C出問(wèn)題的時(shí)候究竟調整A好還是調整B好,這也是十分需要經(jīng)驗的地方。
4. 數值計算流程案例
以下從一個(gè)系統相對簡(jiǎn)單的游戲來(lái)簡(jiǎn)單說(shuō)一下數值計算的流程,初版的征服是筆者開(kāi)始研究分析的第一個(gè)數值模型,其結構簡(jiǎn)單卻基本系統完善,下文以該游戲作為數值計算流程的分析案例。
4.1. 主要系統細化
如上圖所示,系統案的細化是做在數值計算之前,而職業(yè)、技能、裝備、物品、戰斗五大系統則是數值計算中不可或缺的五個(gè)最主要的指導中心。
職業(yè)系統。決定游戲中職業(yè)的數量和職業(yè)的特色,這兩方面決定了整個(gè)技能系統,決定了戰斗系統中的玩法,也決定了各個(gè)職業(yè)的主屬性的成長(cháng)比例。
技能系統。技能對戰斗系統是一個(gè)修正的作用,數值計算的目的是要做到數值平衡,而由于技能的加入,技能的平衡也變得首當其沖,而與此同時(shí)還要注意技能和職業(yè)配合后的平衡、技能在PvP中的職業(yè)平衡。
裝備系統。裝備系統是基于職業(yè)系統而產(chǎn)生的,由于有了不同的職業(yè)及其職業(yè)特色,于是有了適合不同職業(yè)的武器和不同職業(yè)穿戴的防具和飾品。由職業(yè)系統衍生出來(lái)的裝備系統,在數值計算中的經(jīng)濟系統的計算,起到了很重要的作用,包括PvM、裝備耐久耗損、裝備價(jià)格、怪物掉落等等。
物品系統。由裝備系統衍生出物品系統,或者一定程度上說(shuō),物品系統也可以自我產(chǎn)生的。物品系統在數值計算中主要指藥品,由于裝備和玩家本屬性帶來(lái)的攻防,導致不同職業(yè)的藥品消耗程度不同、回城速度不同,進(jìn)而影響到數值計算中的藥品價(jià)格、升級消耗、怪物掉落等數據。
戰斗系統。游戲中數值計算最重要的參考系統,戰斗系統為物理攻擊和技能攻擊設計戰斗傷害的計算,而這個(gè)計算的流程和計算的公式,則是數值計算中的核心環(huán)節和主要依據。其次,戰斗系統的設計也決定了主屬性與輔助屬性的換算關(guān)系。
4.2. 初期感覺(jué)設定
在數值計算啟動(dòng)之前,需要做的另一件準備工作是對游戲的初期感覺(jué)進(jìn)行設定。最初需要設定的五個(gè)基本感覺(jué)為:角色的成長(cháng)曲線(xiàn)、角色的經(jīng)驗曲線(xiàn)、游戲花費時(shí)長(cháng)、各職業(yè)屬性比例和屬性校正參數。
角色成長(cháng)曲線(xiàn)。成長(cháng)曲線(xiàn)是設計師給玩家的一種游戲感覺(jué),同時(shí)也很大程度上烘托了游戲的世界觀(guān),角色到底是大器晚成型還是逐步成長(cháng)型,還是像方仲永式的先快后慢型,這幾種不同的角色成長(cháng)曲線(xiàn)決定了真正的數值計算中各項數值隨著(zhù)等級和時(shí)間的增長(cháng)速度和程度。
角色經(jīng)驗曲線(xiàn)。經(jīng)驗曲線(xiàn)也是設計師給玩家的一種游戲感覺(jué),其影響的主要是玩家的升級速度和升級感覺(jué),以征服為例,它是一種五級一階梯的經(jīng)驗曲線(xiàn),如下圖所示:
通過(guò)經(jīng)驗曲線(xiàn)的確定,數值計算中以此為依據,確定游戲的每個(gè)等級的升級時(shí)間、殺怪時(shí)間、回城頻率等時(shí)間相關(guān)的數據,而這些時(shí)間相關(guān)的數據,都是以初期定下的角色經(jīng)驗曲線(xiàn)為參照的。
游戲花費時(shí)長(cháng)。游戲花費時(shí)長(cháng)是另一個(gè)用于確定時(shí)間相關(guān)類(lèi)數據的初期感覺(jué)數據,通過(guò)游戲花費時(shí)長(cháng)的確定,配合游戲的角色經(jīng)驗曲線(xiàn),可以界定出角色每級升級所需要的時(shí)間,從而通過(guò)這個(gè)升級時(shí)間可以推導出游戲的其他時(shí)間數據。
各職業(yè)屬性比例。由職業(yè)系統的細化可以得到各職業(yè)的特征,這些特征主要為兩樣:職業(yè)屬性比例和職業(yè)技能。前者是數值計算前期對角色屬性數據推導的主要依據,而后者在數值計算設計到技能的時(shí)候開(kāi)始產(chǎn)生主要的參照作用。以勇士為例,當確定了勇士的力:敏:體:魔=5:2:3:0的時(shí)候,可以通過(guò)數值計算求出勇士每級的基本數值和裝備后的相關(guān)數值,而后可以通過(guò)這些數據推導出怪物的相關(guān)屬性數據,從而推導出以后的數據。
屬性校正參數。通過(guò)以上的初期感覺(jué)設定可以通過(guò)數值計算推出游戲中的主屬性數據,然而游戲中有更多的輔助屬性數據,比方說(shuō)命中閃避血值魔法值,這些數據的推導需要初期定下的一些屬性校正參數(例如一點(diǎn)體質(zhì)換算多少點(diǎn)血值),推導出了輔助數據,才能對其他的數據進(jìn)行進(jìn)一步的推導。
4.3. 數值計算流程
當主要系統細化完成、初期主要的感覺(jué)也設定完畢之時(shí),可以著(zhù)手開(kāi)始數值計算的工作了,針對數值計算最高層的看的角度不同,其流程也有所不同,但是實(shí)際上他們說(shuō)的是同一回事的,以下按兩種不同的角度去描述數值計算的流程,再配合一個(gè)實(shí)例講解一下前期的數值推導。
上圖為數值計算的其中一種角度上看的推導流程,正如前文所說(shuō),系統的細化和初期定下的感覺(jué)是數值計算的輸入,在真正的數值計算過(guò)程中,可以分為三步來(lái)推導:時(shí)間類(lèi)數據、屬性類(lèi)數據和校正類(lèi)數據。
時(shí)間類(lèi)數據
時(shí)間類(lèi)數據指的是和時(shí)間相關(guān)的數據,這些數據玩家是看不到的,也是很難算出準確的數值的,因為這些數據算是從初期定下的感覺(jué)數據中經(jīng)過(guò)一次加工的感覺(jué)數據;
時(shí)間類(lèi)數據包括每級的升級所需時(shí)長(cháng)、每級玩家殺死怪物所需的時(shí)間、每級怪物殺死玩家所需的時(shí)間、玩家的回城頻率、玩家的尋怪時(shí)間等等;
時(shí)間類(lèi)的數據為后面兩步的數據提供了最重要的時(shí)間屬性,這些屬性用于計算角色的數值、怪物的數值以及經(jīng)濟系統有很大的作用;
屬性類(lèi)數據
屬性類(lèi)數據指的是角色的屬性、怪物的屬性以及物品裝備的屬性;
屬性類(lèi)數據包括不同職業(yè)的主屬性、怪物的主屬性以及物品裝備的屬性、價(jià)格;
這些屬性類(lèi)的數據其實(shí)都是由時(shí)間數據來(lái)推導出來(lái)的,比方說(shuō)由角色的血值、怪物的攻擊力以及怪物殺死玩家的時(shí)間,可以計算出玩家的防御值,同理,也能用玩家的攻擊和玩家殺死怪物所需時(shí)間算出怪物的血值;
校正類(lèi)數據
這些數據往往用于校正前面的一些屬性類(lèi)數據的計算結果,為了數值平衡而計算出來(lái)的用于調整的數據;
校正類(lèi)數據包括技能數據、命中閃避數據、怪物掉落數據等等;
推導校正類(lèi)數據的同時(shí),會(huì )使用校正類(lèi)數據進(jìn)一步推導一些屬性類(lèi)數據,而后再推導出相關(guān)的校正類(lèi)數據,兩者是一個(gè)互相推導互相驗證的過(guò)程。
以下是從另一個(gè)角度看數值計算的流程:
從另一個(gè)角度上看,實(shí)際上數值計算的過(guò)程是先通過(guò)細化的系統和初期定下的感覺(jué)先定下一個(gè)主要職業(yè)的屬性,而后通過(guò)這個(gè)主要職業(yè)的屬性來(lái)推出其他職業(yè)的屬性。計算出各職業(yè)的屬性數據以后,通過(guò)這些數據和時(shí)間數據來(lái)計算出怪物的屬性數據。最后通過(guò)各職業(yè)的屬性數據和怪物屬性數據,計算出裝備的屬性數據和物品的屬性數據,并用這兩者相互驗證。
這種角度上的數值計算實(shí)際上和前一種的計算方法本質(zhì)上是一樣的,只是劃分的方式和看問(wèn)題的角度有所不同而已。
以下以征服的數值計算為例,談?wù)勄捌诘臄抵涤嬎闶窃趺唇缍ê驮趺撮_(kāi)展下去的。
4.4. 數值計算前期案例
以下的例子談?wù)務(wù)鞣某醢娴那捌跀抵涤嬎闶窃趺唇缍ê驮趺撮_(kāi)展的,之所以以初版為例是因為初版沒(méi)有太多其他復雜的系統加入(比方說(shuō)等級藐視系統、技能系統、XP系統等等)。
征服界定四個(gè)職業(yè),而經(jīng)驗曲線(xiàn)如同前面圖例所示,為5級的階梯式增長(cháng)曲線(xiàn),成長(cháng)曲線(xiàn)為逐步成長(cháng)型的曲線(xiàn)。
數值計算最前期最關(guān)鍵的一步是定下每級升級所需的時(shí)長(cháng),以征服而言,在前期定下了從1級練級到頂級大概需要消耗玩家720個(gè)小時(shí),然后用這個(gè)時(shí)間算出一條自然成長(cháng)的經(jīng)驗曲線(xiàn)——征服采用的是最簡(jiǎn)單的方法,用等比數列求和公式求出公比,而后用公比和首項求出各級的自然成長(cháng)的升級耗時(shí)。隨后把每級的升級耗時(shí)轉化為5級階梯式的升級耗時(shí),這樣就完成了最初期的升級時(shí)間計算了。
大概流程如下圖所示:
與此同時(shí)可以開(kāi)始先算出一個(gè)職業(yè)的主屬性數據和部分副屬性數據了,在征服里面是先算勇士職業(yè)的數據的,根據職業(yè)設定的力:敏:體:魔=5:2:3:0的設定,以及初期界定的各職業(yè)初始屬性點(diǎn)數和每級升級獲得點(diǎn)數,可以得出勇士各等級的四項主屬性的數據,而后通過(guò)初期感覺(jué)定下的屬性校正參數可以得出勇士的血值、命中和敏捷。
正如前文所說(shuō),職業(yè)屬性數據計算出來(lái)以后可以開(kāi)始計算怪物的屬性數據了,通過(guò)勇士數據的計算,可以計算出怪物的攻防,再利用勇士和怪物殺死對方所需要的時(shí)間可以分別計算出各自的其他數據,例如勇士的防御、怪物的血值。
當怪物的基本屬性基本計算完畢的時(shí)候,用這些數據重新校正勇士職業(yè)的數據,校正無(wú)誤以后就可以用勇士的數據推導出其他職業(yè)的數據了。
大概的流程如下圖所示:
接下來(lái),通過(guò)各職業(yè)的屬性數據和怪物的屬性數據,通過(guò)戰斗系統的設定共同計算出裝備的屬性數據。比方說(shuō)通過(guò)怪物殺死角色的時(shí)間計算出角色需要具備的防御,通過(guò)這個(gè)防御值和角色本身的防御值計算出防具所帶來(lái)的防御值。
而另一方面,通過(guò)初定的玩家的回城時(shí)間、背包的大小和每級升級過(guò)程中怪物對玩家的累積傷害計算出當級血瓶的補血量,而后通過(guò)初定的單位血的單價(jià)計算出每級血瓶的價(jià)格,通過(guò)初定的血價(jià)和裝備價(jià)的比值求出每級裝備的總價(jià)值,而后通過(guò)不同裝備之間初定的價(jià)格比求出每級的不同裝備的價(jià)格。
在耐久相關(guān)計算上,通過(guò)角色殺死怪物所需時(shí)間、角色當級升級所需時(shí)間以及命中閃避等數據來(lái)計算出當級升級所需要的攻擊次數和受擊次數,從而計算出每次換武器防具前的這個(gè)求和數值,通過(guò)這兩組數據推算出武器防具的耐久,而后通過(guò)相應的武器防具的價(jià)格算出其修理費用。
通過(guò)每級所需的血瓶費用、更換裝備所需費用和修理裝備所需費用,可以推算出當級怪物所需掉落的總價(jià)值,從而推算出掉落幾率、掉落種類(lèi)和掉落價(jià)值量。
由于該過(guò)程相關(guān)太多,基本上涉及整個(gè)數值計算的網(wǎng)絡(luò )了,因此這個(gè)過(guò)程的概括圖這里就不示意出來(lái)了。
最后,開(kāi)始校正類(lèi)數據的計算,計算技能相關(guān)的數據來(lái)調整戰斗系統的平衡度,校正怪物掉落和耐久相關(guān)數據來(lái)調整經(jīng)濟系統。完成了大部分的數據的計算以后,同時(shí)也開(kāi)始重新走一次流程或者用已有的計算出來(lái)的數據重新驗證前面的數據,以達到二次校正的目的。
當這些都基本完成以后,就可以把數據填寫(xiě)入數據庫里面,進(jìn)行外部測試來(lái)對數據進(jìn)行再次驗證和調整了。
5. 卷末語(yǔ)
以上的征服的數值計算流程只是一個(gè)簡(jiǎn)單的例子,其系統結構和數值的邏輯關(guān)系非常直白,而戰斗系統的計算公式和其他輔助數據的推導公式也異常的簡(jiǎn)單,因此以上的流程只能算是一個(gè)入門(mén)的教程。
數值計算的技術(shù)和經(jīng)驗并不是短時(shí)間就能完全掌握并且熟練的事情,建議專(zhuān)門(mén)從事數值計算的人員先從簡(jiǎn)單的游戲的數值計算模型開(kāi)始學(xué)起(比如征服初版),而后開(kāi)始對一些經(jīng)典且數值精良的游戲的數值模型進(jìn)行研究和學(xué)習(比方說(shuō)筆者前段時(shí)間在研究的Diablo數值和RO數值)。
當然,數值人員的基礎數學(xué)能力也要不斷的鍛煉,從高中數學(xué)開(kāi)始重溫,進(jìn)而到高等數學(xué)、概率統計和離散數學(xué),另外,對Excel表格的熟練掌握以及Excel中函數與公式的掌握也是十分重要的,應作為數值人員的基本能力考核條件。
望本文檔能以一敲門(mén)磚的方式助讀者敲開(kāi)數值計算的大門(mén)。