從0開始:開發(fā)自己的游戲[3]


我是Lem0,自學倡導者,執(zhí)迷于“不務正業(yè)”,被批評“旁門左道”。我注冊并使用簡書,希望能夠記錄一些我記不住的事情,或者與大家一起共享知識,共同學習。

往期回顧(點擊鏈接訪問):
「從0開始:開發(fā)自己的游戲[0]」
「從0開始:開發(fā)自己的游戲[1]」
「從0開始:開發(fā)自己的游戲[2]」

在上一期教程中,我?guī)ьI(lǐng)大家學習游戲項目文件夾下各子目錄文件夾的用途以及素材規(guī)格。在本期教程中,我會開始講解游戲劇情的制作,從本期開始的后續(xù)幾期教程內(nèi)容將貫穿游戲線性流程、游戲中的主線任務、支線任務等等游戲進程的制作。所以不妨請喜歡本系列教程的朋友們關(guān)注我,避免錯過更新動態(tài)。

如果您沒有看過之前的教程,或者在閱讀本文時發(fā)現(xiàn)自己已經(jīng)記不起以前的一些內(nèi)容,建議您先查看往期的回顧,再繼續(xù)本教程以確保效率。

3、學習造人 - 添加NPC和簡單的游戲事件

在一個游戲中,游戲世界里的生物往往由玩家和NPC(不可操控角色)構(gòu)成。玩家和NPC之間的交互已經(jīng)是RPG游戲的固定模式之一,幾乎每個RPG游戲都會設(shè)計或多或少的可交互NPC。甚至,類似于《輻射3》、《上古卷軸5》這樣擁有龐大世界觀的游戲中,NPC甚至對玩家有“情感”的概念,而且NPC的性格也決定了不同的NPC會對玩家的某一行為做出不同的反應。

在本期教程,我們就來試著添加NPC和簡單的游戲事件。

那么什么是游戲事件呢?我給游戲事件的定義是:在游戲中,由玩家或者游戲邏輯本身觸發(fā)的、為達到推動游戲進程或完成某個游戲動作的行為。比如,在商店完成一次交易、走進傳送門傳送到另一個地點、向NPC交還已經(jīng)完成的任務等等都屬于游戲事件。

比如,在我們第2期教程中已經(jīng)完成的室內(nèi)和室外地圖建立一個移動事件——在室外地圖的時候可以走進綠色屋頂?shù)姆块g門,從而讓玩家跳轉(zhuǎn)到另一個場景——室內(nèi)。

首先我們要切換編輯模式為“事件模式”。切換到事件模式之后,你無法繪制地圖,并且地圖被劃分成不同的小方格。你可以在每個小方格中都建立一個游戲事件。

事件編輯模式下的地圖

我們選中綠色屋頂?shù)姆孔?,在黑洞洞的拱形門洞上單擊右鍵,選擇快速新建特定事件,并在子菜單中選擇門扉。

快速新建事件

在彈出的窗口中,你可以選擇門的樣式——雙擊“門扉圖像”。因為我們?yōu)閴Ρ谏袭嬌狭斯靶蔚拈T洞,因此我們在這里需要選擇拱形門。

選擇拱形門的圖像

目標位置為玩家打開門后通向的地點。我們需要選擇為室內(nèi)地圖的門口位置。如圖:

選擇目標位置

完成后點擊確定,一個門扉事件就已經(jīng)被建立了。我們可以看到地圖上,綠色房子的墻壁上已經(jīng)出現(xiàn)了一個拱形門的方塊。我們可以雙擊這個方塊進而打開事件頁

游戲事件的事件頁

我們來詳細講解這個被我們快速構(gòu)建的門扉事件。這個窗口中,左上角的【名稱】框中的名稱可以隨意編輯,這是為了防止開發(fā)者忘記這個事件的作用而進行的備注。

