獨立開發者:如何爲冒險遊戲做隨機關卡

【Gamelook專稿,轉載請註明出處】

Gamelook報道/很多遊戲都會有通關、打怪和解謎設定,尤其是冒險遊戲。對於規模比較小的團隊,特別是單槍匹馬的開發者來說,創作大量的地牢和關卡是非常耗時間的,所以不少獨立開發者都會製作隨機關卡生成器,這樣不僅可以提高遊戲的可重複性,還可以最大化地節約時間。最近,一位名叫Pascal Bestebroer的獨立開發者在博客中講述了隨機關卡生成器的設計理念,以下是詳細的博文內容:

多年來,我一直都在寫程序化關卡生成,包括從《Gunslugs 1》非常簡單的關卡,到最初版《Heroes of Loot》裏更加有趣的隨機謎題。對於我來說,增加程序生成關卡最大的原因在於,它可以提高遊戲的可重複價值,因爲它可以產生無限數量的遊戲房間。而且,它所生成大量的內容對於單槍匹馬的開發者來說是非常耗時間的。

在本週發佈到Early Access的《Heroes of Loot 2》裏,我希望提高此前做的所有關卡生成編輯器,不僅讓它們得出有趣的地牢,還可以增加可解決的任務和挑戰。

確定遊戲設計

我開始着手做一些地牢,它們有一個主通道、一個開始房間和一個出口房間,這個通道應該有很多個可選路線作爲分散玩家注意力的因素,有可選的出口或者通向任務所需重要物品所在地的位置。

最後,這個主通道還應該有被很多門隔開的走廊,你需要找到要是、解決謎題或者擊敗怪獸才能夠通過。

地牢裏充斥着各種形狀和形式的敵人,擁有標準化的資源、稀有物品、財物寶箱、魔法寶箱以及可破壞場景等等。

任務方面,我們有時候需要放置雕像、祭壇,給一個房間放滿東西,或者放置特殊物品。

這些都是我們做關卡生成器的的時候必須考慮的功能,確保這些東西都可以正常運轉,保證每個關卡都是完整而且有趣的。

創造初始房間

和關卡設計師的工作一樣,地牢生成最開始也是要做首個房間,從這個區域開始,後續的所有地牢看起來都像是一棵樹的不同分支,後續的每個房間都需要考慮此前的地點、主通道以及地牢和任務的要求等等。

8

初始房間

我決定永遠不給第一個房間放置敵人,這樣玩家們可以在進入新地牢的時候可以獲得短暫的休息,這個房間裏零散分佈着隨機的場景,玩家們可以在通過的時候獲得健康值和經驗值。

第一個房間做好之後,緊接着我們要做的就是從東南西北挑選一個隨機方向,這就是地牢的區域持續延伸的方向,房間與房間之間要有走廊,而且走廊的長度不能低於2個tile,這樣你才能爲之增加一個門。

延展區域

創作走廊是我們做遞歸世界生成器的第一步,一旦走廊的方向和大小確定之後,我們還會基於走廊的終點挑選隨機的大小和位置創作下一個房間。

當這些數值確定之後,我們首先要檢查是否必要的區域是否仍被閒置着,這樣纔不會把現有房間和走廊做的重疊,如果走廊或者新房間的區域被佔用了,我們就要重新計算,並且選擇新的隨機方向,這樣不斷地重複,直到找到一個不重合的區域做走廊和需要的房間,否則的話,我們就必須放棄並且完全停止地牢的創造,發生這種情況是有可能的,因爲有時候地牢當中所剩的空間已經沒辦法再做任何的房間。

在這款遊戲裏,我避免了房間與走廊的重疊,因爲我們從開始到完成地牢只需要一條路,這樣我們就可以增加任務,並且可以確保玩家沒辦法選擇另一條路來避開上鎖的門或者任務。

除了主通道之外,我們還嘗試給每一個房間都增加隨機的分路,這樣不僅讓地牢變得更加有趣,還方便我們需要增加任務和藏鑰匙的房間。

對於每一個房間,我們都增加了二級分支,還標記了可能藏鑰匙的位置,這將會被用在任務生成代碼中。

門、鑰匙和任務的放置

上面的順序介紹了我們所創作的地牢的外星,包括從初始房間、走廊到接下來的房間,我們按照這種方式生成很多房間,直到地牢裏沒有做更多房間的空間爲止。在創作新走廊的同時,我們還嘗試放置任務,比如把鑰匙放在此前創作的房間裏、在門被打開之前增加一個需要擊殺的小BOSS等等。

9

所以在我們放置走廊的時候,選中了一個隨機點、從已經挑選的任務當中隨機放置一個,有些任務非常簡單,只需要之前房間的一個地點就可以藏鑰匙,或者,你也可以放置一個雕塑。

其他任務則會檢查此前創作房間的備用通道,看是否滿足要求。比如一個小BOSS戰需要最小尺寸的房間和足夠的挪動空間,如果這樣的房間沒有的話,那麼這個任務就沒法做,所以這樣的通道就不用添加一個門。

在這一切就緒之後,我們在可選道路上增加一個解鎖任務的門,甚至還可以在門的前面增加一個角色,向玩家解釋需要怎麼做才能開門,這時候我們的地牢就有了任務。

特殊房間

標準的房間和通道是必要的,但對於地牢裏的房間,我們還有更多的處理方式。當放置一個房間的時候,我們首先要處理的就是特殊房間的功能,房間的大小、走廊位置以及隨機數值都會決定我們是否可以把它用作特殊房間。最基本的用途就是做成商店,所以,如果一個房間達到能夠放置一個角色、幾張桌子和一些物品,那麼它就可以作爲商店,不用增加什麼任務。這種情況下,我們要限制每個地牢裏特殊房間的生成數量。

10

其他這樣的特殊房間可以放滿東西,或者還可以做一個放置特殊寶箱的房間,不過這個房間進入之後會有一堆敵人攻擊你。

房間內容設計

在創作房間階段,我們只是做了一個空空如也的區域,不過除非你想要一個當作走廊的房間,否則就一定要增加一些其他東西。做好了房間之後,要留出一定的空間放置其他東西。如果房間足夠大,你還可以在邊緣做一些隨機區域,增加牆壁和小的走廊。隨後,我們可以增加怪獸和資源,有時候還可以增加蠟燭爲玩家照亮整個區域。

12

遊戲永遠都需要完善

在研發《Heroes of Loot 2》的時候,我大多數的時間都用來做關卡生成器,我在一直不斷地爲之進行提高,增加功能並且修復關卡生成bug。你做的生成器越大,就會有越多地方出錯。由於是隨機生成的,所以我不可能測試所有的房間、走廊、任務以及敵人。

我對於目前遊戲的狀態感到自信,這也是我把《Heroes of Loot 2》發佈到Early Access的原因,這款遊戲裏有無限的可玩地牢可以生成,而且,只有玩家們測試之後才能確定是否還會有錯誤發生。