一個角色該有什麼屬性?屬性應該有什麼樣的作用?要不要加點?加點屬性的效果又怎樣設定?
什麼樣的戰鬥體驗就有什麼樣的屬性——數值需求是建立在玩家體驗上的,而不是憑空產生的。當你希望戰鬥發生在一個無視地形和地圖大小的地方,你當然不需要為角色設定一個跟移動有關的屬性。當你希望玩家的攻擊能真實的反應其傷害能力時,你就不該做過多的防禦屬性。當你希望戰鬥過程要非常講究操作技巧時,那麼你就需要加入移動速度和技能CD。玩一款好的遊戲,留意遊戲內的屬性給你帶來了什麼樣的體驗。
1.屬性設定原則
在符合玩法體驗的前提下,屬性設定需滿足三個原則:可理解,可見性,收益差異。
可理解:一個好的屬性必然是符合常識的,玩家可以輕易的理解它的作用。
可見性:屬性在戰鬥中發揮的作用能被玩家明確地感知到,他知道這個屬性在起作用。
收益差異:不同的屬性應該在戰鬥中發揮不同的作用,或者在不同的情景下存在收益差異。
按這些原則,或許你能創建出一些有趣的屬性。
1.1 例子——《神界:原罪2》的法術護甲和物理護甲
客觀來說,傳統意義的防禦不是一個好的屬性,因為他不怎麼可見,他削弱了攻擊的效果,而玩家經常不知道防禦是如何作用的。我知道他降低了傷害,但具體是怎樣作用的呢?同樣道理,控制抗性等抵抗類屬性也是這樣,對玩家來說,這些屬性的效果都很不透明,經常讓玩家感覺不到他在起作用,而往往一旦你把屬性的效果數值提高到玩家可以感知到的地步,通常就會導致一系列不平衡的問題。我們看看《神界:原罪2》是怎麼對防禦屬性進行再設計的。
《神界:原罪2》的物理護甲和法術護甲實質是血的一部分,法術傷害對法術護甲起作用,物理傷害對物理護甲起作用,從整個戰鬥過程來說,其效果實質和減法公式是一致的,即是從(Atk-Def)*T=Hp 到 Atk*T=Hp+(Def*T)的轉變,Def*T即為防禦在一個戰鬥過程的總效果,無非將其轉化為Hp的一部分。這樣做的好處是防禦的效果更加可見,而且不會影響防禦效果的外延(定義角色物法個性)。
另外,為了戰鬥多樣化的目的,《神界:原罪2》的狀態有多種轉化和組合效果,這是特色。但如果不加限制,這些組合效果強度就不好控制了。如果要做控制,就要引入類似控制抗性等屬性。但上面說到,控制抗性可見性很差。那麼《神界:原罪2》怎麼做的呢?他做了一個很精巧的設計:將狀態效果分為物理類和法術類,物理類狀態在物理護甲未削為0時,基本不命中,當削為0後,必然命中。
問題:《神界:原罪2》這種設計還會帶來什麼樣的影響和好處?要做哪些配套設計?
1.2 例子——《暗黑3》的回血屬性
《暗黑3》的回血屬性有幾種,如擊回,秒回,擊殺回復,球回等等。為什麼要弄這麼多呢?因為《暗黑3》是一個很硬核的刷怪遊戲,戰鬥基本就是遊戲主體,《暗黑3》的核心是build,實質就是構建在不同情境下收益差異,不管是輸出還是生存能力。因此在生存能力上,設計者就需要設計出幾種不同的生存機制,而這些生存機制在不同的情景上收益是不一樣的。
例如擊回,適合於攻擊頻率非常高,堆攻速可以站擼的build。
秒回,適合攻擊頻率低,不能站擼的build。
擊殺回復,適合片傷殺小怪,低層快速刷秘境的build。
球回,適合走位靈活,堆拾取半徑的build(為了保證拾取半徑這種半雞肋屬性有效性,暴雪做了很多)。
在屬性設定上,如何做到各屬性存在收益差異是個很考經驗的事情,需要設計對戰鬥本身有非常深刻的認識,否則很容易會導致屬性無效。
保證多種屬性同時有效又有收益差異是件很困難的事,所以別輕易加屬性類型。
2. 加點屬性的設定
一般除了一些基礎的戰鬥屬性,我們還會做一些加點屬性,例如力敏智體這類。大家在各種遊戲中都碰到這類型屬性,那麼,這類型的屬性是為什麼存在的呢?它們無非就是一些屬性組合的封裝,但從對戰鬥的屬性作用上來看,貌似多餘(很多遊戲會為加點屬性設定一些特別的規則讓他們有效起來)。
事實上,加點屬性的提出,源於以下幾個需求:
1)想要讓玩家有一定的自由度,但又怕失控。
2)發展方向需要概念和個性封裝。
3)降低加點門檻,直接讓玩家對戰鬥屬性進行加點,門檻太高。
因此,當我們要做加點屬性的屬性關聯時,就要先要明確我們的角色有什麼樣的較優的發展方向和個性,並根據性質拆分好加點屬性的有效性範圍,保證他們都有效。
2.1 RO的加點屬性設定
RO是一款很經典的加點遊戲,裡面各種職業都有多樣化的加點方式。他是怎麼做到的呢?我們先來分析下他的屬性效果。
我們看到,除了體質這個純生存向屬性外,其他屬性都是和輸出能力有關,其輸出能力的作用機制是不一樣的,且全職業通用(由於技能的原因,各個職業收益是不一樣的。例如盜賊偏向攻速,法師偏向魔法攻擊和技能冷卻,這其實就大體定義了各個職業的加點方向)。而敏捷,智力,靈巧等也帶了一定的輔助生存向屬性(迴避,法防,冷卻)這就定義了以這種加點為主的build必然會有不同的生存方式,而這些生存方式也必然會有缺陷,因此玩家在加點時,為了應對多樣的情況,就需要進行加點權衡。
以技能帶動主力加點,通過主力加點形成特色和build,然後為每個build留缺陷。
記住build的核心是各種環境下的收益差異,不要做完美的build。
屬性價值模型是整個戰鬥平衡的基礎,應該怎麼一步步去建立這個模型呢?
1. 確定核心體驗
確定核心體驗是建立屬性價值模型的第一步,但是,究竟什麼樣的體驗才是核心體驗呢?是單純的標準戰鬥時長嗎?是的,這個很重要,但不是全部,要做好戰鬥,核心體驗必須要細化,不同的遊戲類型會有不同體驗要求,設計者不但要對此有概念,而且要有經驗,因為你需要知道玩家會重視什麼,而且這種體驗要怎麼樣才算好,這要求設計者對戰鬥有更深層的認識。
例如: Q5項目英雄要放技能,那麼怎麼樣放技能體驗才算好呢?
在爐石,我一個N費隨從,比N-1費能優勝多少?
在Q1,總體戰鬥時長是核心節奏,但玩家其實更關心的還有自身職業的情況,例如我作為輸出職業,我關注的是輸出能力,那麼我能多少回合錘死敵人? 這些與角色屬性成長相關的體驗,都是需要在一開始定義出來的。
所以體驗遊戲是很重要的,就算你知道怎麼做,但你可能沒有相關體驗。
2. 戰鬥時間——傷害與生存能力的橋梁
在角色能力中,傷害能力(Dps)和生存能力(cHp,這裡值有效生命,而不是單純生命屬性)是兩個完全不同的能力,他們嚴格來說是無法等價的。但由於我們對戰鬥的時間有特殊的需求,因此,可以通過時間將兩種能力建立一個恆等關係:
cHp=Dps*T
這條公式的恆等邏輯顯然易見。而屬性的存在,最終都會轉化為cHp和Dps的變化值,即 ∆cHp和∆Dps,而在恆等式裡,不管是cHp變化或者Dps變化,最後都會引發T的變化,即 cHp+∆Hp=Dps*(T+∆T) cHp=(Dps+∆Dps)*(T-∆T)
為了保證我們戰鬥時間的恆定,我們會認為,對於造成相同的∆T變化的∆Hp與∆Dps,是等價的,他們的追求成本應該是一致。也就是說,導致相同的∆Hp的屬性變化,是等價的,導致相同的∆Dps的屬性變化,也是等價的。這就是屬性價值模型的基礎。
歸根結底,屬性成長的出現更多是內容消費的需求,不是遊戲本質的需求。屬性在不停成長,但我們要保證遊戲體驗不變,所以才會有這個恆等式。
3. 公式體系的選擇——屬性效用的定義和連接器
屬性的效用是建立於公式體系上,沒有公式,屬性價值無從說起。公式體系定義了各種屬性的效用,也是通過公式體系,將所有的屬性連結起來。公式體系包括傷害公式和一連串的配套公式,核心是傷害公式。在一般的RPG遊戲設計中,流行著兩種傷害公式形式:減法公式和乘法公式。要理解一點的是,公式是一種實現設計需求的工具,形式固然可以變化,但減法公式和乘法公式經過多年的驗證和沉澱,有著其非常豐富的內涵。我們需要深刻理解兩種傷害公式的特性和其適用範圍,在理解的前提,再根據自身項目特點進行再修改。
減法公式特性:理解門檻低,可見性強,數字量級越小邊界效應越強,外掛係數麻煩,有不破防問題,較強烈的屬性獲得感。
適用情景:小數值量級,回合制(離散過程),注重htk的戰鬥,較固化的攻防投放。
乘法公式特性:理解門檻較高,可見性差,沒有邊際效應,攻防效用穩定,外掛係數方便,無不破防問題。 屬性獲得感較弱。
適用情景:全數值量級,即時制(連續過程),注重戰鬥時間的戰鬥,較靈活的屬性投放,強調屬性累積。
根據項目的具體情況選擇合適的公式體系,根據具體需求對公式進行調整。
4. 減法公式下,屬性的效用計算
根據我們前面所說,當確定了戰鬥時間T和戰鬥公式後,我們就可以根據恆等式cHp=Dps*T來確定具體屬性的效用。
例如在減法公式裡可以看到,1點Hp和1/T點Def的效用時絕對等價的,可以合併為cHp,最後還原為cHp=Atk*T,1點Atk對T的影響為:
所以,正常來說,1點Hp的效用與1/T點Def等價,1點Atk的效用與T點cHp等價,貌似沒啥問題,但當你外掛一個係數時,麻煩來了,任何一個係數都會跟著Def,不管這個係數是不是防禦屬性。例如如果有技能係數s,那麼就會有自身的有效血量會被一個敵人的攻擊屬性掛鈎,意味著敵方的攻擊越強,你的有效生命會越高。這是很麻煩的事情,意味著你很難去量化Def的效用。
解決方案:
a.固化屬性投放。讓Def=aAtk,那麼公式將會成為Hp=(1-a)Atk*T*r,在連乘的公式下,cHp和Dps都非常好定義。
b.將公式改為Hp=((Atk+a1+a2)*a3*a4-(Def+d1+d2)*d3*d4)*T,但這個公式從體驗層面是不行的,比較違背常規認知,而且這樣做了公式的可見性明顯就差了。但如果遊戲沒有命中閃避,只有暴擊,還真有遊戲這麼做。有些遊戲暴擊或使用技能可以破防,就是用的這類型的公式。
c.用乘法公式
5. 乘法公式下,屬性的效用計算
在減法公式的一些缺陷下,乘法公式是如何做的呢?為什麼會出現A/(A+k)這種公式類型?
可以看到,1點Hp和1/a點Def的效用時絕對等價的,可以合併為cHp,最後還原為cHp=Atk*T,1點Atk對T的影響為:
所以,在乘法公式下,1點Hp的效用與1/a點Def等價,1點Atk的效用與T點Hp等價。而且乘法公式本身就是連乘結構,理論上每個屬性都互相獨立,cHp和Dps都很好定義。由於A/(A+1)的結構,cHp最後都會最後都會轉化成Hp+a*Def+b*Dodge+c*Parry(想想魔獸為何有圓桌機制的說法)。
對於其他屬性,也可以先假定其他屬性和∆T不變的情況下,求得其效用(注意,屬性效用,價值和屬性投放權重都不是一個東西,雖然他們有關係)。
6. A/(A+K)形式的特點
a.由於K是成長的,根據A/(A+K)的形式,要保持在某個百分需要越來越多的A,這個對挖坑非常有利,也就是你可以投放越來越多的屬性,卻不用擔心影響節奏。
b.有上限,A/(A+K)是無限趨近於某個值的。
c.K的計算可選擇自身等級或對方等級,以實現不同的設計目的。
d.如果要實現生存能力的差異,需要設計幾種投放曲線,例如魔獸分布甲皮甲鎖甲板甲,裝備的基礎護甲不算入屬性池,只是為了實現不同的生存能力差異。嗯,《暗黑3》設計師更省事一點,他們直接固化到角色特色上了,這樣他們的裝備護甲就不需要有多套數值了。
7. 戰鬥力——給玩家看的戰鬥力和實際戰鬥力
戰鬥力是我們耳熟能詳的設定。但要說明一下,我們一般說的戰鬥力,實質是一個服務於玩家自評和攀比的系統,為了符合直覺,給玩家看的戰鬥力一般是累加型公式(其實就是一般就是屬性量*屬性權重之和了,這裡的屬性權重更多是考慮投放角度的),不管你什麼屬性漲了,戰鬥力都會漲,但從我們上面說的定義,戰鬥力應該是f(自身cHp/標準Dps*自身Dps)的形式,生存能力和輸出能力是相乘關係,而不是相加關係。為什麼是這樣呢,我們不妨用一個極端情況去假設,假如戰鬥力是生存能力和輸出的相加關係,那麼0攻N血的角色是否擁有戰鬥力呢?很明顯,是沒有戰鬥力的,除非他帶嘲諷或一些其他效果,如果他帶嘲諷,那麼實質是增加了隊友的生存能力,可以用他為隊友增加的戰鬥力去計算其真實戰鬥力。
在這裡,我們不妨用爐石卡牌去說明一下。爐石白板隨從有其身材標準,和很多人想的一樣,3費標準的身材是攻+血=7,但事實上,不會總是這樣,如果出現0/7身板的白板,他必然是個廢卡,1/6和2/5基本上也挺廢的,對於這些卡,大部分人的想法是必須配個嘲諷的貼片才能用。為什麼呢?因為一張白板隨從卡的強度,其實是看他在能放上場的時期能提供多少點傷害,也就說,1個3/4的,按在2,3費時期,隨從的平均攻擊大概是3.5攻,也就是一個4血的隨從大機率能站2回合的,因此他大概率能提供6點傷害,反正會比4/3要好點,更加不用說1/6啊,2/5啊甚至6/1這種垃圾身材了。
建立了屬性的價值模型,我們就可以做屬性的規劃和投放了。
1. 上下限屬性投放法(或者叫最大模型法??)
根據cHP=Dps*T的恆等式,我們可以分別拉出cHP合Dps和等級Grade相關的曲線,如Dps=d(Grade),那麼cHP=d(Grade)*T,然後根據已設定的屬性效果和公式體系,從Dps和cHP分拆出去,就可以獲得各屬性關於等級的曲線,例如,一個遊戲只有攻擊,護甲,氣血,技能係數,命中率,閃避率等幾個屬性,使用乘法公式,那就會有總傷害公式:
然後就有cHp=Hp+a*Def+b*dodge,通過核心節奏定義好生命,護甲,閃避的效果比例,即可獲得Hp,Def,dodge的投放曲線。Dps那邊也是同理,不管s或hit是全成長過程固化還是需要投放,根據需要分好比例去分解就可以了。hit也是可以通過A/(A+k)形式轉化的,只不過k就要跟Atk相關而不是Hp了。 由於RPG一般都會涉及多樣化的角色能力,相同屬性的投放曲線不可能完全一樣,我們就需要為一個每各屬性的上限和下限分別拉投放曲線,並控制其極限情況下的T不會超出我們的預期。設定Tmax=cHpmax/Dpsmin,Tmin=cHpmin/Dpsmax,然後分別獲得cHp和Dps的max,min曲線。或者有時候我們只關心Tmin,那麼我們只需要拉cHpmin和Dpsmax就好,cHpmax,Dpsmin最後會根據屬性價值和投放自由度反推就好。
2. 屬性池投放法
屬性池投放法是一種靈活的屬性投放方式,他一般很少用於整體的屬性投放,而是用在一些玩家可以自由選擇屬性的系統中。例如加點,裝備寶石裡的各種隨機屬性。該投放放法將一個系統投放的所有屬性看成是一個池子,不管投放什麼類型屬性,不管各個屬性投放多少,最後只要擠滿這個池子就行了。因此屬性投放法會引入以下幾個參數:容量池大小S,屬性權重Q,屬性量A,屬性範圍n,根據前面的設定,有:
其中k是一個修正係數,它的作用是在一些無限制的屬性池裡,玩家過於追求單一屬性導致該屬性突破設定上限。一般來說,如果不是希望完全自動生成屬性的系統,我們也只是用該公式規範投放是否平衡而已,我們可以定死屬性量和屬性範圍,讓系統投放既具備一定的自由度,也可控。這樣的情況很常見,例如加點屬性就是。前面說過怎麼去關聯加點屬性和基礎屬性的關係,那麼具體一點加點屬性等於多少基礎屬性呢?用這條公式就可以解決。
最後說下屬性權重Q,它一般就是屬性效用,但是在設定權重的時候,要考慮屬性的適用情景。例如防禦這種屬性,假如它的效用是10,攻擊的效用也是10,但在玩家的心目中,攻擊的價值會比防禦高,為什麼呢?因為攻擊的適用情景範圍要大於防禦,很多時候PVE戰鬥,用不了多少防禦,但攻擊基本上是100%情景適用。這個時候,你就得考慮降低防禦的權重,但降低權重的同時,你得控制好投放上限。 通過上下限投放法和屬性池投放法,基本就可以應付大部分系統的投放需求了。
3. 屬性規劃——系統維度
在確定了角色的整體屬性數值後,由於不會在一個單一系統投放所有的屬性,我們要在系統維度對屬性進行規劃。不同系統的投放比例可以根據該系統的在遊戲定位和有效性去設定。另外,不一定是所有屬性在每個系統都一致,一方面要看系統需求,一方面要看屬性定位。另外屬性劃分比例要留意閾值問題,特別是減法公式體系的項目。
一個屬性分配例子
如果你不想讓某個屬性的最大和最小值差異太大,可以在某些固化途徑中集中投放它(如裝備基礎屬性),在一些自由度高的途徑,如加點,寶石等減少它的投放。典型的例子就是防禦,看看《魔獸》和《暗黑3》是如何處理防禦的投放的。
4. 屬性規劃——用戶維度
在網路遊戲設計,我們需要將一部分屬性拿出來賣給玩家。那麼,假如我們拿了30%的屬性(這個比例要看遊戲定位)出來,該如何規劃這些屬性呢?應該從哪個系統拿出這屬性,而這些屬性又該賣多少錢?這些問題從來只有一個答案,就是來自於項目和市場本身的需求。數值同學需要理解這些需求,並根據需求劃分屬性。同樣地,這個維度的屬性規劃也要注意閾值問題,特別是減法公式體系。
在遊戲中,玩家花錢是自由意願的,怎麼能保證各種R就能追求到對應比例的屬性呢?這就涉及到另外一個屬性規劃的問題了:性價比曲線的管理。
5. 性價比曲線管理
屬性投放的性價比曲線實質就是屬性價值和追求難度(可以理解為錢或者時間)的比值變化曲線,為了讓玩家跳坑,所有屬性追求難度一開始都是玩家可接受的程度,然後我們會把這個難度提高,對應就是性價比越低。那麼從曲線本身設計的分析,我們就需要關注3點:起點,曲率變化,終點。
為了強化玩家對屬性價值的預期,我們會把所有系統的屬性性價比曲線趨向一個定值,但在到達這個定值之前,該曲線是可靈活設定的。例如在某個等級新解鎖了一個功能,為了讓玩家能跳坑,得為它設定一個有吸引力的性價比。 另外,結合前面的總量規劃,系統的屬性投放就會形成不同的定位:如低總量高性價比(大眾型消費),高總量高性價比(門檻較高的中R型消費)等等,曲線的曲率平坦或陡峭,也會影響該系統的屬性投放個性。
全文完,謝謝大家捧場。