【出現(xiàn)條件】中為當前的游戲事件出現(xiàn)需要滿足的條件。在這里我們不需要設(shè)置任何條件,因為這個門將一直存在,不需要達成特定條件才出現(xiàn)。而相反,其他一些事件可能需要設(shè)置出現(xiàn)條件——比如送信任務中,你必須接受了任務或者持有信件時,收信人才會出現(xiàn)在地圖上。

【圖像】為事件的圖像,雙擊可以選擇其他圖像,如果設(shè)置成人形,就相當于建立了一個NPC。在某些情況下,你也可以設(shè)置圖像為空,這樣事件會存在在游戲中但不會顯示出來,我們經(jīng)常這樣實現(xiàn)一些游戲邏輯,比如進入在兩次進入城鎮(zhèn)的時候根據(jù)劇情差異播放兩首不同的BGM等等。

【自主移動】中可以為事件設(shè)置移動的方式。比如《口袋妖怪》中的NPC經(jīng)常以不同的方式在地圖上隨機移動或按照指定的路線移動,就是使用這個功能模塊達成的。在這個例子中,我們可不希望房門也隨機移動,所以我們需要將移動方式設(shè)置為“固定”。在其他的幾種移動方式中,“接近”的意思是不斷接近玩家,在某些躲避游戲中也經(jīng)常使用。

【選項】中有四個選項。其中步行動畫的意思是該事件在移動的時候?qū)⑿凶邎D循環(huán)播放形成行走動畫;踏步動畫是即使該事件不移動也播放行走動畫;固定朝向是該事件的朝向不會更改(比如如果該事件是一個NPC,那么勾選此項將導致NPC的臉只朝向固定方位);允許穿透是允許該事件和其他事件碰撞后穿過彼此,類似于其他游戲引擎中的“非碰撞體”概念。

【優(yōu)先級】略過,你可以將鼠標懸停在選項上查看說明,很簡單。

【觸發(fā)條件】中有多種觸發(fā)條件。你可以懸停鼠標在這一部分,來查看不同觸發(fā)條件之間的區(qū)別。需要注意的是,觸發(fā)條件和剛才說過的出現(xiàn)條件不同,即使沒有達到觸發(fā)條件,該事件還是會出現(xiàn)在地圖上。但如果沒有達到出現(xiàn)條件,則該事件是不會在游戲中顯示和執(zhí)行的

在右側(cè)的【執(zhí)行內(nèi)容】中,是該事件的“代碼”。我之所以說RMVA這款游戲引擎適合初學者,就是因為它對不會編程的代碼苦手很友好。這些代碼本來應該由程序員編制,RMVA不僅簡單地將代碼命令化,而且還使用了大家熟悉的可讀文本,而不是編程語言。

【執(zhí)行內(nèi)容】中的代碼文本我們稱為事件命令或事件邏輯。我們看看這個門的事件命令:

門扉事件的事件命令

一旦事件被觸發(fā),事件命令就會按次序執(zhí)行。在這個門扉事件中,首先會播放開門的聲效,然后是一串“移動路線”指令用來播放開門的動畫。緊接著玩家會向前移動一步。之后會播放腳步聲的聲效,并且進行場所移動,移動到室內(nèi)地圖的指定坐標。

我們可以將玩家的初始位置設(shè)置在室外地圖上,然后測試游戲,走到綠色房子前,果然,主角打開了門并且進入到室內(nèi)。

測試結(jié)束之后,我們來新建一個事件。在事件編輯模式下,雙擊一個空白的小方格建立一個新事件。在彈出的事件頁中,我們選擇一個看著順眼的NPC圖像。在右側(cè)的【執(zhí)行內(nèi)容】列表中,我們雙擊空行,添加一條新的【事件指令】:顯示文字。

新建游戲事件的事件頁
顯示文字命令的編輯窗口

我們雙擊角色肖像圖來選擇角色的面部肖像。如果大家還有印象,我在上一期教程中說過,角色肖像圖儲存在Graphics => Faces文件夾下。

我們在文字框中輸入“歡迎你,冒險者。”

完成NPC的對話設(shè)置

