遊戲技能該如何設計?這二篇乾貨帶你瞭解
首發“騰訊GWB遊戲無界” ,2021年5月發文
篇一:
作者:Bruce
騰訊互動娛樂 高階遊戲策劃
技能設計是遊戲中非常重要的一部分,那麼,如何才能快速設計出好玩的遊戲技能?是否能透過模組化組合的方式達成目的?本文作者分享了一些關於技能模組設計的想法思路,希望對大家有所啟發。
“當你想要設計一個角色或者BOSS,需要用到技能表現,結果特性組花費時間開發之後,結果驗證不好玩,或者驗證的效率太慢。有沒有辦法在過程中,快速調整技能的設計思路?”
之所以想寫這個文章,是因為2019年在做技能模組設計,簡單來說就是用UE4Gas的底子,搭建一個策劃自主技能設計的開發模組,希望策劃應用到技能設計時,能透過模組化組合的方式,提供快速滿足策劃設計思路的工具和工作管線。
歷經幾個月的摸索,算是出了點成果,所以就想總結開發過程中的一些東西,跟大家分享一下自己關於技能模組設計的想法思路。
一、遊戲技能是什麼?
既然我們們說到模組技能設計,先來看看遊戲技能指什麼?我找了各種說明,綜合對比後,給出這麼一段話。
遊戲技能指的是遊戲中透過遊戲行為造成攻擊、防禦、輔助等效果的方式。
隨著遊戲玩法元素更多的衍生融合,我們可以看到,在主流的遊戲型別中,大多都會涉及遊戲技能的應用。
所以針對不同的遊戲型別,關於遊戲技能定義,我這裡加了一條個人看法,遊戲技能的表現會依託於不同遊戲環境,有不同的效果和表現方式。
二、如何打造滿足多種遊戲型別的技能設計模組?
我當時做這個內容的時候,在想雖然是面對不同型別的遊戲技能,但我們先不用陷入到具體的技能設計中,而是從各種型別的遊戲技能具體效果上抽離出來,找出遊戲技能的必要元素。
必要元素也就是組成技能的基礎型別模組,希望類似於樂高的大顆粒積木一樣,可以用這些基礎型別模組去自由組合成不同技能的方式。
帶著這個思路,重新梳理了市面不同型別的主流遊戲技能,我們們不管遊戲技能型別的差異化多大,無非逃不開六個基礎型別模組,依次為:
1、技能的觸發方式;
2、技能的釋放條件;
3、技能的釋放選擇;
4、技能的表現方式;
5、技能的生成機制;
6、技能的影響效果。
三、技能的觸發事件
關於技能的觸發方式,通常大家的理解,也就是說技能是怎麼觸發的?
傳統的觸發方式理解為:
一種是主動觸發:也就是主動按鍵觸發的方式;
另一種是被動觸發:而被動觸發的條件就非常廣泛,比如受傷觸發、死亡觸發、命中觸發等等觸發方式。
而我們所說的觸發方式,不會只歸納為主動和被動的方式,而是依照觸發事件來劃分。
比如有些主動技能中,也存在主動按鍵之後,需要滿足某個觸發事件,才會觸發技能行為。
比如莫甘娜的“靈魂鐐銬”技能,從傳統意義上來說,是個主動按鍵的技能,但觸發的方式中,還需要驗證範圍觸發的方式,也就是說範圍中檢測到敵人後,才能夠觸發。
說到這裡,大傢伙可能就會吐槽了,這東西我也知道啊,不就是設定觸發事件嗎,這個設計技能的時候都會做,這有啥可瞎白活的?
別急,待我一一道來。
為了選擇足夠通用和樣本性的觸發事件,我對市面上技能機制比較全的幾款知名產品進行分析後,橫向對比了四百多個技能的設計,發現這些技能雖然各有特色,但是技能觸發的方式幾乎囊括在八種觸發事件中。
給八種事件做了簡單命名,分為:
攻擊、命中、時間、空間、狀態、屬性、死亡、驗證。
當然這八種型別的事件,不是單獨存在的,還可以透過多種事件耦合的方式,做出更多特性的展現,不誇張的說,這八種事件已經能夠滿足絕大部分的技能設計需求。
1、攻擊觸發事件
攻擊觸發:簡單理解來說,就是發起攻擊之後,會觸發的行為事件。
常用在攻擊方式變化和攻擊發起後,影響角色屬性和效果的技能效果中。
需要說明的是,攻擊觸發事件,只跟攻擊發出有關,邏輯上只要攻擊發出就會觸發事件,而不需要檢測是否命中。
當然這種用法的方式會透過額外的判定條件,來給攻擊觸發事件增加不同的特色用法。
比如在射擊型別遊戲《無主之地》的槍械特性中:攻擊行為之前會判定是否滿足消耗子彈數量?如果滿足,則每次射擊會判定消耗兩發子彈,繼而觸發了攻擊事件,透過消耗2發子彈的方式,提升了槍械的攻擊效果。
再說一下攻擊觸發事件的另外一種應用方式,在《王者榮耀》中有這樣的設定,英雄在普通攻擊到一定次數之後,會觸發攻擊方式的改變。
以MOBA遊戲《王者榮耀》中魯班舉例:
每次攻擊行為事件會觸發記錄攻擊次數的行為,當攻擊次數=4的時候,下一次攻擊行為會改變攻擊方式。
而在SLG型別的遊戲《鴻圖之下》中,有一類連擊技能,攻擊觸發事件中透過機率判定的方式,觸發技能效果。
關於攻擊觸發事件的應用方式還有很多,這裡只是列舉了一些常用案例。
當然無論應用方式怎麼變化,攻擊觸發事件的核心,就是邏輯上透過攻擊觸發的行為事件。而在這個應用過程中,設計者透過新增不同的條件判定,就會為攻擊觸發事件增加有趣的特性使用方式,以豐富技能的效果。
2、命中觸發事件
命中觸發:判定單位(敵人/自己)在程式邏輯上被有效命中之後,會觸發的行為事件。
在命中觸發事件中,通常用到的是判定命中之後,針對“發出攻擊者”和“被攻擊者”的效果反饋,以及命中之後的條件判定的反饋。
比如《APEX英雄》中“班加羅爾”的“疾步”技能:當自身被命中後,觸發了持續時間內,提升自身移動速度的技能效果。
在這個技能案例中,命中觸發事件所判定的命中目標為自己,當自己被命中後,移動速度屬性提升。
而在《魔獸世界》戰士的“新鮮血肉”技能中:則判定為我命中敵人之後,會觸發的行為事件。這種情況下,所判定的命中個體就是敵人。
以上兩種技能,說明在命中觸發事件的這種機制,除了要判定命中的邏輯之外,還要記錄命中發生的雙方單位的資訊。
還有一種命中觸發的應用方式,是對攻擊命中發起人和被命中的人產生了雙向影響。
《英雄聯盟》中“披甲龍龜”的“尖刺防禦”技能,在命中觸發事件的用法中,首先是敵人命中自己會對自己造成傷害,但在自己被命中後,也會反彈給命中自己的人造成傷害。
當然我們這裡所說的命中事件,不單只是用在角色命中的技能當中,還會用在命中Actor(邏輯判定為可被攻擊命中的物體)的判定當中。
例如《APEX英雄》中,瘟疫釋放的毒氣罐,就可以被攻擊命中,提前觸發爆炸的效果。這個也是遊戲技能中,最常用的一種方式,對於某個特定Actor的命中判定的反饋。
所以受擊行為,首先是從程式邏輯中如何定義命中,而在命中行為事件的應用中,最基本的用法就是記錄“攻擊”和“被攻擊者”資訊,從而在技能效果中,擴充套件受擊行為事件的技能效果。
3、時間觸發事件
時間觸發:滿足特定時間區間或節點的行為結果,觸發的行為事件。
那麼問題來了,特定時間區間、特定時間節點到底該怎麼解釋?
首先是滿足特定時間區間的用法,我會解釋為在持續時間內的才能觸發的行為事件,各種遊戲型別中常用的持續性技能都會用到類似的方式。
比如《APEX英雄》惡靈的維度裂隙:開啟技能後,持續時間內,開啟兩座傳送門,己方隊員碰觸傳送門,會觸發在兩座傳送門中傳送角色的技能行為。
這裡的時間觸發事件的先決前提是滿足在傳送門存在的特定時間區間內。
而滿足特定時間節點的用法,則是要求時間到達某個特定的節點時,才能觸發的行為事件,在很多遊戲中,延遲生效的技能多會用到類似的方式。
比如《英雄聯盟》時光老人的“定時炸彈”:指定目標地點投擲一個定時炸彈,3秒倒數計時之後炸彈會爆炸。這裡所描述的3秒之後,就是滿足特定時間節點最常用的一種方式。
在滿足特定時間節點的用法中,還有一種滿足遊戲規則定義的特殊時間節點,比如四季、晝夜、年份,甚至是透過技能效果改變當前時間節點,以滿足觸發技能行為事件。
在《DOTA2》的暗夜魔王就屬於這種的典型應用,在《DOTA2》的遊戲規則中,設定了關於晝夜切換的遊戲規則,暗夜魔王在黑夜這個特定時間節點階段中,自身的技能會獲得額外加成,甚至自身還擁有著直接改變當前時間節點的技能方式。
當然關於“時間”這個概念,還有很多衍生的用法,在這裡我們主要是提煉“時間觸發事件”的概念,以上的三種案例是用來闡述關於時間觸發的應用方式。
4、空間觸發事件
空間觸發:以指定Actor為中心進行空間範圍檢測,滿足預設條件後,觸發的技能行為事件。
在空間觸發事件中,通常大家會看到兩種方式的應用,範圍內有效條件的持續監測和範圍邊界的條件檢測,前者應用途徑更廣,幾乎各種遊戲型別都能看到,而後者應用的環境相對較少。
對於範圍觸發的事件,我們最多接觸的就是類似光環型別的技能,比如《魔獸爭霸》中的“荊棘光環”,又或者是《APEX英雄》中惡靈的“魔音傳腦”,都是類似的應用方式,以自身為中心進行對範圍的目標,進行實時檢測,只要目標觸及範圍內,並且滿足判定條件,則觸發技能事件。
除了實時檢測直接生效技能效果,還有對於主動觸發的判定,比如《英雄聯盟》中墮落天使的“靈魂鐐銬”:
在釋放技能前,以自身為中心進行範圍檢測,當檢測到敵方目標後,滿足技能觸發條件,觸發了對範圍內敵人進行傷害和減速效果;如果沒有檢測到,技能則無法被觸發。
在《APEX英雄》的直布羅陀中防護罩技能,則是空間邊界的條件檢測,以召喚Actor的位置為中心,一定空間範圍邊界,開啟一個立體的防護罩,防護子彈和爆炸傷害。
這裡的防護罩是設定空間範圍邊界的條件檢測,當爆炸發生且爆炸會影響空間邊界時,進行空間範圍條件檢測,檢測爆炸點處於防護罩的邊界位置,當爆炸發生在防護罩的一側時,護罩將會擋住爆炸傷害。
關於“空間”這個事件的應用,除了我們這裡的示例介紹,以圓形/球形範圍的單次或者持續時間的檢測觸發的方式;還有在空間範圍的形狀變化,以及更多在條件判定的應用。
比如《英雄聯盟》的安妮的焚燒技能,她的技能空間範圍檢測的則是錐形的範圍。
5、死亡觸發事件
死亡觸發:以指定Actor處於邏輯死亡狀態判定後,觸發技能行為事件。
死亡狀態,大多數遊戲中對死亡的邏輯判定,會聚焦為“生命屬性為0,並且無法進行輸入指令操作”,是遊戲中最常接觸的一種狀態效果。
比如《APEX英雄》中的幻象,當幻象處於邏輯“死亡”的狀態時,在死亡位置生成了假的Actor,自己短暫隱身。
所以關於死亡觸發行為,核心都是判定Actor處於邏輯死亡狀態,觸發的技能效果。
比如《APEX英雄》亡靈的“死亡圖騰”技能應用,在指定的位置生成一個圖騰,處於圖騰有效範圍內,玩家進入死亡狀態後,會觸發在圖騰附近復活重生。
而在《魔獸世界》中關於死亡的另外一種用法,是在遭受判定為死亡狀態的時候,轉化為抵擋傷害,暫時保持存活狀態。
這兩種都是死亡狀態時,立刻觸發了技能效果,從而改變了死亡狀態。
還有一種是確認了死亡狀態,但是設定了即使處於死亡狀態,玩家依然在死亡狀態下的技能效果。
《英雄聯盟》中死歌的死亡契約技能效果,當自身處於死亡狀態時,改變了死亡的邏輯判定,在延長的技能效果時間內,玩家可以繼續釋放技能。
關於這種用法就是一種複合機制的使用方式,首先是在死亡狀態觸發時,其次是關聯了時間觸發事件的應用,所以在觸發行為事件的應用中,除了單一觸發機制判定以外,通常還有多種機制的複合應用方式。
6、屬性觸發事件
屬性觸發:檢測遊戲中Actor屬性數值的變化,觸發技能行為事件。
通常在遊戲製作的時候,都會對遊戲中的Acotr,這裡我統稱為遊戲角色,設定基礎屬性,用來衡量各種行為狀態的標準。
比如最基礎的生命值、移動速度、攻擊速度等等,而技能相關的還有用來衡量技能消耗的藍條或者能量等。
《英雄聯盟》中奧拉夫的狂戰之怒,是最典型的屬性觸發方式,每次當血量屬性降低的時候,提升自身的移動速度。這種屬性觸發的應用方式,實質上就是實時監測自身某種屬性的變化,滿足條件判定後,觸發技能行為效果。
而《APEX英雄》辛烷的興奮藥劑技能,對比狂戰之怒,同樣是減少生命值,提升移動速度的技能效果。
但是在興奮藥劑技能中,是主動觸發的方式,技能邏輯是當辛烷使用興奮藥劑技能的時候,持續時間內,提升移動速度,並且自身“生命值”屬性發生變化。
還有一種是當屬性發生變化後,需要判定屬性是否達到臨界值,這就需要觸發的同時針對這一次屬性變化進行驗證,來確定是否達到技能觸發的條件臨界值。
屬性觸發事件中最常見的觸發方式,就是針對屬性數值的變化進行判定,當滿足條件時就會觸發技能效果。
7、狀態觸發方式
狀態觸發:檢測遊戲中Actor狀態效果的變化,觸發技能行為事件。
我們在遊戲製作中,除了屬性數值之外,還有一種常見定義的內容,就是Actor在不同行為下的狀態效果。比如最常見的加速、減速、暈眩、沉默等異常狀態效果,通常是遊戲中定義Actor在遊戲中附加的正向或負面狀態效果。
以“沉默”這個狀態效果為例,遊戲中通常定義為Actor處於沉默狀態下將無法釋放主動技能。當然每個遊戲中關於狀態的邏輯定義會有些差異,關於各種狀態效果和定義方式,將會在後續的狀態篇中詳細說明。
比如《APEX英雄》亡靈的“沉默”技能應用,投擲裝置,對範圍內的敵人造成無法使用技能的狀態效果。
當然大家有可能會疑惑,這不是“沉默”技能的直接效果嗎?怎麼會歸到狀態觸發效果中?
通常遊戲中對於屬性和狀態觸發的用法,是針對屬性或者狀態發生變化後,驗證這兩種變化的標準。當滿足變化標準後,就會觸發技能行為事件。
以《魔獸世界》中刺客的“藥膏專家”為例,技能效果是針對目標驗證是否中毒,如果滿足中毒狀態的話,將會返還8點能量。
此處的狀態觸發事件的使用方式就是針對特定狀態“中毒”的目標進行驗證,滿足驗證目標,將會觸發技能事件。
當然還有圖上這位,玩過《英雄聯盟》的玩家,都知道是誰,疾風劍豪,經常有我方“托兒索”,敵方劍豪的美譽。
“狂風絕息斬”的技能是個典型的狀態判定的觸發行為。技能觸發的條件,是判定當目標處於被擊飛的敵方目標空間範圍內,才會觸發技能事件。
疾風劍豪的觸發機制,是一種需要高階技巧或者隊友配合的機制,所以發揮的場景,需要玩家對於技能的銜接理解和熟練度都有一定的要求。
而通常這種需要狀態觸發的機制,一般都會定義為遊戲中的通用機制。比如減速、擊飛、擊退等這種大多數條件下滿足的技能機制。
8、疊層驗證觸發
疊層驗證觸發:驗證遊戲中Actor上的疊層BUFF,滿足驗證條件後,觸發技能行為事件。
從嚴格意義上來說,疊層驗證並不是遊戲中統一歸類的一種觸發事件,更多是一種輔助其他觸發事件的條件驗證方式,使用場景,也是會跟其他的觸發機制融合使用。
不過疊層驗證這個機制出現的頻率太高,幾乎在任何遊戲型別,任何遊戲方式中都會出現,所以在這裡把疊層驗證當成一種歸類的觸發方式來說明。
例如在《英雄聯盟》中,這種疊層驗證的使用方式就層出不窮,目前英雄總共155位英雄,技能中帶有疊層驗證的英雄超過了100位。
以黑暗之女安妮為例,嗜火,在施放4次技能後,安妮的下一個傷害技能將會造成暈眩。此時的疊層驗證應用,是將安妮每次釋放技能後,給自身新增BUFF,滿足疊層驗證次數後將會觸發“暈眩”狀態效果。
而沙漠死神內瑟斯的痛苦汲取,則是疊層驗證和死亡觸發的融合應用方式,判定當敵人死於痛苦汲取的技能效果時,會給自身疊加傷害值。
在《魔獸世界》術士的翻騰痛楚技能中,則進一步把疊層驗證的應用方式進一步融合。首先是驗證當痛楚BUFF疊加到第4層時,開始造成傷害,其次是痛楚BUFF疊加層數後,將會增加傷害效果。
在疊層BUFF中,通常我會把BUFF分為兩種:
一種是遊戲意義中的有效BUFF,意味著對於Actor有實質意義上的效果BUFF,比如剛才提到的翻騰痛楚BUFF的應用效果,此型別BUFF擁有實質的效果,並且承擔了疊層驗證的功能;
而另一種則是無效BUFF,這種BUFF,對於Actor沒有實質意義,是作為記錄需要驗證的標準,比如黑暗之女安妮的技能次數的應用效果。
寫到這裡,關於技能模組化技能設計之-觸發事件篇也暫時告一段落,個人在寫文章的過程中,又重新梳理了一篇過程,深覺遊戲中技能應用的廣博,所以本文中的總結僅代表個人的理解,大家如果有什麼其他見解,也希望能夠跟作者交流。
篇二:
ARPG遊戲技能該如何設計?流程是怎樣的?
作者:魚骨頭
ARPG遊戲技能施放需要經歷哪些流程?本文作者將其拆成三個階段,今天將和大家聊聊技能有效性檢測。如果你也在煩惱遊戲技能設計,看完這篇或許能幫你少走一些彎路。
大家好,我是魚骨頭,今天我想跟大家聊一下ARPG的技能流程。在這裡我先將技能整個流程簡單的拆成三個階段,如下圖所示,分別為技能有效性檢測、技能施放流程、技能生效。
簡單來說,技能有效性檢測是解決技能是否能放,對誰放的問題;技能施放過程是解決技能怎麼放的問題;而技能生效階段則是解決技能產生了什麼樣的影響的問題。本篇為第一篇,即技能的有效性檢測部分,見下文。
一、前言
技能有效性檢測一般都包含消耗、冷卻、射程和施法目標四種變數的檢測。其中消耗的規則沒有太多想講的,本文略過。冷卻方面只簡單聊一聊,重點還是施法目標和射程的檢測與其相關規則。
二、冷卻規則
技能冷卻時間簡單聊聊,比較通用的設計就是技能在冷卻期間則無法施放,只有冷卻時間為0時才可施放。這一設計想必無需贅述,以下聊一個小的最佳化設計--裝載冷卻。
在某些遊戲中,技能有“裝載冷卻”的概念,即擁有技能的實體單位在擁有技能時,會預先進入一個“裝載冷卻”後才可正常施放技能。“裝載冷卻”和“技能冷卻”是兩個不同的變數,前者只會在擁有技能時生效一次,後者會在每次施放技能時生效一次。
比如某個角色在剛開始生成時,普攻裝載冷卻為0,但是技能裝載冷卻為5,則會開局直接施放普攻,等待5秒後才會開始施放技能。這兩個變數可以很好的控制技能的施放節奏,尤其是AI的技能施放節奏,這兩個引數相互配合則可以很好的還原出《刀塔傳奇》的技能施放節奏。
在《DNF》這款遊戲的競技場中,為了平衡性和對抗節奏設計的需要,也會使高等級的技能在開局時擁有不同的裝載冷卻時間。
三、目標與射程的設計
因為目標和射程的關聯性較強,所以打算一起來寫。在這之前,魚骨頭先將技能分成兩種模式,就施放時是否一定需要一個目標而分為“強目標”技能與“弱目標”技能。
3.1 強目標技能
強目標技能指的是技能施放時,技能射程內必須要有有效實體目標,否則技能是無法施放的。這種技能型別也就是大家常說的鎖定型技能,在MOBA遊戲中,英雄的普通攻擊普遍採用的就是這種設計。
在這種設計下,因為技能射程內可能並不存在有效目標,因而玩家並不總是使用技能指令就能立即施放出技能的。但是從體驗感上來講,玩家使用了技能指令,還是期望立即能獲得對應反饋的。
在有效目標超出射程時,大部分遊戲中的強目標技能都會執行追擊邏輯。即系統會讓施法者尋路至合適的距離後,再嘗試施放該技能。注意,追擊本身不屬於技能流程中的內容,而是為了使有效目標滿足有效射程而做的最佳化規則。
追擊一般都會設定一個追擊範圍,即表示施法者只會對追擊範圍內的有效目標發動追擊行為。如果追擊範圍內都沒有有效目標的話,也就會提示玩家“該技能需要有效目標”,也就是用一種即時的錯誤反饋來提醒玩家該技能目前無法施放。
在這裡,值得一提的是,不管是追擊或是直接進行錯誤反饋的提示。從體驗上來講都是會降低操控感的,從玩家操控行為上而言,他的意圖是發動技能,但是實際上技能並未發動。追擊是一種補償措施,而錯誤提示則是直接的錯誤反饋。
所以,就提升技能操控體驗而言,魚骨頭想詳細聊聊弱目標鎖敵下的相關設計。
3.2 弱目標技能
與“強目標”技能對應的“弱目標”技能,則是在技能施放時,不要求技能射程內必須要有有效的實體目標,也就是說技能是允許空放的。這種設計體驗上的好處主要是反饋即時,玩家發出施放技能的指令即可立即看到角色自身施放對應技能。
這種方案更多的運用在ACT遊戲中,提升了操控感,但也因為操作反饋對即時性的要求,則捨去了目標選取的過程,與之代替的是對方向的選取或系統自動選取有效單位。
方向型技能
對方向的技能很好理解,就是對某一個方向施放的技能。近戰、遠端、位移等技能都可以單純的只對某一方向使用。
在設計上一般都是優先採用移動搖桿方向,如果沒有使用搖桿,則預設為角色前方。我們可以將玩家搖桿在UI中的二維座標,轉換成角色水平地面的二維座標。這樣就構建了一個角色朝向與移動搖桿方向的對應關係。
這種技能一般用於比如翻滾(閃避)、召喚等不需要目標的技能。因為沒有對有效目標的需求,所以本篇就不多講,在下一篇中會聊到這些技能在流程上的設計思路。
系統自動選敵
因為系統都已經省略了目標選擇的相關功能,那麼與之代替的則是需要設計自動選敵的規則。如何能做到儘可能少操控的情況下保證技能可以攻擊到目標,並且是攻擊到想要攻擊的目標呢?在這裡,魚骨頭打算聊一下很多ARPG中慣用的自動鎖敵的機制。這個機制細節較多,我們分幾步來講。
第一步-篩選目標
在選目標時,首先我們需要剔除掉技能射程外的所有目標,只保留射程內的目標。不同技能射程不同,因而保留的目標數也就不同。
如果射程內沒有任何目標,則空放技能。空放技能一般都會處理成對自己空放或對角色前方某個虛擬的錨點座標進行施放,這裡便不多贅述,見下圖即可。
如果技能射程內有目標,則選擇一個目標並對該目標施放技能。為了反饋清晰,我們一般會設計成技能會朝向目標施法,但是這也並不絕對,不是所有技能都會朝向目標施法的,這個設計者自行決定即可。至於目標選擇的規則,在第二步會詳述。
龍捲風技能射程遠,射程內有目標則朝向目標施放
第二步-挑選“最近”的目標
在敵方單位較多的情況下,玩家使用普通攻擊,則直接攻擊最近的敵方單位,無疑是一個即省操作又能充分發揮技能效用的方案。
但這種方案也有一個很明顯的問題,那就是最近的敵方單位往往不是我想攻擊的敵方單位。那麼我們則需要加入一些更加智慧的判定,即判斷出什麼單位是玩家想攻擊的單位。在這裡,我們需要結合一些設計者自己的想法,把玩家想攻擊的單位改成設計者認為的玩家想攻擊的單位。
以下魚骨頭會從怪物性質、鏡頭視野、搖桿操控、攻擊範圍幾個點來詳細闡述最佳化規則。
怪物性質
在挑選目標時,我們可以加入敵方單位威脅性的概念。即不同怪物有不同威脅性,這種威脅性會影響距離的計算。有些怪物影響率更高,有些怪物影響率更低,一般依據普通怪,精英怪,BOSS怪三個梯度來劃分即可。
在實際應用時,我們將之前距離判斷新增了威脅性影響比率,結果為距離*影響比率。譬如普通怪是1,精英怪是0.9,BOSS怪是0.8。那麼同樣是距離10米,在系統計算過影響比例後,三者經計算後距離分別為10,9,8米,也就是說,如果普通怪不能在8米以內的話,玩家角色施放技能則會始終攻擊BOSS怪。
按照這個思路,我們還可以將怪物的強度、健康程度都納入計算範圍,可以讓玩家角色優先攻擊更弱的或更容易擊殺的單位。這些都看設計者具體需求,不多贅述。
鏡頭視野
經過上述計算後,玩家角色會攻擊一個計算後的距離最近的目標,但卻可能出現這個問題:遊戲中鏡頭偏平視,距離角色也比較近,玩家明明看到前面5米有個目標,按下普通攻擊按鈕期待著攻擊這個單位,結果角色突然180度轉身攻擊了後方一個距離2米的原本看不到的敵人。雖然這符合上述的邏輯,但不符合玩家的預期。
所以在上述的邏輯中,我們還需要考慮到鏡頭的視野。一般來講,我們讓遊戲鏡頭可以看到的單位享有更高的優先順序即可,與上述怪物性質規則一致。比如在鏡頭外的目標在進行距離計算時為1.1,那鏡頭外的目標除非明顯比鏡頭內的目標更近,否則都會攻擊鏡頭內的目標。
但是依然會存在一些問題,儘管運用了上述規則,但角色始終可能攻擊鏡頭外的一個目標。並且鏡頭本身其實還有另一個問題,那就是目標位置相對於角色位置不太合理的話,比如目標在鏡頭邊緣,我們攻擊時觀感並不舒服。那麼我們就需要鏡頭旋轉到合適的角度,以解決這2個問題。
這時候我們需要改變鏡頭三樣引數,水平旋轉角度、垂直旋轉角度、與目標錨點的距離。
這三個引數可以讓鏡頭在一個合適而又舒服的位置來觀看角色攻擊目標,但如果角色攻擊所有目標都需要鏡頭旋轉,又會使得鏡頭晃動過於頻繁。
因為每款產品在這方面設計都各有特色,魚骨頭在此就只提幾個常用設計。
在某些遊戲中,如下圖所示,用角色位置、鏡頭水平朝向構建出了一個二維座標系。如果目標在1、2象限,則鏡頭不會水平選擇;在3,4象限則會水平旋轉。這是一種比較簡單的設計思路,即攻擊“鏡頭前方”的目標,前後的判斷是基於主角。
另外一種設計也較為通用,那便是其實每次攻擊系統都會嘗試改變鏡頭引數。他們會嘗試鏡頭改變到一個合理的位置,讓主角和目標都處於鏡頭的中心區域,這個中心區域的確定就需要使用到三分法的理論。三分法簡單說就是把鏡頭分成一個九宮格,角色和目標在三分線交叉點上為最佳,兩線位置次佳,如下圖所示。篇幅所限就不細緻講解三分法了。
那麼當識別到目標不在合適的位置時,鏡頭就自動就近旋轉運動到合適的角度,以便於目標在合適的位置。這個設計需要運算出目標在鏡頭具體什麼方位,即空間3D座標需要換算成鏡頭的2D位置。嫌麻煩我們也可以運用一個更簡單的演算法,基於角色和目標距離差異,來設定鏡頭的合適引數。
搖桿朝向
我們可以讓搖桿朝向的前方始終會有一個扇形區域。這個扇形的圓心是角色所在座標,角度由專案自行設定。在這個扇形內的目標,距離計算優先順序更高。這樣的話我們就可以比較好的做到玩家操控搖桿來決定自己攻擊哪個方向上的敵人。那麼如果玩家沒有操控搖桿,那在角色前方產生扇形即可,或者索性沒有這個扇形。
攻擊範圍
當我們已經運用了這麼多規則最佳化當前目標後,我們依然還面臨一個問題。那就是當目標都站的非常近時候,我們很難在這些目標中精準的選到某一個目標。這個嘛,說實話,魚骨頭覺得確實很難,所以一般而言,弱目標的設計普遍使得近戰攻擊是範圍傷害,這樣一來,目標扎堆你只負責砍就行了,因為具體砍到誰都是一樣的,誰叫我們們是範圍傷害呢。但是遠端如果也是範圍傷害,不管是表現還是遊戲性上一般都不太好處理,這裡會是遠端的一個弱勢的地方。當然也有遊戲遠端也能攻擊一片的,這就看具體專案了。
加分項--距離補償機制
在弱目標的鏡頭規則下,由於3D鏡頭透視的關係,玩家實際上無法非常準確的感受到距離這個概念。譬如角色小人揮舞自身的巨劍,肉眼可見的攻擊距離應該是2米,算上特效也是2.5米,但是怪物站在3米的地方呢?從邏輯上而言,是攻擊不到的,但是從視覺感受上來看,應該是能攻擊到的。
此時,玩家以為能攻擊到,而結果是攻擊不到,體驗上而言無疑是令人沮喪的。這時候我們就需要用到距離補償的機制,實際上也就類似強目標設計裡的追擊。
即目標距離攻擊者如果在一定距離內,比如4米內,我們可以讓主角發動攻擊時,都可以有往前位移到合適的距離。這個規則並不是攻擊位移,而是在攻擊位移的基礎上再疊加的一個位移,如下圖。
因為玩家對距離的感受是模糊的,因而我們需要設計一些規則來抵消掉玩家模糊的感受。雖然是可以增加爽感,但是確實是犧牲了精準性。因而也在很多遊戲裡,並沒有採用這樣的設計,攻擊不到便是攻擊不到,不會給予更多的補償。比如怪物獵人和鬼泣就不會做這種設計,但是在原神、戰神4中又做了這種設計。是要更精準還是要更爽,設計者自行決定。
3.3 結合性設計--TPS
以上內容講的兩種技能型別,各有優劣。這個主要是是對應的搖桿類操控,手柄、搖桿、手機等都在這類範圍內。如果是對應鍵鼠操控的話,還有一個最佳化方案,那邊是TPS類的設計。TPS是第三人稱射擊遊戲的簡稱,與之對應的是FPS。
比較有代表性的作品有《龍之谷》,《永劫無間》。這種設計是在弱目標的基礎上增加了比較方便的選擇目標的方式,而在《鬼泣V》中,雖然有鎖定方式,但本身更依賴於系統自動鎖敵規則以及相比滑鼠沒那麼方便的目標切換功能。在《原神PC端》中則是連切換目標都沒有了。
TPS的設計是不需要系統自動鎖敵的,因為TPS本身是可以透過滑鼠懸浮目標的方式來準確鎖定目標的。這是利用了滑鼠的優勢,不過缺陷也是有的,一是不利於移植到其他平臺;二是玩家需要更多的精力放在目標選取上,會分散一部分操作的精力。
為了增加滑鼠懸浮目標的準確性,這種遊戲普遍都是需要準心的。這種設計乍一聽有些人會覺得維和。實際上如果設計得不是特別明顯的話,玩家甚至感覺不到他的存在,但尤為有效。
TPS類的鎖敵機制呢,簡單總結就是優先攻擊準心懸浮的目標,如無則對準心空放。有些遊戲會在準心沒懸浮目標時攻擊離準心更近的目標,不過這麼設計的也並不多見,可以理解成是《守望先鋒》中士兵76開大招的那種效果。
TPS機制優勢就是可以兼顧以上兩種設計,滑鼠懸浮有目標並且該目標滿足射程時,則是強目標技能;其他情況均為弱目標技能。並且沒有系統自動鎖敵。
因為鏡頭語言設計的需要,角色往往不會站在螢幕的正中間,一般都是偏下一些。但是考慮到準心的存在,所以一般角色都位於鏡頭左下會感覺舒適一些,這樣代入感也會更強。比較極端的就是《戰神4》,已經很接近第一人稱視角了。
因為這樣的設計,鏡頭的朝向與角色的朝向其實是不一致的,但是準心又在鏡頭中央,即準心揭示的方向=鏡頭的方向≠角色的方向。魚骨頭在此簡單聊一下其中的設計,見下圖。鏡頭位置朝向鏡頭方向射出射線,碰撞的第一個有效實體目標即懸浮目標,再由角色位置計算到該位置的朝向即為攻擊朝向。至於空放規則,對著準心射線終點施放技能即可。
結語
1.其實技能目標邏輯上是統一的,不管是強目標還是弱目標,還是TPS類的鎖敵,無非就是確定一個技能施放時的目標座標,再根據目標位置來判斷距離是否足夠以及其相關處理規則罷了。
之所以寫這麼多,主要是想描述不同型別的遊戲對鎖敵的設計是有差異的,這些差異主要源於遊戲本身差異和遊戲平臺的差異。遊戲本身的差異點主要在於設計者希望玩家花多少精力在精確選敵上或花多少精力在操控上。而遊戲平臺的差異主要是硬體差異以及相配套的軟體的差異。
並且有些技能在具體實現時也可能是多種方案結合的。比如在《原神》中的弓箭手,射程內有目標時則是一個強目標技能,射程內沒有目標時,則是弱目標技能的空放形式。在《龍之谷》PC版中,也是依據滑鼠是否有懸浮目標來做類似的結合的。
2.再次強調一下,追擊本身不屬於技能流程中,這個規則實際上是由於技能施放不符合射程條件導致的。追擊的過程本身是在技能施放之前,是系統為了滿足射程這個條件則自動執行的一個行為。有些專案會把這個寫成AI,有些專案只是寫成了系統臨時接管角色,不能完全稱之為AI,這就不多細述了。
但是距離補償機制卻是技能流程中的一部分,屬於技能施放過程中的邏輯,此時技能已經放出,是技能施放過程中執行的一個特殊的行為,在下一篇文章中會有所提及。並且做個小預告,技能鏡頭運動等機制也會在下一篇文章中有更多的介紹。
3.強弱目標方案整體上而言強目標更偏策略,可以更精準;弱目標操控感更強,但是犧牲了精準性。所以一個主要應用於MOBA而另一個主要應用於ACT類。
TPS類遊戲可以說是兩種方案的結合方案,結合了鍵鼠的優勢,讓精準性和操控效能得到有效的結合。但結合鍵鼠優勢同樣也是劣勢,那便是移植不便,畢竟只有PC才有滑鼠。
最後希望能夠幫到大家,我是魚骨頭,一個興(吃)趣(不)使(飽)然(飯)成為遊戲策劃的快樂風男,謝謝——
來源:騰訊GWB遊戲無界
篇一:
如何打造滿足多種遊戲型別的技能設計模組?從技能觸發方式談起
作者:Bruce
騰訊互動娛樂 高階遊戲策劃
技能設計是遊戲中非常重要的一部分,那麼,如何才能快速設計出好玩的遊戲技能?是否能透過模組化組合的方式達成目的?本文作者分享了一些關於技能模組設計的想法思路,希望對大家有所啟發。
“當你想要設計一個角色或者BOSS,需要用到技能表現,結果特性組花費時間開發之後,結果驗證不好玩,或者驗證的效率太慢。有沒有辦法在過程中,快速調整技能的設計思路?”
之所以想寫這個文章,是因為2019年在做技能模組設計,簡單來說就是用UE4Gas的底子,搭建一個策劃自主技能設計的開發模組,希望策劃應用到技能設計時,能透過模組化組合的方式,提供快速滿足策劃設計思路的工具和工作管線。
歷經幾個月的摸索,算是出了點成果,所以就想總結開發過程中的一些東西,跟大家分享一下自己關於技能模組設計的想法思路。
一、遊戲技能是什麼?
既然我們們說到模組技能設計,先來看看遊戲技能指什麼?我找了各種說明,綜合對比後,給出這麼一段話。
遊戲技能指的是遊戲中透過遊戲行為造成攻擊、防禦、輔助等效果的方式。
隨著遊戲玩法元素更多的衍生融合,我們可以看到,在主流的遊戲型別中,大多都會涉及遊戲技能的應用。
所以針對不同的遊戲型別,關於遊戲技能定義,我這裡加了一條個人看法,遊戲技能的表現會依託於不同遊戲環境,有不同的效果和表現方式。
二、如何打造滿足多種遊戲型別的技能設計模組?
必要元素也就是組成技能的基礎型別模組,希望類似於樂高的大顆粒積木一樣,可以用這些基礎型別模組去自由組合成不同技能的方式。
帶著這個思路,重新梳理了市面不同型別的主流遊戲技能,我們們不管遊戲技能型別的差異化多大,無非逃不開六個基礎型別模組,依次為:
1、技能的觸發方式;
2、技能的釋放條件;
3、技能的釋放選擇;
4、技能的表現方式;
5、技能的生成機制;
6、技能的影響效果。
三、技能的觸發事件
關於技能的觸發方式,通常大家的理解,也就是說技能是怎麼觸發的?
傳統的觸發方式理解為:
一種是主動觸發:也就是主動按鍵觸發的方式;
另一種是被動觸發:而被動觸發的條件就非常廣泛,比如受傷觸發、死亡觸發、命中觸發等等觸發方式。
而我們所說的觸發方式,不會只歸納為主動和被動的方式,而是依照觸發事件來劃分。
比如有些主動技能中,也存在主動按鍵之後,需要滿足某個觸發事件,才會觸發技能行為。
比如莫甘娜的“靈魂鐐銬”技能,從傳統意義上來說,是個主動按鍵的技能,但觸發的方式中,還需要驗證範圍觸發的方式,也就是說範圍中檢測到敵人後,才能夠觸發。
說到這裡,大傢伙可能就會吐槽了,這東西我也知道啊,不就是設定觸發事件嗎,這個設計技能的時候都會做,這有啥可瞎白活的?
別急,待我一一道來。
為了選擇足夠通用和樣本性的觸發事件,我對市面上技能機制比較全的幾款知名產品進行分析後,橫向對比了四百多個技能的設計,發現這些技能雖然各有特色,但是技能觸發的方式幾乎囊括在八種觸發事件中。
給八種事件做了簡單命名,分為:
攻擊、命中、時間、空間、狀態、屬性、死亡、驗證。
當然這八種型別的事件,不是單獨存在的,還可以透過多種事件耦合的方式,做出更多特性的展現,不誇張的說,這八種事件已經能夠滿足絕大部分的技能設計需求。
1、攻擊觸發事件
攻擊觸發:簡單理解來說,就是發起攻擊之後,會觸發的行為事件。
常用在攻擊方式變化和攻擊發起後,影響角色屬性和效果的技能效果中。
需要說明的是,攻擊觸發事件,只跟攻擊發出有關,邏輯上只要攻擊發出就會觸發事件,而不需要檢測是否命中。
當然這種用法的方式會透過額外的判定條件,來給攻擊觸發事件增加不同的特色用法。
比如在射擊型別遊戲《無主之地》的槍械特性中:攻擊行為之前會判定是否滿足消耗子彈數量?如果滿足,則每次射擊會判定消耗兩發子彈,繼而觸發了攻擊事件,透過消耗2發子彈的方式,提升了槍械的攻擊效果。
再說一下攻擊觸發事件的另外一種應用方式,在《王者榮耀》中有這樣的設定,英雄在普通攻擊到一定次數之後,會觸發攻擊方式的改變。
以MOBA遊戲《王者榮耀》中魯班舉例:
每次攻擊行為事件會觸發記錄攻擊次數的行為,當攻擊次數=4的時候,下一次攻擊行為會改變攻擊方式。
而在SLG型別的遊戲《鴻圖之下》中,有一類連擊技能,攻擊觸發事件中透過機率判定的方式,觸發技能效果。
關於攻擊觸發事件的應用方式還有很多,這裡只是列舉了一些常用案例。
當然無論應用方式怎麼變化,攻擊觸發事件的核心,就是邏輯上透過攻擊觸發的行為事件。而在這個應用過程中,設計者透過新增不同的條件判定,就會為攻擊觸發事件增加有趣的特性使用方式,以豐富技能的效果。
2、命中觸發事件
命中觸發:判定單位(敵人/自己)在程式邏輯上被有效命中之後,會觸發的行為事件。
在命中觸發事件中,通常用到的是判定命中之後,針對“發出攻擊者”和“被攻擊者”的效果反饋,以及命中之後的條件判定的反饋。
比如《APEX英雄》中“班加羅爾”的“疾步”技能:當自身被命中後,觸發了持續時間內,提升自身移動速度的技能效果。
在這個技能案例中,命中觸發事件所判定的命中目標為自己,當自己被命中後,移動速度屬性提升。
而在《魔獸世界》戰士的“新鮮血肉”技能中:則判定為我命中敵人之後,會觸發的行為事件。這種情況下,所判定的命中個體就是敵人。
以上兩種技能,說明在命中觸發事件的這種機制,除了要判定命中的邏輯之外,還要記錄命中發生的雙方單位的資訊。
還有一種命中觸發的應用方式,是對攻擊命中發起人和被命中的人產生了雙向影響。
《英雄聯盟》中“披甲龍龜”的“尖刺防禦”技能,在命中觸發事件的用法中,首先是敵人命中自己會對自己造成傷害,但在自己被命中後,也會反彈給命中自己的人造成傷害。
當然我們這裡所說的命中事件,不單只是用在角色命中的技能當中,還會用在命中Actor(邏輯判定為可被攻擊命中的物體)的判定當中。
例如《APEX英雄》中,瘟疫釋放的毒氣罐,就可以被攻擊命中,提前觸發爆炸的效果。這個也是遊戲技能中,最常用的一種方式,對於某個特定Actor的命中判定的反饋。
所以受擊行為,首先是從程式邏輯中如何定義命中,而在命中行為事件的應用中,最基本的用法就是記錄“攻擊”和“被攻擊者”資訊,從而在技能效果中,擴充套件受擊行為事件的技能效果。
3、時間觸發事件
時間觸發:滿足特定時間區間或節點的行為結果,觸發的行為事件。
那麼問題來了,特定時間區間、特定時間節點到底該怎麼解釋?
首先是滿足特定時間區間的用法,我會解釋為在持續時間內的才能觸發的行為事件,各種遊戲型別中常用的持續性技能都會用到類似的方式。
比如《APEX英雄》惡靈的維度裂隙:開啟技能後,持續時間內,開啟兩座傳送門,己方隊員碰觸傳送門,會觸發在兩座傳送門中傳送角色的技能行為。
這裡的時間觸發事件的先決前提是滿足在傳送門存在的特定時間區間內。
而滿足特定時間節點的用法,則是要求時間到達某個特定的節點時,才能觸發的行為事件,在很多遊戲中,延遲生效的技能多會用到類似的方式。
比如《英雄聯盟》時光老人的“定時炸彈”:指定目標地點投擲一個定時炸彈,3秒倒數計時之後炸彈會爆炸。這裡所描述的3秒之後,就是滿足特定時間節點最常用的一種方式。
在滿足特定時間節點的用法中,還有一種滿足遊戲規則定義的特殊時間節點,比如四季、晝夜、年份,甚至是透過技能效果改變當前時間節點,以滿足觸發技能行為事件。
在《DOTA2》的暗夜魔王就屬於這種的典型應用,在《DOTA2》的遊戲規則中,設定了關於晝夜切換的遊戲規則,暗夜魔王在黑夜這個特定時間節點階段中,自身的技能會獲得額外加成,甚至自身還擁有著直接改變當前時間節點的技能方式。
當然關於“時間”這個概念,還有很多衍生的用法,在這裡我們主要是提煉“時間觸發事件”的概念,以上的三種案例是用來闡述關於時間觸發的應用方式。
4、空間觸發事件
空間觸發:以指定Actor為中心進行空間範圍檢測,滿足預設條件後,觸發的技能行為事件。
在空間觸發事件中,通常大家會看到兩種方式的應用,範圍內有效條件的持續監測和範圍邊界的條件檢測,前者應用途徑更廣,幾乎各種遊戲型別都能看到,而後者應用的環境相對較少。
對於範圍觸發的事件,我們最多接觸的就是類似光環型別的技能,比如《魔獸爭霸》中的“荊棘光環”,又或者是《APEX英雄》中惡靈的“魔音傳腦”,都是類似的應用方式,以自身為中心進行對範圍的目標,進行實時檢測,只要目標觸及範圍內,並且滿足判定條件,則觸發技能事件。
除了實時檢測直接生效技能效果,還有對於主動觸發的判定,比如《英雄聯盟》中墮落天使的“靈魂鐐銬”:
在釋放技能前,以自身為中心進行範圍檢測,當檢測到敵方目標後,滿足技能觸發條件,觸發了對範圍內敵人進行傷害和減速效果;如果沒有檢測到,技能則無法被觸發。
在《APEX英雄》的直布羅陀中防護罩技能,則是空間邊界的條件檢測,以召喚Actor的位置為中心,一定空間範圍邊界,開啟一個立體的防護罩,防護子彈和爆炸傷害。
這裡的防護罩是設定空間範圍邊界的條件檢測,當爆炸發生且爆炸會影響空間邊界時,進行空間範圍條件檢測,檢測爆炸點處於防護罩的邊界位置,當爆炸發生在防護罩的一側時,護罩將會擋住爆炸傷害。
關於“空間”這個事件的應用,除了我們這裡的示例介紹,以圓形/球形範圍的單次或者持續時間的檢測觸發的方式;還有在空間範圍的形狀變化,以及更多在條件判定的應用。
比如《英雄聯盟》的安妮的焚燒技能,她的技能空間範圍檢測的則是錐形的範圍。
5、死亡觸發事件
死亡觸發:以指定Actor處於邏輯死亡狀態判定後,觸發技能行為事件。
死亡狀態,大多數遊戲中對死亡的邏輯判定,會聚焦為“生命屬性為0,並且無法進行輸入指令操作”,是遊戲中最常接觸的一種狀態效果。
比如《APEX英雄》中的幻象,當幻象處於邏輯“死亡”的狀態時,在死亡位置生成了假的Actor,自己短暫隱身。
所以關於死亡觸發行為,核心都是判定Actor處於邏輯死亡狀態,觸發的技能效果。
比如《APEX英雄》亡靈的“死亡圖騰”技能應用,在指定的位置生成一個圖騰,處於圖騰有效範圍內,玩家進入死亡狀態後,會觸發在圖騰附近復活重生。
而在《魔獸世界》中關於死亡的另外一種用法,是在遭受判定為死亡狀態的時候,轉化為抵擋傷害,暫時保持存活狀態。
這兩種都是死亡狀態時,立刻觸發了技能效果,從而改變了死亡狀態。
還有一種是確認了死亡狀態,但是設定了即使處於死亡狀態,玩家依然在死亡狀態下的技能效果。
《英雄聯盟》中死歌的死亡契約技能效果,當自身處於死亡狀態時,改變了死亡的邏輯判定,在延長的技能效果時間內,玩家可以繼續釋放技能。
關於這種用法就是一種複合機制的使用方式,首先是在死亡狀態觸發時,其次是關聯了時間觸發事件的應用,所以在觸發行為事件的應用中,除了單一觸發機制判定以外,通常還有多種機制的複合應用方式。
6、屬性觸發事件
屬性觸發:檢測遊戲中Actor屬性數值的變化,觸發技能行為事件。
通常在遊戲製作的時候,都會對遊戲中的Acotr,這裡我統稱為遊戲角色,設定基礎屬性,用來衡量各種行為狀態的標準。
比如最基礎的生命值、移動速度、攻擊速度等等,而技能相關的還有用來衡量技能消耗的藍條或者能量等。
《英雄聯盟》中奧拉夫的狂戰之怒,是最典型的屬性觸發方式,每次當血量屬性降低的時候,提升自身的移動速度。這種屬性觸發的應用方式,實質上就是實時監測自身某種屬性的變化,滿足條件判定後,觸發技能行為效果。
而《APEX英雄》辛烷的興奮藥劑技能,對比狂戰之怒,同樣是減少生命值,提升移動速度的技能效果。
但是在興奮藥劑技能中,是主動觸發的方式,技能邏輯是當辛烷使用興奮藥劑技能的時候,持續時間內,提升移動速度,並且自身“生命值”屬性發生變化。
還有一種是當屬性發生變化後,需要判定屬性是否達到臨界值,這就需要觸發的同時針對這一次屬性變化進行驗證,來確定是否達到技能觸發的條件臨界值。
屬性觸發事件中最常見的觸發方式,就是針對屬性數值的變化進行判定,當滿足條件時就會觸發技能效果。
7、狀態觸發方式
狀態觸發:檢測遊戲中Actor狀態效果的變化,觸發技能行為事件。
我們在遊戲製作中,除了屬性數值之外,還有一種常見定義的內容,就是Actor在不同行為下的狀態效果。比如最常見的加速、減速、暈眩、沉默等異常狀態效果,通常是遊戲中定義Actor在遊戲中附加的正向或負面狀態效果。
以“沉默”這個狀態效果為例,遊戲中通常定義為Actor處於沉默狀態下將無法釋放主動技能。當然每個遊戲中關於狀態的邏輯定義會有些差異,關於各種狀態效果和定義方式,將會在後續的狀態篇中詳細說明。
比如《APEX英雄》亡靈的“沉默”技能應用,投擲裝置,對範圍內的敵人造成無法使用技能的狀態效果。
當然大家有可能會疑惑,這不是“沉默”技能的直接效果嗎?怎麼會歸到狀態觸發效果中?
通常遊戲中對於屬性和狀態觸發的用法,是針對屬性或者狀態發生變化後,驗證這兩種變化的標準。當滿足變化標準後,就會觸發技能行為事件。
以《魔獸世界》中刺客的“藥膏專家”為例,技能效果是針對目標驗證是否中毒,如果滿足中毒狀態的話,將會返還8點能量。
此處的狀態觸發事件的使用方式就是針對特定狀態“中毒”的目標進行驗證,滿足驗證目標,將會觸發技能事件。
當然還有圖上這位,玩過《英雄聯盟》的玩家,都知道是誰,疾風劍豪,經常有我方“托兒索”,敵方劍豪的美譽。
“狂風絕息斬”的技能是個典型的狀態判定的觸發行為。技能觸發的條件,是判定當目標處於被擊飛的敵方目標空間範圍內,才會觸發技能事件。
疾風劍豪的觸發機制,是一種需要高階技巧或者隊友配合的機制,所以發揮的場景,需要玩家對於技能的銜接理解和熟練度都有一定的要求。
而通常這種需要狀態觸發的機制,一般都會定義為遊戲中的通用機制。比如減速、擊飛、擊退等這種大多數條件下滿足的技能機制。
8、疊層驗證觸發
疊層驗證觸發:驗證遊戲中Actor上的疊層BUFF,滿足驗證條件後,觸發技能行為事件。
從嚴格意義上來說,疊層驗證並不是遊戲中統一歸類的一種觸發事件,更多是一種輔助其他觸發事件的條件驗證方式,使用場景,也是會跟其他的觸發機制融合使用。
不過疊層驗證這個機制出現的頻率太高,幾乎在任何遊戲型別,任何遊戲方式中都會出現,所以在這裡把疊層驗證當成一種歸類的觸發方式來說明。
例如在《英雄聯盟》中,這種疊層驗證的使用方式就層出不窮,目前英雄總共155位英雄,技能中帶有疊層驗證的英雄超過了100位。
以黑暗之女安妮為例,嗜火,在施放4次技能後,安妮的下一個傷害技能將會造成暈眩。此時的疊層驗證應用,是將安妮每次釋放技能後,給自身新增BUFF,滿足疊層驗證次數後將會觸發“暈眩”狀態效果。
而沙漠死神內瑟斯的痛苦汲取,則是疊層驗證和死亡觸發的融合應用方式,判定當敵人死於痛苦汲取的技能效果時,會給自身疊加傷害值。
在《魔獸世界》術士的翻騰痛楚技能中,則進一步把疊層驗證的應用方式進一步融合。首先是驗證當痛楚BUFF疊加到第4層時,開始造成傷害,其次是痛楚BUFF疊加層數後,將會增加傷害效果。
在疊層BUFF中,通常我會把BUFF分為兩種:
一種是遊戲意義中的有效BUFF,意味著對於Actor有實質意義上的效果BUFF,比如剛才提到的翻騰痛楚BUFF的應用效果,此型別BUFF擁有實質的效果,並且承擔了疊層驗證的功能;
而另一種則是無效BUFF,這種BUFF,對於Actor沒有實質意義,是作為記錄需要驗證的標準,比如黑暗之女安妮的技能次數的應用效果。
寫到這裡,關於技能模組化技能設計之-觸發事件篇也暫時告一段落,個人在寫文章的過程中,又重新梳理了一篇過程,深覺遊戲中技能應用的廣博,所以本文中的總結僅代表個人的理解,大家如果有什麼其他見解,也希望能夠跟作者交流。
篇二:
ARPG遊戲技能該如何設計?流程是怎樣的?
作者:魚骨頭
ARPG遊戲技能施放需要經歷哪些流程?本文作者將其拆成三個階段,今天將和大家聊聊技能有效性檢測。如果你也在煩惱遊戲技能設計,看完這篇或許能幫你少走一些彎路。
大家好,我是魚骨頭,今天我想跟大家聊一下ARPG的技能流程。在這裡我先將技能整個流程簡單的拆成三個階段,如下圖所示,分別為技能有效性檢測、技能施放流程、技能生效。
簡單來說,技能有效性檢測是解決技能是否能放,對誰放的問題;技能施放過程是解決技能怎麼放的問題;而技能生效階段則是解決技能產生了什麼樣的影響的問題。本篇為第一篇,即技能的有效性檢測部分,見下文。
一、前言
技能有效性檢測一般都包含消耗、冷卻、射程和施法目標四種變數的檢測。其中消耗的規則沒有太多想講的,本文略過。冷卻方面只簡單聊一聊,重點還是施法目標和射程的檢測與其相關規則。
二、冷卻規則
技能冷卻時間簡單聊聊,比較通用的設計就是技能在冷卻期間則無法施放,只有冷卻時間為0時才可施放。這一設計想必無需贅述,以下聊一個小的最佳化設計--裝載冷卻。
在某些遊戲中,技能有“裝載冷卻”的概念,即擁有技能的實體單位在擁有技能時,會預先進入一個“裝載冷卻”後才可正常施放技能。“裝載冷卻”和“技能冷卻”是兩個不同的變數,前者只會在擁有技能時生效一次,後者會在每次施放技能時生效一次。
比如某個角色在剛開始生成時,普攻裝載冷卻為0,但是技能裝載冷卻為5,則會開局直接施放普攻,等待5秒後才會開始施放技能。這兩個變數可以很好的控制技能的施放節奏,尤其是AI的技能施放節奏,這兩個引數相互配合則可以很好的還原出《刀塔傳奇》的技能施放節奏。
在《DNF》這款遊戲的競技場中,為了平衡性和對抗節奏設計的需要,也會使高等級的技能在開局時擁有不同的裝載冷卻時間。
三、目標與射程的設計
因為目標和射程的關聯性較強,所以打算一起來寫。在這之前,魚骨頭先將技能分成兩種模式,就施放時是否一定需要一個目標而分為“強目標”技能與“弱目標”技能。
3.1 強目標技能
強目標技能指的是技能施放時,技能射程內必須要有有效實體目標,否則技能是無法施放的。這種技能型別也就是大家常說的鎖定型技能,在MOBA遊戲中,英雄的普通攻擊普遍採用的就是這種設計。
在這種設計下,因為技能射程內可能並不存在有效目標,因而玩家並不總是使用技能指令就能立即施放出技能的。但是從體驗感上來講,玩家使用了技能指令,還是期望立即能獲得對應反饋的。
強目標設計中,戰鬥更偏數值,玩家只需要注意距離即可
在有效目標超出射程時,大部分遊戲中的強目標技能都會執行追擊邏輯。即系統會讓施法者尋路至合適的距離後,再嘗試施放該技能。注意,追擊本身不屬於技能流程中的內容,而是為了使有效目標滿足有效射程而做的最佳化規則。
追擊一般都會設定一個追擊範圍,即表示施法者只會對追擊範圍內的有效目標發動追擊行為。如果追擊範圍內都沒有有效目標的話,也就會提示玩家“該技能需要有效目標”,也就是用一種即時的錯誤反饋來提醒玩家該技能目前無法施放。
角色腳底藍色光圈為技能射程指示器,角色會追擊至合適距離再發動攻擊
在這裡,值得一提的是,不管是追擊或是直接進行錯誤反饋的提示。從體驗上來講都是會降低操控感的,從玩家操控行為上而言,他的意圖是發動技能,但是實際上技能並未發動。追擊是一種補償措施,而錯誤提示則是直接的錯誤反饋。
所以,就提升技能操控體驗而言,魚骨頭想詳細聊聊弱目標鎖敵下的相關設計。
3.2 弱目標技能
與“強目標”技能對應的“弱目標”技能,則是在技能施放時,不要求技能射程內必須要有有效的實體目標,也就是說技能是允許空放的。這種設計體驗上的好處主要是反饋即時,玩家發出施放技能的指令即可立即看到角色自身施放對應技能。
這種方案更多的運用在ACT遊戲中,提升了操控感,但也因為操作反饋對即時性的要求,則捨去了目標選取的過程,與之代替的是對方向的選取或系統自動選取有效單位。
弱目標設計中玩家更多的需要自己來感受空間
方向型技能
對方向的技能很好理解,就是對某一個方向施放的技能。近戰、遠端、位移等技能都可以單純的只對某一方向使用。
在設計上一般都是優先採用移動搖桿方向,如果沒有使用搖桿,則預設為角色前方。我們可以將玩家搖桿在UI中的二維座標,轉換成角色水平地面的二維座標。這樣就構建了一個角色朝向與移動搖桿方向的對應關係。
這種技能一般用於比如翻滾(閃避)、召喚等不需要目標的技能。因為沒有對有效目標的需求,所以本篇就不多講,在下一篇中會聊到這些技能在流程上的設計思路。
系統自動選敵
因為系統都已經省略了目標選擇的相關功能,那麼與之代替的則是需要設計自動選敵的規則。如何能做到儘可能少操控的情況下保證技能可以攻擊到目標,並且是攻擊到想要攻擊的目標呢?在這裡,魚骨頭打算聊一下很多ARPG中慣用的自動鎖敵的機制。這個機制細節較多,我們分幾步來講。
第一步-篩選目標
在選目標時,首先我們需要剔除掉技能射程外的所有目標,只保留射程內的目標。不同技能射程不同,因而保留的目標數也就不同。
如果射程內沒有任何目標,則空放技能。空放技能一般都會處理成對自己空放或對角色前方某個虛擬的錨點座標進行施放,這裡便不多贅述,見下圖即可。
對角色前方某個虛擬的錨點座標進行施放示意圖
如果技能射程內有目標,則選擇一個目標並對該目標施放技能。為了反饋清晰,我們一般會設計成技能會朝向目標施法,但是這也並不絕對,不是所有技能都會朝向目標施法的,這個設計者自行決定即可。至於目標選擇的規則,在第二步會詳述。
角色普通攻擊射程內無目標則空放
龍捲風技能射程遠,射程內有目標則朝向目標施放
第二步-挑選“最近”的目標
在敵方單位較多的情況下,玩家使用普通攻擊,則直接攻擊最近的敵方單位,無疑是一個即省操作又能充分發揮技能效用的方案。
使用普通攻擊,角色會立即攻擊最近的敵方單位
但這種方案也有一個很明顯的問題,那就是最近的敵方單位往往不是我想攻擊的敵方單位。那麼我們則需要加入一些更加智慧的判定,即判斷出什麼單位是玩家想攻擊的單位。在這裡,我們需要結合一些設計者自己的想法,把玩家想攻擊的單位改成設計者認為的玩家想攻擊的單位。
以下魚骨頭會從怪物性質、鏡頭視野、搖桿操控、攻擊範圍幾個點來詳細闡述最佳化規則。
怪物性質
在挑選目標時,我們可以加入敵方單位威脅性的概念。即不同怪物有不同威脅性,這種威脅性會影響距離的計算。有些怪物影響率更高,有些怪物影響率更低,一般依據普通怪,精英怪,BOSS怪三個梯度來劃分即可。
在實際應用時,我們將之前距離判斷新增了威脅性影響比率,結果為距離*影響比率。譬如普通怪是1,精英怪是0.9,BOSS怪是0.8。那麼同樣是距離10米,在系統計算過影響比例後,三者經計算後距離分別為10,9,8米,也就是說,如果普通怪不能在8米以內的話,玩家角色施放技能則會始終攻擊BOSS怪。
紅色更大的敵人為BOSS,如果BOSS只是稍遠於小怪的話,主角會優先攻擊BOSS
按照這個思路,我們還可以將怪物的強度、健康程度都納入計算範圍,可以讓玩家角色優先攻擊更弱的或更容易擊殺的單位。這些都看設計者具體需求,不多贅述。
鏡頭視野
經過上述計算後,玩家角色會攻擊一個計算後的距離最近的目標,但卻可能出現這個問題:遊戲中鏡頭偏平視,距離角色也比較近,玩家明明看到前面5米有個目標,按下普通攻擊按鈕期待著攻擊這個單位,結果角色突然180度轉身攻擊了後方一個距離2米的原本看不到的敵人。雖然這符合上述的邏輯,但不符合玩家的預期。
所以在上述的邏輯中,我們還需要考慮到鏡頭的視野。一般來講,我們讓遊戲鏡頭可以看到的單位享有更高的優先順序即可,與上述怪物性質規則一致。比如在鏡頭外的目標在進行距離計算時為1.1,那鏡頭外的目標除非明顯比鏡頭內的目標更近,否則都會攻擊鏡頭內的目標。
但是依然會存在一些問題,儘管運用了上述規則,但角色始終可能攻擊鏡頭外的一個目標。並且鏡頭本身其實還有另一個問題,那就是目標位置相對於角色位置不太合理的話,比如目標在鏡頭邊緣,我們攻擊時觀感並不舒服。那麼我們就需要鏡頭旋轉到合適的角度,以解決這2個問題。
這時候我們需要改變鏡頭三樣引數,水平旋轉角度、垂直旋轉角度、與目標錨點的距離。
這三個引數可以讓鏡頭在一個合適而又舒服的位置來觀看角色攻擊目標,但如果角色攻擊所有目標都需要鏡頭旋轉,又會使得鏡頭晃動過於頻繁。
因為每款產品在這方面設計都各有特色,魚骨頭在此就只提幾個常用設計。
在某些遊戲中,如下圖所示,用角色位置、鏡頭水平朝向構建出了一個二維座標系。如果目標在1、2象限,則鏡頭不會水平選擇;在3,4象限則會水平旋轉。這是一種比較簡單的設計思路,即攻擊“鏡頭前方”的目標,前後的判斷是基於主角。
角色攻擊基於鏡頭朝向的“後方”單位時鏡頭會轉向
角色攻擊基於鏡頭朝向的“前方”單位時鏡頭不會轉向
示意圖,數字為象限
另外一種設計也較為通用,那便是其實每次攻擊系統都會嘗試改變鏡頭引數。他們會嘗試鏡頭改變到一個合理的位置,讓主角和目標都處於鏡頭的中心區域,這個中心區域的確定就需要使用到三分法的理論。三分法簡單說就是把鏡頭分成一個九宮格,角色和目標在三分線交叉點上為最佳,兩線位置次佳,如下圖所示。篇幅所限就不細緻講解三分法了。
基於三分法的鏡頭
可見目標都在三分線交叉點位置,且保持中心對稱
那麼當識別到目標不在合適的位置時,鏡頭就自動就近旋轉運動到合適的角度,以便於目標在合適的位置。這個設計需要運算出目標在鏡頭具體什麼方位,即空間3D座標需要換算成鏡頭的2D位置。嫌麻煩我們也可以運用一個更簡單的演算法,基於角色和目標距離差異,來設定鏡頭的合適引數。
搖桿朝向
我們可以讓搖桿朝向的前方始終會有一個扇形區域。這個扇形的圓心是角色所在座標,角度由專案自行設定。在這個扇形內的目標,距離計算優先順序更高。這樣的話我們就可以比較好的做到玩家操控搖桿來決定自己攻擊哪個方向上的敵人。那麼如果玩家沒有操控搖桿,那在角色前方產生扇形即可,或者索性沒有這個扇形。
搖桿操控的鏡頭
因為搖桿始終朝向紅箭頭的怪物,所以在怪物差不多近時攻擊該怪物
有非常近的怪時,搖桿也不好使
攻擊範圍
當我們已經運用了這麼多規則最佳化當前目標後,我們依然還面臨一個問題。那就是當目標都站的非常近時候,我們很難在這些目標中精準的選到某一個目標。這個嘛,說實話,魚骨頭覺得確實很難,所以一般而言,弱目標的設計普遍使得近戰攻擊是範圍傷害,這樣一來,目標扎堆你只負責砍就行了,因為具體砍到誰都是一樣的,誰叫我們們是範圍傷害呢。但是遠端如果也是範圍傷害,不管是表現還是遊戲性上一般都不太好處理,這裡會是遠端的一個弱勢的地方。當然也有遊戲遠端也能攻擊一片的,這就看具體專案了。
加分項--距離補償機制
在弱目標的鏡頭規則下,由於3D鏡頭透視的關係,玩家實際上無法非常準確的感受到距離這個概念。譬如角色小人揮舞自身的巨劍,肉眼可見的攻擊距離應該是2米,算上特效也是2.5米,但是怪物站在3米的地方呢?從邏輯上而言,是攻擊不到的,但是從視覺感受上來看,應該是能攻擊到的。
gif圖中的攻擊並未攻擊到立方體,3D常規視角下實際上很難準確判斷攻擊的距離
此時,玩家以為能攻擊到,而結果是攻擊不到,體驗上而言無疑是令人沮喪的。這時候我們就需要用到距離補償的機制,實際上也就類似強目標設計裡的追擊。
即目標距離攻擊者如果在一定距離內,比如4米內,我們可以讓主角發動攻擊時,都可以有往前位移到合適的距離。這個規則並不是攻擊位移,而是在攻擊位移的基礎上再疊加的一個位移,如下圖。
攻擊時有明顯的距離補償
此處再放兩張攻擊位移和距離補償的對比圖
因為玩家對距離的感受是模糊的,因而我們需要設計一些規則來抵消掉玩家模糊的感受。雖然是可以增加爽感,但是確實是犧牲了精準性。因而也在很多遊戲裡,並沒有採用這樣的設計,攻擊不到便是攻擊不到,不會給予更多的補償。比如怪物獵人和鬼泣就不會做這種設計,但是在原神、戰神4中又做了這種設計。是要更精準還是要更爽,設計者自行決定。
3.3 結合性設計--TPS
以上內容講的兩種技能型別,各有優劣。這個主要是是對應的搖桿類操控,手柄、搖桿、手機等都在這類範圍內。如果是對應鍵鼠操控的話,還有一個最佳化方案,那邊是TPS類的設計。TPS是第三人稱射擊遊戲的簡稱,與之對應的是FPS。
比較有代表性的作品有《龍之谷》,《永劫無間》。這種設計是在弱目標的基礎上增加了比較方便的選擇目標的方式,而在《鬼泣V》中,雖然有鎖定方式,但本身更依賴於系統自動鎖敵規則以及相比滑鼠沒那麼方便的目標切換功能。在《原神PC端》中則是連切換目標都沒有了。
TPS的設計是不需要系統自動鎖敵的,因為TPS本身是可以透過滑鼠懸浮目標的方式來準確鎖定目標的。這是利用了滑鼠的優勢,不過缺陷也是有的,一是不利於移植到其他平臺;二是玩家需要更多的精力放在目標選取上,會分散一部分操作的精力。
為了增加滑鼠懸浮目標的準確性,這種遊戲普遍都是需要準心的。這種設計乍一聽有些人會覺得維和。實際上如果設計得不是特別明顯的話,玩家甚至感覺不到他的存在,但尤為有效。
龍之谷是一個不太明顯的十字類準心
永劫無間是一個不太明顯的實心點準心
TPS類的鎖敵機制呢,簡單總結就是優先攻擊準心懸浮的目標,如無則對準心空放。有些遊戲會在準心沒懸浮目標時攻擊離準心更近的目標,不過這麼設計的也並不多見,可以理解成是《守望先鋒》中士兵76開大招的那種效果。
TPS機制優勢就是可以兼顧以上兩種設計,滑鼠懸浮有目標並且該目標滿足射程時,則是強目標技能;其他情況均為弱目標技能。並且沒有系統自動鎖敵。
因為鏡頭語言設計的需要,角色往往不會站在螢幕的正中間,一般都是偏下一些。但是考慮到準心的存在,所以一般角色都位於鏡頭左下會感覺舒適一些,這樣代入感也會更強。比較極端的就是《戰神4》,已經很接近第一人稱視角了。
因為這樣的設計,鏡頭的朝向與角色的朝向其實是不一致的,但是準心又在鏡頭中央,即準心揭示的方向=鏡頭的方向≠角色的方向。魚骨頭在此簡單聊一下其中的設計,見下圖。鏡頭位置朝向鏡頭方向射出射線,碰撞的第一個有效實體目標即懸浮目標,再由角色位置計算到該位置的朝向即為攻擊朝向。至於空放規則,對著準心射線終點施放技能即可。
結語
1.其實技能目標邏輯上是統一的,不管是強目標還是弱目標,還是TPS類的鎖敵,無非就是確定一個技能施放時的目標座標,再根據目標位置來判斷距離是否足夠以及其相關處理規則罷了。
之所以寫這麼多,主要是想描述不同型別的遊戲對鎖敵的設計是有差異的,這些差異主要源於遊戲本身差異和遊戲平臺的差異。遊戲本身的差異點主要在於設計者希望玩家花多少精力在精確選敵上或花多少精力在操控上。而遊戲平臺的差異主要是硬體差異以及相配套的軟體的差異。
並且有些技能在具體實現時也可能是多種方案結合的。比如在《原神》中的弓箭手,射程內有目標時則是一個強目標技能,射程內沒有目標時,則是弱目標技能的空放形式。在《龍之谷》PC版中,也是依據滑鼠是否有懸浮目標來做類似的結合的。
2.再次強調一下,追擊本身不屬於技能流程中,這個規則實際上是由於技能施放不符合射程條件導致的。追擊的過程本身是在技能施放之前,是系統為了滿足射程這個條件則自動執行的一個行為。有些專案會把這個寫成AI,有些專案只是寫成了系統臨時接管角色,不能完全稱之為AI,這就不多細述了。
但是距離補償機制卻是技能流程中的一部分,屬於技能施放過程中的邏輯,此時技能已經放出,是技能施放過程中執行的一個特殊的行為,在下一篇文章中會有所提及。並且做個小預告,技能鏡頭運動等機制也會在下一篇文章中有更多的介紹。
3.強弱目標方案整體上而言強目標更偏策略,可以更精準;弱目標操控感更強,但是犧牲了精準性。所以一個主要應用於MOBA而另一個主要應用於ACT類。
TPS類遊戲可以說是兩種方案的結合方案,結合了鍵鼠的優勢,讓精準性和操控效能得到有效的結合。但結合鍵鼠優勢同樣也是劣勢,那便是移植不便,畢竟只有PC才有滑鼠。
最後希望能夠幫到大家,我是魚骨頭,一個興(吃)趣(不)使(飽)然(飯)成為遊戲策劃的快樂風男,謝謝——
來源:騰訊GWB遊戲無界
相關文章
- 【遊戲設計】如何搭建技能實現框架,讓你少走彎路【乾貨】遊戲設計框架
- 超級乾貨:帶你全面瞭解低程式碼!
- 【乾貨】MySQL底層架構設計,你瞭解多少?MySql架構
- 一文帶你瞭解求職面試那些名詞(乾貨)求職面試
- 乾貨!一分鐘帶你瞭解如何測試海外HTTP代理的ip可用率!HTTP
- 程式設計師,谷歌帶來的這場變革,你瞭解嗎?程式設計師谷歌
- 你真的瞭解python嗎?這篇文章帶你快速瞭解!Python
- 【乾貨】遊戲介面設計 (一)核心設計遊戲
- 【乾貨】遊戲介面設計 (三)資訊設計遊戲
- 【純乾貨分享】網路安全這些專業“術語”你瞭解嗎?
- 乾貨分享!帶你瞭解數棧FlinkX實時採集原理與使用
- 乾貨 | PHP就該這麼學!PHP
- 【乾貨】如何設計一個Arkane遊戲的關卡遊戲
- 【乾貨】遊戲介面設計 (二)結構設計遊戲
- 【乾貨】遊戲介面設計 (四)體驗設計遊戲
- 【乾貨】遊戲介面設計 (五)表現設計遊戲
- 乾貨|一文帶你瞭解 Apache Hive2.x 的四大特性ApacheHive
- 五分鐘帶你瞭解Django框架設計思想!Django框架
- 華為鴻蒙OS釋出會解析,這些乾貨你應該知道鴻蒙
- 帶你瞭解webpackWeb
- 帶你瞭解IP地址的計算
- 【乾貨!!】十分鐘帶你搞懂 Java AQS 核心設計與實現!!!JavaAQS
- Java8新特性,你應該瞭解這些!Java
- api設計乾貨API
- 這篇文章不能教你python程式設計,但能帶你更全面的瞭解python!Python程式設計
- 乾貨 | 這些產品主圖設計的色彩原理,你會用嗎?
- 帶你瞭解Java這麼火爆的真實原因!Java
- 帶你快速瞭解HTMLHTML
- 純乾貨:21天帶你玩轉容器
- [乾貨]谷歌外掛跨域你可以瞭解下谷歌跨域
- 乾貨:遊戲中“沙漠”場景的設計手法遊戲
- 好程式設計師Java乾貨分享5分鐘瞭解折半插入排序程式設計師Java排序
- 騰訊遊戲學院專家帶你快速瞭解PBR遊戲
- 一篇文章帶你瞭解設計模式——建立者模式設計模式
- 不瞭解這些“高階貨”,活該你面試當炮灰。。。【石杉的架構筆記】面試架構筆記
- 乾貨 | 4步帶你完成私有云盤搭建
- 這份Python標準異常表你應該瞭解!Python
- 萬字帶你瞭解ChatGLM