1. 程式人生 > >今天開始做戰鬥,回合制戰鬥程式碼實現第一篇補充,從頭開始,簡單的2d回合制遊戲一些文件方面的知識

今天開始做戰鬥,回合制戰鬥程式碼實現第一篇補充,從頭開始,簡單的2d回合制遊戲一些文件方面的知識

上一篇程式碼貼完了,總是感覺缺少些東西,因為光看程式碼用時候不是很直觀,我們還是需要些文件來輔助理解。好了,所以補充些內容。

2009 年 8 月,《夢幻西遊》同時最高線上人數達到 256 萬(數字比較虛【一機多掛的人比較多】,不過也可以從側面說明,夢幻西遊的成功),那麼回合制遊戲的魅力真有這麼大麼,我們看看。為了滿足玩家的互動需求,結合回合制網遊相對扁平化的玩家群特徵,回合制網遊更多的採用以遊戲社群化作為核心,達到從各個方面滿足不同玩家的需求的目的。

夢幻西遊的核心框架圖

這個任務圖表跟現在上線的手遊有出入,只是為了顯示遊戲玩法的比例資料,總的來說,回合制網遊的社群化是由於玩家互動需求的前提和玩家型別的影響,基於豐

富的玩法玩點支撐構建而成。 



上面這些東西是我們在回合制遊戲中可以體驗的,平時又不是很可以去思考的東西,因為我們玩遊戲可能不會考慮太多它深層次的東西,我們一般最直觀的還是看遊戲畫面,戰鬥是否平衡,遊戲能否給玩家帶來滿足感和成就感,我們還是回到戰鬥體驗

名詞說明:

(1)戰鬥屬性

 等級

 英雄的部分屬性會隨著等級的成長而成長

職業

不同職業英雄可裝備武器不同,其戰鬥屬性也各有特色(當然有些遊戲如夢幻,技能是跟門派走的)

槍兵:平衡性職業,自身帶有閃避天賦,可裝備武器-槍

刀兵:防禦類職業,推薦站前排,可裝備武器-刀(劍)

弓兵:物理輸出類職業,自身帶有暴擊天賦,可裝備武器-弓

方士:法術輸出或輔助類職業,多為全體攻擊,可裝備武器-杖(魔法書)

當然如火紋這樣的遊戲,在武器中會有相生相剋的設定

 生命

決定英雄是否死亡的屬性之一,生命≤0時英雄死亡。

生命在戰鬥中會因敵人的攻擊減少,也會因己方治療類英雄的治療所增加。

攻擊力

影響攻擊時的傷害。自身攻擊力越高,對敵方可能造成的傷害越大。

攻擊力又分物理攻擊力和法術攻擊力

防禦力

減少被攻擊時的傷害。自身防禦力越高,敵方攻擊時可能受到的傷害越小。

防禦力又分物理防禦力和法術防禦力

 命中

決定攻擊時是否成功命中敵方的屬性

閃避

決定被攻擊時是否能成功躲避傷害的屬性

 暴擊

決定了在攻擊時,是否會成功觸發暴擊效果的屬性

免爆

決定了在被攻擊時,是否會成功避免觸發暴擊效果的屬性

 會心

影響暴擊傷害效果的屬性,會心越高出現的暴擊傷害越高

格擋

決定了在被攻擊時,是否成功觸發格擋效果,減少傷害的屬性

擊破

決定了在攻擊時,是否成功避免敵方出現格擋效果的屬性

化解

影響格擋效果的屬性,化解率越高被攻擊時格擋目標的傷害越多,受到的實際傷害越少

 
為了更好的理解回合制戰鬥,我們首先要先把回合制戰鬥分解為幾個元素。

 1、戰鬥場地,稱之為FP(fight place)。即玩家和對手戰鬥時所在的場景。 

2、戰鬥單元,稱之為FU(fight units)。即玩家、對手或NPC的統稱。 

3、戰鬥單元的站位,稱之為UP(units position)。即玩家和對手在戰鬥場景上的位置以及朝向。 
4、玩家狀態,稱之為PS(player state)。即玩家是行動前、行動後、行動中、死亡的行動狀態和麻痺、中毒、混亂等異常狀態。 
5、玩家資源,稱之為PR(player resource)。即戰鬥中玩家擁有及可以使用的能夠對戰鬥造成影響的裝備、道具等資源。 
6、行動順序,稱之為AS(action sequence)。即每個戰鬥單元如何行動。 
7、行動響應,稱之為AR(action respond)。即戰鬥單元對於一個行動是否有反應,以及如何反應。 
8、戰鬥手段,稱之為FA(fight action)。即用於戰鬥的攻擊、技能、法術等。

 9、行動結果,稱之為AR(action result)。即戰鬥中一個行動造成的結果

