嘎姆遊刊是嘎姆擂台(gamelet.com)提供給玩家們發表論文、分享心得的園地。歡迎玩家們自由投稿,在嗄姆的歷史上留下自己的足跡。

2017年9月19日 星期二

多人無限地圖&隨機生成地圖之應用


【多人無限地圖】

其原理是藉由將物件放置於「空白地圖」上,之後再逐一儲存各個物件的座標,就跟無限地圖一樣。但它又與"無限地圖"差在哪呢?

相信大家都很熟悉命運一年前所製作的RPG,”SAO刀劍神域",是不是所有玩家都得在"同一層"進行攻略,直到打敗該層BOSS後才能前往下一層呢?


▲人手建的地圖

▲SAO第一層

這就是很典型的"無限地圖",任務本身雖可展現很多不同的地圖,但玩家會被綁在一起活動,不可以分開行動。就像火魂若想前往第87層,而命運想前往第88層,那就需要多人無限地圖了。

在正式介紹之前,先來看一下"多人無限地圖"是如何運作的:

影片1: https://youtu.be/LpHXtFf7iME

影片2: https://youtu.be/QneqhT9q_ek

在影片可以看到玩家可自由前往其他地圖,就如激戰區一樣,站在東方的出口,可以去東方的地圖,就算玩家A想去1號地圖,玩家B想去2號地圖,在多人無限地圖之下,就可以達成。

首先,得先將地圖分為長寬相等的分區,而每張區域地圖的狀態代表著極大的意義。

我們來做個舉例:

這張地圖被我分為八等份,而目前的地圖都是空白狀態。

假使火魂想前往第三層。

一開始,要先檢查場上是否有"對應的地圖",如果地圖上有第三層,就直接將欲前往的玩家傳至指定位置就可以了。

如果沒有,就得找出"閒置中的地圖"。

我們在這裡再做個假設:

map1等於0時代表該地圖為空。

map1.player等於1時代表有人在內,為0則代表無人。

假設系統判別出第一張地圖內無人時,就把map1設定為玩家欲前往的層數

map1 => 3
然後再讓系統依序將物件放到指定位置。

何謂指定位置?假設你當初把物件放置於map2,但你現在想放到map1,就需要將物件偏移放置,因此在做傳送系統前,要記得把存檔時放置物件的位置與各張地圖的位移算出來喔!


▲偏移方向與偏移距離

【隨機生成地圖】

無限隨機地圖,即是一種在無限地圖延伸的技術。在完成無限地圖系統後,總會遇上一個問題 — 誰來做地圖啊?

有兩種方法可以做出地圖,

第一種,是由人手設計地圖,之後把地圖存入.var檔中,再經由讀檔,把地圖資料載入任務中。這種方法很花時間,也可能要請人幫忙製作,也可能會中途斷線(吐血)。

第二種,就是由電腦自行繪製的「隨機生成地圖」。


▲河川森林演算法

這種地圖有一個特點,就是有「特徽」。比如一張城市地圖會有道路、公園、屋子,只要你歸納出地圖的特點,就可以應用「隨機生成地圖」。

歸納好地圖特點之後,之後再設計演算法。

演算法大概的意思是「地圖生成的步驟」,你需要為系統設計好生成的步驟,這樣電腦才會生成隨機地圖。以下用「人造森林」來當例子,這樣會比較好懂。


▲人造森林演算法
Step 1:歸納特點

正常來說,一個森林會有草地樹木石塊等等,而人造森林的不同之處在於 — 道路。在森林上開拓了一條道路,就會變成人造森林。

Step 2:編寫演算法

歸納特點後,我們可以看到一個人造森林分成2部分:

  1. 道路(即圖中白色區域)
  2. 樹林&草地(圖中白色區域以外)

所以步驟是 先畫出道路,再在道路以外的區域,隨機生成樹林和草地。


▲生成道路

▲生成森林,完成!

影片: https://youtu.be/QI4LX96UXj0

這邊不作深入解釋段法是如何運作的,如果有興趣,可以看看河川森林演算法的實作。事實上。命運我還做了很多種算法(火魂說是黑技術),這邊用最簡單來為大家解釋。

一個多人無限地圖,是無限的開始;而隨機生成地圖,則是讓無限地圖變得高效運用的東西,要兩者合用得宜,才可以更高效地製作任務。


同人技術研討中心:https://sites.google.com/site/twftechnique/
火魂、的同人專區:https://www.facebook.com/Fire.soul.prefecture/
※ 遊刊文章內容不代表嘎姆擂台官方立場 分享:

4 則留言:

  1. 問一下

    有辦法刪除無限隨機地圖生成的多餘物件進行修改嗎

    回覆刪除
    回覆
    1. 生成的隨機地圖可以自行編輯

      刪除
    2. 有辦法針對座標進行刪除嗎

      還是只能做反覆上一步的動作刪除多於物件

      刪除
    3. 可以直接針對座標刪啊

      刪除

好文就是要分享

贊助廣告