遊戲戰鬥數值模型的搭建過程 一、建系 1、名詞定義建立【名詞定義表】,約定遊戲中出現所有名詞的定義、曾用名,可以有效降低遊戲開發過程中的溝通成本。2、編號規則建立【編號規則表】,約定遊戲中出現所有裝備、角色、怪物、關卡等需要大量編號的ID編號規則的規劃。3、數據表 建立【數據表】,枚舉遊戲中可能出現的所有數據類型的定義。(玩家的整個遊戲過程,其實就是我們通過定義的數據類型之間的相互計算,生成新的數據)1)角色數據a)一級屬性 數據名(力智體敏)、數據類型、取值上限、備註。b)二級屬性 數據名(攻擊防禦血量)、數據類型、取值上限、備註。c)其他屬性 數據名(戰力、經驗、聲望等)、數據類型、取值上限、備註。d)經濟屬性 數據名(金幣銀幣鑽石等)、數據類型、取值上限、備註。2)裝備數據 同上。3)其他數據 同上。3、計算公式約定建立【公式表】,約定以下規則:a)運算原則 i)累乘與連乘 累乘是先相加再相乘,連乘是直接連續相乘。 ii)數據結構 這裡是各種計算公式中關於數據來源的的計算模型,皆遵循以下規則: iii)各屬性的來源約定 遊戲中所有計算公式中用到的各數據的來源的約定與規劃。經過規劃後,我們將清楚地知道每個地方的數據改變將對最終戰鬥結果產生什麼樣的影響。 比如攻擊力的來源約定: b)傷害公式按照上述約定,再次清楚地表述每個屬性之間的運算關係,比如:依據攻擊力的來源約定,獲得攻擊力 第一步:攻擊力*技能攻擊力乘法修正+技能攻擊力加法修正=技能攻擊力第二步:技能攻擊力*100/(100+敵方防禦力)=敵方HP損失 常用的傷害公式形式及其缺點:一、減法公式減法公式最大的好處就是可以無限制的做長線成長,但是也有很多問題:1、成長問題攻擊-防禦=損血 成長過程中,戰鬥節奏失衡攻擊=防禦+損血 左側是攻擊方屬性,右邊是防禦方屬性,所以攻擊方一個數據,防禦方兩個數據會失衡但是這個可以調,需要精心調整戰鬥節奏。2、破防問題 攻擊沒防禦高的時候不破防。3、定位不到玩家的能力線 攻擊上升一定比例,傷害上升不同比。 無法根據某個屬性線的上升推斷玩家成長線的情況。 比如30級時攻擊的範圍為【100,1000】30級時防禦的範圍為【10,2000】這種東西就很無解,傷害戰鬥節奏怎麼算? 不過現在的很多手游里沒有玩家之間的強pvp,這一點問題沒有某些端游里那麼突出。二、乘除法公式1、比例數的封閉性 攻擊*(1-防禦率)=損血 防禦率是一個比例數,是一個封閉數據,無法無限成長。 有種取巧的辦法是,防禦率=1/(防禦力+1),營造一個函數,讓防禦力一直成長下去。 但是玩家不傻,玩家還是能感知到防禦率是沒成長的。2、不好做長線成長 乘法公式到後期,如果想做長線成長,各項屬性的值域會非常非常大(例如D3/DNF都是動不動就幾萬億)。 我現在更喜歡用乘除法公式,一般在用乘除法公式做屬性投放的時候,我會注意以下幾點:1、一一對應(至少是多對一) 公式里的每一個參數,只能作用於一個結果。 2、左右對稱 即EDPS=EHP,這樣可以讓攻防雙方的屬性都在成長。 於是很多策划下意識的做成: 2*攻擊力=防禦力+損血 攻擊力^2/防禦力=損血(但是這個攻擊力太猛) 於是 攻擊力^2/(防禦力+攻擊力)=損血 但是又不等式兩邊不對稱了(天龍八部的公式) 綜上,我現在用攻擊攻擊*修正*防禦率=損血,即攻擊*攻擊修正=1/防禦率*損血 其中,攻擊與血量是可以無限成長的值,可以做到左右對稱。 攻擊修正為技能係數/暴擊加成等對攻擊力的加成,取值範圍大概在【1,10】左右。 防禦率的取值範圍大概在【0.1,1】,即1/防禦率的範圍也是【1,10】。 所以只要攻防屬性合理投放,是可以保證等式兩邊屬性一起成長的 (其實這就是暗黑三數值的設計的原則) c)命中、暴擊等概率公式與傷害公式類似,首先需要清楚地表述每個屬性之間的運算關係。(註:判定的次序一般用瀑布演算法就行) 瀑布演算法:按照給定的優先順序,依次進行是否命中/是否暴擊/具體傷害的計算一般來說命中、暴擊等概率公式有以下幾種計算形式: 沒有公式 即直接投放命中率、暴擊率。 減法公式 比如:實際命中概率=攻方命中概率-防方閃避概率。 相對上面那個來講,這樣做一下減法首先就使得閃避這個屬性變得可控,其次,由於減法的存在,閃避/命中的投放是可以突破100%的,給了遊戲投放更多空間。 但是在這個公式中,當命中小於閃避或者命中大於閃避+100%時,堆命中屬性就失去了意義,因此遊戲每個等級實際的數值投放必須嚴格控制。除法公式 命中率=命中/(命中+閃避) 這裡的命中/閃避其實是命中力/閃避力,這個公式相對上面來說更難理解,但是也解決了上面公式存在的問題——在這個公式中,屬性的投放在理論上是不存在上限的,這為遊戲後續的更新留了餘地。這個公式最重要的兩個特點時: 1. 屬性達到一定數值時,邊際效應變得非常明顯,但不會完全無效。 2. 前期每增加一點屬性會帶來大量的提升。當希望在前期通過數值的刺激來促進玩家消費時,可以考慮一下這個公式。等級除法公式 相對上面的除法公式,這個公式把玩家等級納入了參數。 命中率=A*命中等級/(命中等級+B*人物等級+C) 這個公式最明顯的特色就是,同樣的屬性值會隨著玩家的升級不斷貶值(但是這種公式實際的體驗很不友好,崩壞三就是用的這個公式,天天被玩家罵)。 現在我更傾向於不做命中的概率公式了,原因如下:目前我們的項目中,決定戰鬥結果的可以抽象為以下三條線:1、命中線2、出手速度線3、基礎戰鬥屬性線現在遇到的問題是,玩家無法在遊戲過程中認知到應該優先追求哪條線,對戰鬥加值的認知產生了錯亂。比如我的一個寶石槽位,可以鑲嵌命中率/出手速度/攻擊力,我很難去做選擇。以後我做戰鬥的話,我會砍掉命中線。因為它擾亂價值體系,並且戰鬥感受為負,命中無正面感受,未命中感受極差。並且把剩下的速度和戰鬥線區分開速度作為一種稀缺屬性去投放,玩家能明顯感覺到速度最牛逼,並去追求然後再去追求暴擊/暴擊傷害然後再去培養戰鬥屬性。(其實這也是暗黑三的戰鬥數值設計思路。。我只能說暴雪確實厲害) 二、描點 描點即為確定一個標準人的屬性比例,屬性比例的確定依據取決於我們期望的戰鬥節奏。比如我們期望,在1~100級中,兩個同等級標準人互砍的戰鬥節奏為10S結束戰鬥,則1~100級每一級的ehp/edps=10。那麼我們得到了各等級各屬性之間的比例關係。 戰鬥節奏取決於遊戲類型,即我們想給玩家什麼樣的戰鬥體驗,一般來說RPG都是個位數刀數,ACT遊戲(比如怪獵)都是幾十刀,十數分鐘的戰鬥時長。 三、畫線 確立標準人各屬性的成長線的斜率。各屬性的累加,我們將之抽象為【戰鬥能力】。 【戰鬥能力】可以理解為EDPS*EHP,在乘法公式中存在可計算的絕對【戰鬥能力】。【戰鬥能力】成長曲線的斜率由我們期望X級的人打X-N級的人,跟X級打X級的人有多大差別。即X-N級成長到X級,戰鬥力數值漲了多少,戰鬥節奏發生了什麼樣的變化,有沒有質變(我手殘打不過你,我升個級漲了屬性再來砍你) 此時我們將獲得玩家1~100級時,每一級各屬性的比例。以及1~100級各屬性每級的成長比例。只需要約定一級的某個屬性的具體值(定義值),即可獲得玩家1~100級的各屬性的具體值(推導值)。 玩家的能力隨等級成長,基於乘法的傷害公式,如果我們期望x級玩家的戰鬥能力是x-1級玩家的若干倍,那麼起戰鬥能力成長曲線則必然如圖所示。(等比數列的曲線)註:玩家的能力由兩部分相乘獲得,即edps×ehp,接下來對這兩者分別進行討論:edps的構成:edps=攻擊力×暴擊修正×技能修正……其中各部分的成長曲線一般如下圖所示: 【攻擊力隨等級的成長曲線】,斜率越來越大 【暴擊率隨等級的成長曲線】,一般來說會趨近於某個值(一般為1) 曾經面試的時候有人問過我一個問題,畫出遊戲中暴擊率的成長曲線,然後問後期暴擊率都漲不動了,那麼玩家會不會失去成長感?這個問題其實很好,我們要搞清楚,玩家的成長感的本質是什麼?對於玩家來說,玩家對成長感的感受主要體現在以下幾個方面:1、我的屬性有沒有成長? 如果有就有成長感。但是具體成長了多少玩家很難有直觀的感受,需要在戰鬥過程中去獲得直觀感受。2、我一刀多砍了多少傷害? 即我的edps有了多少的提升。即暴擊率雖然後期漲不動了,但是隨著攻擊-暴擊率-暴擊傷害-技能傷害等等屬性的增長,玩家的edps始終在提升。基於上述曲線的成長率,我們可以畫出edps的成長曲線。 【edps隨等級的成長曲線】,可以看出,即使暴擊率後期不再增長,玩家的edps還是在增長,且斜率越來越大的。 3、我的能力成長後,打之前的敵人戰鬥有沒有變得更加輕鬆? 這一點就是我們討論過的數值成長的本質,即【戰鬥能力】=EDPS×EHP的成長,其成長曲線的斜率由我們期望X級的人打X-N級的人,跟X級打X級的人有多大差別。不過一般來說,玩家更關心edps的成長,因為edps的成長可以有效縮短玩家的戰鬥時間,即所謂的刷怪更快。 ehp的討論與之類似。於是,我們獲得了玩家每一級的每個屬性的期望值。接下來,再按照我們對各種培養系統的定位,將對應的屬性值按照各自的比例橫向分配到各培養系統中。然後再在每個培養系統中做縱向的拆分,獲得每個系統每個培養等級的屬性值。 在進行屬性拆分的時候需要注意的點:有幾個設計會影響同一個屬性? 比如基礎的屬性設計分配。有幾個設計可能會影響同一個屬性? 比如裝備關鍵字等隨機的。有幾個設計玩家可以設置為影響同一個屬性? 比如玩家全帶生命寶石。 四、成面 考慮不同類型玩家的成長線,得到玩家的能力區間(陰影部分)。 注1:不同類型玩家的屬性差異一般由付費引起,其差異的大小取決於我們期望同級的R可以錘幾個同級的非R。注2:玩家的劃分會更精細,比如非R、小R、中R、大R……但他們的能力總會在我們的規劃範圍之內。 陰影部分即為能力中軸線,即策劃設計的玩家在某個等級時的所有屬性能力的上下限,能力中軸線決定了玩家在某個等級時的各種遊戲感受引入怪物能力線,製作怪物數值。如果決定一場戰鬥的勝負,由戰前數值與戰前戰中策略決定的話,戰前戰中策略的比值不小時(比如ACT遊戲),當正常來說標準怪物的能力線應該是這樣的: 前期玩家因剛進入遊戲,對規則不熟悉,此時怪物的難度數值應當較低。隨著玩家對遊戲規則的掌握,怪物的數值難度越來越高,即通過關卡對玩家數值外能力的要求越來越高。最終,怪物的難度應該有相當的強度,否則最後玩家將失去目標,沒有追求。 具體來說,某個等級怪物的數值的由該等級玩家的戰鬥能力和我們預期的戰鬥體驗決定。 預期的戰鬥體驗主要有以下幾個參數:1、戰鬥時長 決定了戰鬥時間會持續多久,不同類型的遊戲有不同的設計(比如現在的卡牌手游是一組怪10~30秒的量級,怪獵這種端游10~30分鐘的量級),由戰鬥時長/玩家的EDPS可以求出對應等級怪物的EHP。2、給玩家造成的損血量 這個決定了玩家的戰鬥壓力有多大。由預期損血量/玩家EHP可以求出對應等級怪物的EDPS。 另外,為了戰鬥體驗的多變性,同級怪物分不同品質,按比例獲得不同的能力強度: 低品質的怪物一錘一個,高品質的怪物將充當boss的角色由此,我們可以獲得各等級各品質的怪物數值,這些怪物會在之後製作關卡時被填進相應等級的關卡中。 推薦閱讀: 相关文章 {{#data}} {{title}} {{/data}}