對戰場地。在回合制戰鬥中,一般情況下,對戰場地是一張和戰鬥觸發地點有關的背景圖,大部分的回合制遊戲,戰鬥場地並不對戰鬥造成影響,當然現在的遊戲如夢幻西遊會用陣法來修正對戰場地的一些功能

戰鬥單元。任何的戰鬥單元,拆開看他就只是一個孤零零的戰鬥單元,少有文章可作,但是如果把他們放在一起看,那就會做出許多文章來。 首先,說一下著名的指揮官系統,在夢幻模擬戰系列裡,主將會對所帶的士兵產生能力修正,因此把士兵保持在主將的修正範圍內就是一個值得考慮的戰鬥因素。而現在的回合制網遊一般是玩家帶寵系統。由此玩家對寵物產生修正很容易理解,那麼,寵物或隊友是否可以對玩家產生修正呢,我認為這個系統修正在網路遊戲中並不是很可取,因為如果種族對組隊遊戲產生影響,那麼很可能會出現對種族,門派或職業排斥的現象,比如說夢幻西遊中就有很值得深思的問題,普陀門派作為加血職業在正常組隊環節是必不可少的,但在夢幻西遊的捉鬼環節中,普陀就變成了雞肋中的雞肋,一個根本不需要加血職業的出現的組隊環境,這時候踢人就成了最優的選擇,很多普陀玩家便攜組隊,組一下午也組不到人,但相反在節日組隊和副本中普陀又成了香餑餑,滿世界喊普陀,這就是遊戲設定能力修正方法考慮欠妥,但也有人說這是為了促進遊戲中的互動多樣化,這樣才能促進玩家交流,在遊戲中多交朋友,來抵消這種不利因素,其實這中解釋也有些勉強,如果玩遊戲一定要靠別人的幫助才能在遊戲中生存,那我覺得的這遊戲的設定不算成功,魔獸世界在5.0後對各職業生存能力作出的修改,就是一次非常大膽的嘗試,在魔獸之前,哪家遊戲公司給戰士搞了個加血技能?(魔獸世界裡面戲稱戰士血線在35%【戰士血量低於35%時,每秒自動回血】)但回合制網路遊戲吃螃蟹的公司還沒出現,所以現階段我認為戰鬥單元的創新時機還不成熟。當然,也不是說戰鬥單元產生的修正不能嘗試,夢幻西遊裡面也加入了些很好的單元互動因素,比如說,師徒,夫妻,其中夫妻的合體技就是一個很好的嘗試【因為夫妻的前提是結婚,在遊戲中結婚代表的是小眾群體,另外結婚畢竟與正常的玩家交友互動有區別,所以對遊戲平衡影響相對較小】。

戰鬥站位。在回合制戰鬥中,如何顯示戰鬥單元也是影響整個戰鬥系統的一個因素之一。一般來說,可以大體分為兩種,一種是偏豎直的(這個現階段一般都採用等視距技術,就是我們常說的45度,純豎直的遊戲因為下面的戰鬥元素可能對上面的元素產生遮擋,所以很少遊戲採用【但不是說沒有,falcom的硃紅之淚就是採用豎直的回合戰鬥】,另外,日本現階段的3d卡牌遊戲有時會用透視回合制,就是我們常說的z軸方向),一種是偏水平的。 
        網路遊戲強調的是多人互動,因此不能採用一般RPG的豎直主視角,而要用偏水平的展示視角,給玩家的感覺是我們和隊友一起在劇場的舞臺上演一場武戲,同時出於玩家展示自己的需求,網路遊戲的玩家角色一般沒有直接背對操作者的。 至於如何站位,對遊戲的樂趣不會帶來本質的影響,但站位對於遊戲的影響卻是一個可以擴充套件的東西。 這個擴充套件來遇敵時可以考慮為正面和側面或者背後,仙劍系列就有背後偷襲的設定。