之后點擊確定,完成文字顯示命令的添加。這時,你的事件頁應該是下面的樣子:

完成后的事件頁

之后我們可以設(shè)置該事件的【自主移動】類型為隨機,移動的速度和頻率都可以隨機調(diào)整。完成設(shè)定之后點擊確定關(guān)閉,一個新的NPC(其本質(zhì)依然是游戲事件)就被創(chuàng)建好了。

測試游戲后,我們的玩家已經(jīng)可以和NPC進行對話了:

游戲中的測試效果

至此為止我們就已經(jīng)學習了游戲事件的創(chuàng)建。我們將在下幾期教程講解復雜游戲邏輯的實現(xiàn)。也就是事件指令中的【流程控制】部分和【條件控制】部分。

事件指令

大家也可以隨意測試其他的事件指令。比如我留一個小作業(yè):創(chuàng)建一個NPC富豪,每次和富豪對話一次會獲得100金幣。創(chuàng)建另一個NPC乞丐,每和乞丐對話一次可以選擇是否施舍乞丐,是的話則乞丐會提升主角1級。(關(guān)于如何選擇施舍乞丐與否,你可以在事件指令中【信息】=>【顯示選項】中完成設(shè)置)。

希望大家能夠多多實踐其他的事件指令,我重點只講【流程控制】部分和【條件控制】部分。由于我工作繁忙,我盡量不涉及其他過于簡單的內(nèi)容。如果大家有任何疑問務必讓我知道,我會盡快進行解答。如果您喜歡這一系列教程,或者對游戲制作產(chǎn)生了興趣,請您關(guān)注我避免錯過更新的教程。有任何疑問或者批評,煩請私信聯(lián)系。

<a>素材公開計劃:</a>如果本系列教程反響較好,我會逐步公開我制作游戲時用到的免費非商業(yè)授權(quán)素材,也可以推薦一些支持商業(yè)授權(quán)的素材網(wǎng)站(日本網(wǎng)站居多,需要VPN)。

<a>未來游戲計劃:</a>請點擊這個鏈接訪問關(guān)于【未來游戲計劃】的內(nèi)容。

由于近期工作繁忙,教程的寫作過程可能過于倉促,有任何沒有看懂的地方或者疑問,請務必讓我知道,我會盡量進行回復。如果您愿意支持我不斷進行開源和創(chuàng)作,也可以稍稍打賞我一下,Lemo在這里謝過大家的關(guān)注,希望各位能夠在這一系列小小的教程結(jié)束之后,完成自己兒時開發(fā)游戲的夢想。


我是Lem0,自學倡導者,執(zhí)迷于“不務正業(yè)”,被批評“旁門左道”。與大家分享英語/編程/高效自學的所思所想。

已授權(quán)“版權(quán)印”進行版權(quán)保護。獲取授權(quán)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容

  • 我是Lem0,自學倡導者,執(zhí)迷于“不務正業(yè)”,被批評“旁門左道”。我注冊并使用簡書,希望能夠記錄一些我記不住的事情...
    Lem0閱讀 2,064評論 3 18
  • 我是Lem0,自學倡導者,執(zhí)迷于“不務正業(yè)”,被批評“旁門左道”。我注冊并使用簡書,希望能夠記錄一些我記不住的事情...
    Lem0閱讀 1,815評論 1 8
  • 引言 游戲開發(fā)分為客戶端和服務端,服務端和客戶端的邏輯很相似,但是服務端更多在于數(shù)值計算和校驗,客戶端更多在于面向...
    Geons閱讀 992評論 0 8
  • 我是Lem0,自學倡導者,執(zhí)迷于“不務正業(yè)”,被批評“旁門左道”。我注冊并使用簡書,希望能夠記錄一些我記不住的事情...
    Lem0閱讀 4,926評論 9 83
  • 你永遠無法衡量最愛你的人有多愛你!當你說:我吃藥的時候看到一個新聞!沒有一絲停頓的說:你吃什么藥?即使是試探也讓...
    luck兔閱讀 307評論 0 0