iT邦幫忙

2021 iThome 鐵人賽

DAY 3
0

以群體為主的敵人

從Eye of Beholder(EoB)或是類似的遊戲裡可以看到敵人是以一群群的方式聚集,但也是有可能會有一群裡只有一隻的情況。

因此,目前的遊戲敵人也會以一群群為單位,在地圖上進行移動。

玩家和敵人群體的移動是採用回合制,也就說玩家移動後才換敵方移動。而這樣的輸流移動,是最適合用狀態機進行處理,剛好VS也有狀態機的機制可以使用。

也為了要能夠讓敵人移動,將之前的Grid Data進行修正,讓玩家和敵人可以共用同樣的機制,並且調整到由Script端給可否移動的資訊,再由VS端自行決定是否要移動到該位置。

現階段的敵人會拿取A★的格狀資料,並進行隨意移動。雖然這不是很正確的移動方式,但至少拿到了格狀資料,不會移動到障礙物(如牆壁)裡。之後進行AI時,會拿取A★的資料加以利用後做有意義的移動行為。

為了統一玩家和敵人的概念,一律用群為單位,也就是說就算是遊戲本身是控制單一角色,概念上仍是以一個玩家群進行移動。為了要確定哪個敵人移動過,利用Dictionary進行暫存,並於每回合切換時進行重置。

雖然是不是動態的呈現,但仍可看到代表敵人的紅點在畫面上進行移動

調整成FPS視角

基本的玩家移動和怪物移動完成後,在Playmode裡因為Camera沒有跟著玩家做移動,當玩家移動幾格後就看不到,趁著基本移動成形之時,先把Camera跟隨和其視角調整一下。

自從Unity將Cinemachine功能加入後,直接利用它進行Camera的行為已經是常態了。利用Unity提供的Cinemachine,可將FPS的鏡頭的快速設定好。不過這個時間點也只是做大概的設定,實際細部的調整之後才會進行。但在這樣簡易的調整下,效果就已符合預期

畫面的呈現

後續調整

基本移動出來了,但現在拿取到的移動資料是直接引用A★的格狀資料,此資料只有記錄地形本身的連接性,考量到玩家有可能會被怪物群擋住移動,但可能有某些手段可以移動過去,怪物群之間的移動或許可重疊等較為遊戲玩法不確性,怪物一群群的資料額外記錄引用會比較適合。


上一篇
Dungeon Mizarka 002
下一篇
Dungeon Mizarka 004
系列文
FPS dungeon crawler game devlog30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言