玩家狀態。不管是即時制還是回合制,玩家狀態都是一個重點考慮的因素。而遊戲設計者正是通過賦予玩家不同的狀態,以及在不同狀態間的剋制以及反剋制來達成回合制遊戲的主要戰略性。一般而言,網路遊戲的PK主要比得就是控制能力,而控制的實質,就是給與對方各種各樣的狀態。沉默、麻痺、中毒、混亂、冰凍……這一點可以說得到了充分的發揮。但是網路回合制遊戲在玩家行動狀態的發掘上還有不夠。 
這裡說的行動狀態主要指行動前、行動中、行動後、無法行動以及死亡。以卡牌遊戲為例,行動前的卡牌是直立的,可以進攻,可以阻擋,可以使用能力。一旦行動過後,卡牌會橫置,變得不能進攻阻擋以及使用能力,而下次到自己的回合,卡牌又會重置回來。這裡有幾個點可以操作,“行動前”狀態不行動會不會對下回合造成影響(比如不行動會造成蓄力狀態);“行動後”是否就不可以阻擋(或者是不觸發“反擊”等);回合開始是否就必須變回“行動前”狀態 (干擾對手重置,讓其無法變回行動前);是否可以針對“行動中”進行操作(這涉及到後面的戰鬥響應);“死亡”單元是否可以繼續攻擊來獲利(OVERKILL狀態:比如以100傷害打死1生命值的對手,你就會額外增加法力等) 
如果要對行動狀態全部進行細化,會付出較大的代價,但如果只是取其中一兩點,就會是一個不錯的創新玩法。

玩家資源。玩家可以擁有的資源包括裝備、藥品以及各種商城用品(免費網遊的話),其主要作用還是對戰鬥單元各種屬性以及能力的強化,往往顯得功能有餘而樂趣不足。其可以做文章的地方就在於使用這些資源的時機。 裝備是穿在人物身上的,當然你可以像火焰紋章那樣每次攻擊都選擇武器,但這意義顯然不大,因此如何使用道具就是個值得關注的細節。我認為比較合理的解決方法是有可以自動使用道具的技能,以免浪費一個回合,造成遊戲的流暢度和爽快感下降。例如,你學會了自動治療這個技能,或者裝備了這個技能,或者寵物具有這個技能,那麼,每當你生命低於一個度,就會自動使用你身上的回覆藥,(這種設定現階段頁遊手遊普遍採用,一般會在戰鬥之後自動使用)這個看似無關緊要的小點,如果和後面要提的戰鬥響應結合起來,會讓回合制遊戲變得激烈精彩,卻又不失回合制的本質。 

行動順序。在回合制遊戲中,不同的行動順序會造成不同的結果,而不同的行動順序規則,會導致遊戲完全像不同的兩個,那麼,回合制遊戲的行動順序,有哪幾種呢: (1)、雙方個體戰鬥單元按照站位順序,依次行動,出現結果; (2)、雙方個體戰鬥單元根據一個數據來決定誰來行動,比如行動條或者敏捷。依次行動,出現結果; (3)、雙方輪流回合,在己方的回合採取按站位順序或按某數值順序來決定所有己方行動順序,依次行動,出現結果; (4)、雙方輪流回合,在己方的回合所有人都操作完之後,統一行動,出現結果,期間不可操作。行動順序按站位或者按某數值; (5)、雙方統一回合,所有人操作完後,統一行動,期間不可操作。行動順序按站位或者按某數值。 
通過以上的5種方式,可以總結出以下三點 
回合制遊戲的行動順序是由站位或者某數值決定的; 回合制的行動方式有二種,A操作-A行動-A結果-B操作-B行動-B結果以及A操作-B操作-A(或B)行動-A結果-B行動-B結果; 
回合制的行動單元有個體、某方或全體三種。 
通過以上的解析,任何的回合制戰鬥都逃不出這些模式,而在行動順序的創新上,也無非是以上三點的組合。根據其它系統的適性,從而選出合理的行動順序規則才是必須考量的因素行動響應。為了避免回合制戰鬥的乏味無聊,我們是否應該在其中加入一些操作因素呢?網路遊戲不能像單機一樣,隨時可以發動當敵人攻擊時作出防禦(即時遊戲除外),但我們完全可以利用類似怒氣、鬥志等屬性,只有在它們大於某個值的時候自動防禦,而且在時機的判斷上我們不要那麼苛刻,讓大部分人都可以掌握,加入這個簡單的操作會給玩家帶來類似動作遊戲的樂趣;第二種是類似EQ2(無盡的任務2)的英雄時機,這屬於需要玩家間配合的一種時機掌握模式,比如一個玩家滿足條件,發動了英雄時機,那麼英雄輪盤不斷的往下旋轉,輪到的每一個人都滿足輪盤所要求的操作(比如進行攻擊、防禦、用火系法術攻擊等),英雄輪盤就會繼續下去。當整個英雄輪盤都滿足的時候,就會釋放出一個巨大的能量,這個能量是什麼就取決於發動者的選擇(對對手造成巨大傷害,己方所有人速度大幅提升等)。  

