Environment Tree(環境樹)

翻譯:i_dovelemon

來源:http://www.squidi.net/three/entry.php?id=4

日期:2015 / 1 / 28

主題: Game Mechanic, Idea


引言

           通過將環境模擬成一個樹形結構來產生圖塊和門,而不會產生無法戰勝的情況。


介紹

           隨機產生遊戲內容的設計方式是遊戲設計裏面的聖盃。如果能夠在遊戲裏面及時的產生任意多的或者大量的各種各樣的物體,那麼就表示這個遊戲將能夠永遠的被人們玩下去。就算做不到這種程度,遊戲如果能夠隨機產生大部分的內容,像Diablo II或者NetHack,那麼這樣的遊戲也會變的十分的流行,並且人們願意再次的玩下去。

         不幸的是,現在使用程序生成技術產生的遊戲都是比較簡單,內容比較明顯的物體,並且主要用在生成地下世界的地圖上面,這樣的方式產生的效果並沒有超過一個孩童使用關卡編輯器來的好。我深信使用程序生成的技術能夠用來設計一個完整的遊戲,從開始,到中間過渡,以至最後的設計都可以使用,並且這樣設計出來的遊戲,要比當前遊戲水平的平均水平要高很多。但是,這樣的技術現在很難實現,要實現這樣的設計,還有很長的路要走。

         這個想法並不是一個遊戲玩法機制的設計,更像是如何設計遊戲玩法的技術。簡單來說,我們通過樹狀的結構來描述整個遊戲世界,那麼我們就能夠很容易的擺放我們的地圖塊,而不會出現不能戰勝的情況。


描述

      

       上圖就是我將要用來解釋說明這個技術的地圖。這個地圖包含兩個樓層和一個屋頂。上面的藍色小塊表示的是能夠隨意開啓,關閉的門。而灰色的門是隱藏着的門,這種門在兩個房間之間。對於普通的門來說,我們能夠關閉和開啓,但是關閉隱藏的門卻沒有任何的反應。我們可以將隱藏的門堵起來,比如說放置一個障礙物或者火焰之類的東西。       

      上圖就是整個空間的空間劃分樹,你可以看到這整個樹就是你在進入大廈之後可能會依次遇到的房間。這是一個非常簡單的空間樹,因爲這裏並沒有循環路徑,單方向門,多點的入口之類的東西。

      現在就是見證奇蹟的時刻了。比如說我們總共想要有3個遊戲拼圖,並且爲了簡化,他們都是簡單的鑰匙/門這樣的拼圖,這裏的鑰匙/門是一個概念,只要滿足這樣的條件:你帶有某種物體或者物件X,這裏就是鑰匙來訪問這個區域,那麼這個區域會包含新的鑰匙或者獎勵來回饋給你;的物體都是這裏的鑰匙/門。

       你可能注意到在上圖中,每一條藍色的線條就和一個路徑對應着,如果我們將某一個路徑關閉了,那麼所有這個路徑下面的節點都將不不能夠被訪問到。我們沒有辦法通過被鎖定的門,而這個空間結構樹能夠很容易的告知我們哪些房間是什麼東西。比如說,我想將最後的勝利物品放置在屋頂的小屋當中。如果我們將屋頂鎖定起來,像這樣:

   

   

   這個例子告訴了我們一個非常重要的內容。相對於紅色區域來說,所有的白色區域都是可以訪問的。只要我們將這個記住,我們就可以反向的來構造這個樹,這樣就總是可以完全的走完所有的房間,拿到指定的物品。比如說,我們在2樓裏面放置一個鑰匙,然後將2樓鎖定起來,並且2樓的鑰匙是用來打開屋頂的。我們在將2樓鎖起來之後,再將2樓頂點鑰匙放置在後屋中,這個鑰匙是用來打開被鎖定的2樓的。同樣的我們在將後屋鎖定,將鑰匙放在1樓走廊可以連接到的任意一個房間中。這樣,通過這樣的反向操作,我們就可以依次的獲取放在1樓的鑰匙來打開後屋,獲取後屋中的鑰匙,來打開2樓,並且獲取2樓中的鑰匙來打開屋頂。這樣就不會出現無法完成的情況了。

      看到沒有,這是一個非常簡單的算法。要使得遊戲更加的有趣,我們可以改變遊戲地圖中的鑰匙。比如說,在某個房間中,存在一個Boss,你必須打敗他才能夠獲取到鑰匙。每一個房間都需要特定的輸入才能夠打開。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章