標籤:服務 魔獸 戰鬥 定時 經典的 人物 無效 情況 演算法
GameRes遊資網授權發布 文 / 張鋒
在戰鬥設計中需要考慮戰鬥的目的,例如,野外打怪的設計的主要目的是玩家完成任務和掛機,部分野戰需時較長讓玩家有時間發生衝突,設計中盡量簡化玩家的操作,通過一些設計給玩家新鮮的感受。
戰鬥設計的幾點要素:
戰鬥規則
- 攻擊方:攻擊發起方;
- 防禦方:被指定為攻擊方,被擊方;
- 受擊方:一般情況下受擊方=防禦方,發生援護時,援護方=防禦方
判定互斥
戰鬥狀態以圓桌展開,相級屬性互斥處理(如果有的話 反擊、躲閃、格擋等不能並發)
紅名規則
例如,打怪可減少紅名時間,單個怪物的等級換算秒數來計算減少紅名時間
公式設計
設計思想:公式應單一,簡便,易調控。凡採用多公式的項目,都是假設“會失控”後不得已的做法。
目標與傷害:
如果單從目標來判斷傷害來看,會產生非常多的類型。一般遊戲會做PVE,PVP兩條公式,簡單來說就是人打怪和人打人。
而我的建議是Pve和Pvp可以使用同一條公式,只要把握好數值投放即可,因為結果和數值投放是相互影響的。怪物屬性配置的非常低一樣可以營造出高輸出高傷害的戰鬥感受因此dps1 = dps2 = dps3 都是同一條公式。
一般遊戲的做法:
<ignore_js_op>
我推薦的做法:
<ignore_js_op>
援護:
援護可以是一種狀態,在援護狀態下,可以代替被援護方承受一定比率的傷害;援護也可以是一種技能,當觸發後對一定範圍內產生援護效果;援護也可以直接變更判定目標,將本次傷害完全繼承。
固定傷害:
固定傷害是對於特殊目標的一種保護,是和分PVE,PVP公式一樣的一種不得已的做法。單公式如果控製得當是完全可以符合各種例如“鏢車”,“世界BOSS”,等諸多情況的。如提高制禦屬性:防、抗、減免等,將大部分玩家的傷害壓制在某個範圍區間內,如此一來它的效果同“固定區間傷害”的效果會高度擬合(如1000-5000之間)。
綜述
雖然本人並不推薦分公式,但是不得不說,分公式的方法可以用最粗暴的方法,在最短的時間內達到項目的需求,算出各種世界BOSS的平均傷害,參與人數,期間等,萬法有度,各有取捨。
通用判定
出手判定:所謂的通用判定,即在玩家進行攻擊操作時,去判定此次攻擊操作是否有效。攻擊無效有很多種情況,任何一種情況存在均可視為此次攻擊無效。具體流程如下:
<ignore_js_op>
下面介紹幾種相關的公式。
減法公式
傷害=攻擊-防禦 原型 Dam= a - b
公式特點:簡單粗暴、體驗強烈
公式說明
單次輸出傷害 = 攻擊方輸出力 - 防禦方生存力(承受)
該公式是早期遊戲很經典的傷害計算方式,因為計算簡單,看起來比乘除法更易達到平衡。但是攻擊與防禦不等價,必須嚴格控制數值投放,尤其是防禦屬性。一旦防禦投放過高導致不破防的出現(攻擊-防禦 ≤ 0),將導致無法想象的後果。所以,減法公式對數值投放的要求更加嚴格,對於道具付費類遊戲既要保證消費又要保證遊戲數值總體平衡。
應用範圍:早期端遊《石器時代》、《遊戲王》、《征途免費版》,經典的一人滅國,大多數頁遊(快餐類遊戲,鼓勵pvp,可以保證用錢砸數值一定有效)
公式評價
加減法公式因其直觀,有不破防的概念,故而更適合用在量變激發質變的遊戲中使用,因為在攻防臨界值附近哪怕很小的攻擊力和防禦力變化也會對戰鬥的結果產生重大的影響。當你需要做1個人撂倒一群的設定時,加減法公式是個簡單有效手段,並且可以很有效防止數值膨脹過大。
對於攻防的不懈追求更有利營收,但是武器攻速、暴擊收益將較難平衡。
乘法公式
傷害 = 攻擊*(1-防禦減傷百分比)
公式特點: pve玩法生命期更長,易調控,防禦屬性衰減劇烈,例:同為50級玩家打30副本,加法公式玩家可隨意碾壓,本公式依舊會有操作的快感。
公式說明
乘法公式是不同於加法公式的戰鬥公式,模型為:實際傷害=造成傷害*係數。係數一般為防禦屬性折算百分比體現。從防禦直接抵消傷害變為防禦折算減傷百分比,是一個很大的進步,最大的好處是不用再擔心當防禦比攻擊更高時傷害為0的尷尬局面。隨後乘法公式又衍生出很多的變形,如加入等級參數等等,使玩家戰鬥變得更加合理與完善。但乘法公式依舊有一定缺陷,攻擊無衰減,而防禦的衰減曲線十分劇烈,後期防禦的性價比大幅度降低。
應用範圍: 《魔獸世界》、《地下城與勇士》(其實沒有單純的乘法公式,在實際運用中,遊戲裡的戰鬥公式都是在乘法公式模型的基礎上的衍生公式。)
<ignore_js_op>
公式評價
人物防禦力的調整就可以不受攻擊屬性的影響而獨立進行,故而這成了戰鬥屬性複雜遊戲的首選。缺點是玩家理解成本高。
運用此種攻防公式,會對數值平衡計算的難度要求並不高,而且可以很方便的作各種攻擊速度不同的武器裝備,不用考慮到減法攻防公式的弊端。因此可以說,如果你需要做多種攻速的武器,想要在攻速上下文章,乘法公式是不二之選。往往這類攻防模型為基礎的遊戲,遊戲後期,玩家對防禦的追求容易止步不前,而傷害的追求則一如既往的在提升。
除法公式
傷害=攻擊/防禦
公式特點:兼具乘法公式的所有特點 降低了劇烈衰減
公式說明:實際上,除法公式是乘法公式的變體,可拆分成:傷害=攻擊*(1/防禦),其中(1/防禦)是乘法公式中傷害減免百分比的另一種表現形式。正如特點2所說,衍生公式是除法公式真正意義所在
應用範圍:當前運營的大部分遊戲
衍生公式:
- 傷害=攻擊^2/(攻擊+防禦)
- 傷害=係數*攻擊^2/係數*(係數*攻擊+防禦)
- 傷害=係數*攻擊^3/係數*(係數*攻擊+伺服器參數*防禦)
- 傷害=防禦^2(攻擊+防禦) 這個公式突出了防禦的重要性
綜述
首先公式絕對不僅僅只有這三種,很多優秀的遊戲有各種紛繁的公式,不同的遊戲種類會選擇不同的演算法,沒有優劣之分,只有用法巧妙。只要公式可以滿足設計者的需求,就是好公式。
相關理論
圓桌理論
《World of Warcraft》(《魔獸世界》)中關於攻擊判定的一個理論,互斥式隨機,每一次某動作發生,將出現多個相互排斥的結果中的一個,即為“圓桌決議”,也稱為“一次擲骰”。原本是為了防止Tank被BOSS強力“碾壓”而設,後由此引申出針對不同職業的“免傷”方法。
核心設計:圓桌理論優點是邏輯清晰,複雜度較低,運算簡單。 缺點是互斥觸發幾率總和易溢出,需在設計上規避,某些期望不會並發發生降低了表現力, 圓桌理論優先順序高的元素會將優先順序低的元素擠出圓桌,造成永遠無法出現,好處是價值守恒。
<ignore_js_op>
多次擲骰
多次單線:後人在圓桌理論的基礎上提出了多次隨機單線處理的方案。 但是這個理論也會有一個致命缺陷,就是低優先順序屬性會受到進階屬性的影響被迫縮水價值。
<ignore_js_op>
多次多線:後來的大部分遊戲為了增加表現力,造成同場戰鬥多收益,多預期,提出了多次隨機效果並發的理論。 但是這樣的設計會出現高投入下,角色單次戰鬥觸發多種狀態,即躲閃又暴擊,既反擊又連擊。
綜述:不同的遊戲種類會選擇不同的演算法,沒有優劣之分,只有用法巧妙。動作互斥就適合圓桌理論,浮空,僵直,擊飛,擊倒只能觸發一種;回合制遊戲就適合多次多線判斷,假定一回合內大R玩家可以,先躲閃再反擊同時觸發了連擊還暴擊了。
公式梳理
公式梳理是給每個遊戲細節部分的公式進行梳理,不同功能,用途會產生不同的公式。
戰鬥公式:戰鬥相關的公式,往往是用來計算單次攻擊結算。
Dam最終結算 = Dam攻防結算 + Dam暴擊傷害 + Dam附加傷害 + Dam元素。
計算方法有兩種:一種是允許附加傷害為負值減少攻防傷害,一種是單項傷害至多為0,不可減少攻防傷害。
<ignore_js_op>
防一刀斃命:如果被攻擊對方為角色時,當角色的當前HP大於60%會觸發一刀斃命公式。
<ignore_js_op>
遊戲數值策劃屬性篇(三):戰鬥公式的設計