戰鬥手段。說起回合制中的戰鬥手段,有以下五種:普通攻擊、法術攻擊、技能攻擊

技能按照一般來說,可以分為三種模式:主動技能、觸發技能、持續技能 主動技能如同法術,需要施展來產生作用;持續技能就是學會即使不施展也會產生作用的技能(類似魔獸世界的天賦),而要讓戰鬥看起來更爽快和豐富,對於戰鬥時機的分解,以及在這些分解點可以觸發的觸發技能,才是要說的重點。 一個戰鬥過程可以分解為如下幾個點:點選進攻後——移動到目標前——攻擊目標中——造成傷害後——返回原位中——返回原位後 
不妨來設想這樣一個戰鬥過程:A點選進攻B後,自動觸發了“暴擊”“無視防禦”;移動到目標前沒有觸發對方的“阻擊”;攻擊目標中沒有觸發對方的“閃避”,但是觸發了對方的“反擊”,各自造成傷害後,A觸發了“再次攻擊”,對B造成再一次傷害;返回原位中由於對B造成了OVERKILL狀態(上文有提到),A增加法力值;返回原位後,由於A被反擊,生命值過低,觸發了對方C的“追擊”,被打死。 
整個戰鬥豐富多彩、充滿了可控中的不可控,而對於玩家來說,很多枯燥的操作由這種方式來替代完成,流暢度和爽快感都會大幅提升。 

 
行動結果。每一個行動都會產生一個結果。但是這個結果如果是確定不變的,就會少了很多樂趣。如何來進行設定,讓行動的結果,或者說戰鬥的結果有所差異呢,有以下幾個著手點。 (1)、首先在數值公式上,需要有一點的亂數,也就是說,即使是相同的A、B,相同的情況下,普通攻擊也不會次次都造成相同的傷害,但這些結果需要在一個點附近均勻分佈; (2)、可以通過一些系統來調節最終的結果,最簡單來說就是五行系統。水系的普通攻擊打到火系的敵人身上,會造成額外的傷害(相生相剋現階段簡化的趨勢比較明顯,抗性在魔獸世界中已經被移除,這種東西並不是很好考量)。 (3)、讓行動結果的出現不代表戰鬥單元操作回合的結束。我們完全可以讓玩家再次行動,通過法術、通過觸發條件(比如殺死一個戰鬥單元)、通過道具都可以讓按布就班的回合製出現一些變化。【這個在網路遊戲中還沒有應用,如果做這種考慮,需要先用數值測算一下,畢竟如果一場戰鬥中,有人多動,就擠壓了其他人遊戲控制的時間】 (4)這個在我國遊戲界算是一個很大的貢獻,就是遊戲《天使帝國》這款遊戲在上個世紀90年代問世,一直持續到本世界初,是大宇的主打品牌,它對遊戲的創新性是空前的,甚至我覺得就單從遊戲的體驗方面,它比仙劍更好,因為仙劍國外同質的遊戲有日本的《英雄傳說》而且人家比我們做的更好,但《天使帝國》卻是我們獨創的,今年晚些時候《天使帝國4》將上市,可能很多小夥伴沒玩過這款遊戲,不知道它的特點,我在這裡介紹一下,正常的遊戲行動結果結束後,會有兩種情況,一種是勝利,一種是失敗,但《天使帝國》卻另闢蹊徑開創了無失敗體驗的遊戲,當玩家打不過敵人的時候遊戲結束後沒有gameover,而是觸發了打不過的劇情,根據一個新的發展支線繼續劇情,最後通過這個劇情最後回到主線上去。

   最後,每個玩家30秒的操作時間這種設定最好不要改動,這點可以說是回合制的根本。

具體的戰鬥體驗可以玩玩夢幻西遊,原始碼可以參考上一篇,因為這一篇是上一篇的補充,所以沒什麼太多的篇幅。