方格精選

【Turret vs Tank】場景配置到角色部署

更新 發佈閱讀 12 分鐘

在這個遊戲的workshop中,看到一個【Aqua Defense】,訂閱下來小玩了一下。除了一直有奇怪的重複音效以外,大致上完成度算是夠高了。基本上這就是一個【Plants vs Zombies】規格的作品,不過它沒有向日葵這種單位可以生產錢幣,而是定時生產,剩下的就是其他單位不同而已。

如果沒玩過【Plants vs Zombies】的,可以看一下這段影片

既然是【Plants vs Zombies】,是我玩過很不錯的塔防遊戲,想說第一個挑戰遊戲就來做一個PvZ like的遊戲吧。GameBuilder裡很適合一些能”發射”東西的設計,不然就來個”砲台對坦克”吧。

場景配置

首先當然就是先透過「5-TERRAIN」等相關功能,把我們的場景先畫出來,擺上要保護的電腦主機,大致上像這樣:

raw-image

雖然這個遊戲應有固定視角,不打算讓玩家可按「v」可以切換視角,甚至還可以跑來跑去,但我們可先不急著設定主角的攝影機及行動能力,這樣在佈置場景或觀察問題上會比較方便。不過主角身上確實有一些卡片或面板用不上可以拿掉,最後大概會用上的只剩這些:

raw-image

主角可以跑來跑去,可以跳,不需要拿東西丟東西,本來死掉會從重生點復活,我們的規格基本上就是「遊戲結束」了,所以就把「HEALTH/At Death」區段的卡片換成了「Game over !」。

結束條件

(也許有的讀者會覺得很奇怪,不是應該由那5個主機全滅來結束遊戲嗎?關主角什麼事呢?因為反正主角橫豎都是要放在那裡,不然就把它的面板和卡片拿來用好了。)

那5台主機,請記得要用複製第一台的方式來貼上另外4台,這樣系統就會把那4台視為是第一台的同類物件,然後我們就可以只設定第一台的行為,套用到其他4台。

raw-image

接下來就是主機的行為,其實很單純,只要在被敵人攻擊時,自爆加扣血就行了:

raw-image

碰撞卡片的設定,可透過「Actor with tag...」的設定,達到我們要的規格:

raw-image

就是這個,屆時在做敵軍這一塊時,只要記得把所有的敵軍都加入「enemy」這個tag,就可以設定不管是哪種敵軍碰到主機都會條件成立。

「Cause Damage」卡片要做的設定,則是讓它去扣主角的血,這樣就可以利用主角來判斷是否要結束遊戲囉:

raw-image

「Explode」這張卡片,只是因為它很方便符合我們需求而選用(有爆炸粒子及音效)。若你有其他的效果需求,當然也可以自己組。

定時補給

在PvZ中,即使沒有養向日葵,也會在一定時間後補一些太陽給玩家,讓玩家至少能買向日葵,才有後續的其他植物可用,在一個砲台及坦克為主題的遊戲中,「補給機」就很適合這樣的角色,所以我們就來加入這樣的角色吧。

補給機

當然,內建的Model並沒有直升機這樣的東西可以馬上加入,我們可透過「1-CREATE/OBJECTS FROM WEB」下去搜尋。由於我用”transpoter”並沒有找到什麼東西,只好把範圍放大點,用”helicopter”關鍵字找到了一台看上去還順眼的直升機。

raw-image

補給機的規格很簡單,我希望一定秒數後才能出來,然後固定投下幾個寶箱代表補給品,然後離場,大致上就像這樣:

raw-image

因此,我們可以把補給機部署在場上,然後開始設定它的行為。這裡會用到的面板是「MOVEMENT」及「TIMER ACTION」:

raw-image

「TIMER ACTION」是一個定時器的概念,時間到時執行你放進去的卡片,而「Repeat」屬性表示要不要重新計時(當然就會重新執行卡片),左上角那個「Spawn Actor」要創建出來的就是補給箱,每2秒放一個。而右下角那個當然就是設定補給機何時該退場。大致上跑出來的感覺像這樣:

補給機假想結果(實際上是做好的結果)

運輸機本身的行為驗證沒問題的話,我們就可以先讓它「OffStage」去了,因為它不是需要一開始就在場上的,而是需要一個創建點決定何時要把補給機創建出來。所以這裡我們就很簡單的,就隨便丟個方塊上去就行了(反正這不是要給玩家看的)。把方塊擺到你打算創建補給機出來的地點後,接下來就是設定它的行為:

raw-image

Repeat 20秒,這就看遊戲規格了。而「SpawnActor」當然就是來創建我們的補給機了:

raw-image

「supply_helicopter」就是我們剛剛設計好的補給機,記得去「OffStage」那區選。到此為止,若一切設定都正確,應該就可以看到剛剛的「補給機假想結果」的影片效果囉!

補給箱

反正主角已建好分數系統,我們就直接把分數當作錢來用吧。模型部分也不用費心了,就用內建的那個寶箱代替就行囉:

raw-image

而它的行為也不複雜,就是點它會加分數,太久沒點要自我銷毀,就像這樣:

raw-image

19秒會閃紅色警告,第20秒就會自我銷毀囉。比較需要注意的是那個「Score Point」的內容:

raw-image

要記得「Override who scores」,要加的是主角(Player1)的分數。

角色平台

選取功能

如同PvZ一樣,我們準備加入2個角色,一個是生產補給箱的,一個是最基本的單發砲台。在「1-CREATE/Items/」有一個「Frisbee」長得還蠻像平台的,不然就選它吧。

raw-image

然後我們再用對講機(walkie)和砲台(turret)去搜尋可用模型,找一些不錯的模型下來:

raw-image

大致上擺一擺就像下圖:

raw-image

圖中這兩個角色平台,左邊(物件名叫「unit_model_pad」)的是我們要設定行為的,右邊則是左邊的同類品(copy),也就是說,我們打算讓這些角色平台擁有一樣的行為,這樣在新增新角色(平台)時,才能保證它們的行為是一致的。

對於這個平台,我們要做到的規格是這樣的:

  1. 游標點它一下,會持續閃爍紅色(selected),表示若要部署單位到場上時,是部署什麼單立上去。若同時有其他的平台正在閃爍紅色時,就要取消其狀態,表示現在改選我剛剛點的那一個。
  2. 在閃爍紅色時點它一下,就不會再閃爍了,表示此時我點擊場上任何一個位置時,不會被當做是要部署單位上場。
  3. 有一個方法可供其他物件清除該平台「閃爍紅色」的狀態。例如當部署單位到場上完成時,就讓該平台回復原狀態。

以下是我們需要的卡片,這邊就比較偏程式的邏輯了:

raw-image
  • 「A」面板中,我們這裡並不直接判斷「是否有點擊」這樣的條件,而是統一以一個變數(變數名為「selected」)來判斷現在是否需要紅色閃爍表示選取中。因為能夠決定這個狀態的來源會有兩個以上,甚至是來自於其他的物件
  • 「B」面板中,我們若聽到指定的訊息(clear_unit_pad_selection),就把「selected」設成0,這樣「A」面板就不會再執行「Flash Red」的卡片。
  • 「C」面板很簡單,就是初始化的動作,直接把「selected」設成0。
  • 「D」面板就是我們要的動作了:若玩家點了這個面板(ActorClicked),且不是在已選擇狀態(selected == 0),就把selected設為1,讓「A」面板去負責變色
  • 「E」是「D」的反向,若點了面板,但是在已選擇狀態,就把selected設為0,「A」面板就不會再執行「Flash Red」的卡片。

選取狀態管理

由於我們最終可是要把角色部署在場上的,而平台只負責顯示自身的選取狀態,只知道自己有沒有被選取。因此我們需要有另一個物件來判斷這些平台的選取狀態,並提供「最終玩家選取的是哪個角色?」這樣的資訊,才能正確的部署上玩家想要的角色。

因此,我們和補給機的作法很類似,我們丟了個方塊(unit_selection_manager)放在角色平台旁,給它如下任務:

raw-image
  • 在左面板,我們要判斷第1個角色的平台是否有被選取,是的話我們把玩家最終要部署的角色種類(selected_unit)設定為1,而且要把第2個角色平台的selected設為0,這樣才能做到同時間只有一個平台是selected的。
  • 右面板和左面板類似,只是改判斷第2個角色平台,把第1個角色平台的selected設為0的差別。

剛剛提到「把第2個角色平台的selected設為0」這件事,一樣是「 Change Variable」做的,只是要選一下參數:

raw-image

設定正確的話,我們應該可有這樣的效果:

影片中,同一個角色平台我點了2次,第2次就會取消其「selected」狀態。而當我點了另一個平台時,原平台的「selected」狀態也會被取消,換成新平台被「selected」了。

部署角色

在把角色平台也設定完之後,我們已經可以知道玩家想要部署哪個角色了,接下來就是真的部署到場景上囉。GameBuilder很奇怪的是並沒有提供「TerrainClicked」這樣的卡片(只有「ActorClicked」),所以我們要讓玩家可以把角色部署上場景,我們得在地板上放個Actor上去給玩家點。

因此我們就直接創建一個小板(透過1-CREATE/SHAPES/PrimitivePlane)放上去,並且將它的「Hide in play mode」勾選起來,就可以不在遊戲中看到它,但仍然可以透過它來處理部署的事情囉:

raw-image

和之前的設計流程一樣,我們也是把這塊的行為都設定好,然後再複製貼到所有可部署的位置上就行囉。它的行為並沒太複雜:

raw-image

先說上面那個「IF THEN」面板。在「If:」區有4個條件同時成立才會執行「Then do:」區的卡片。

其中有兩個「Variable Is...」卡片,左邊那張卡我們用來檢查這位置是否已部署過任何角色:

raw-image

和之前的設計邏輯一樣,我們並沒有預先宣告過有這個「deployed_unit」變數存在,因此它一開始就是0。而右邊那張卡則是用來判斷現在要部署的單位是哪一個:

raw-image

就像之前的設定一樣,我們是去問「unit_selection_manager」的「selected_unit」這個變數是否為1,是的話我們就知道要部署「supplyer_unit」物件上去。

在「Then do:」區中的「Score Point」是做什麼用的呢?當然是扣錢啦,買單位要付費的。本來「Score Point」是用來加分的,但其實它當然也可以用來扣分:

raw-image

看「supplyer_unit」要多少錢,這邊輸入進去就是了,但是要記得扣「Player1」的分數就是了。

最後那個「Change Variable」,當然就是記得要把自己的「deployed_unit」設成非0的值,在這裡我們就直接照角色編號給個1就行囉。

搞懂上面那個「IF THEN」面板的話,下面那個就依樣畫葫蘆就行了,只是「deployed_unit」設定的值不一樣,「SpawnActor」出來的物件不同囉。

這個部署角色區測試行為差不多都正確時,就可以複製貼上到整個場景區囉:

raw-image

複製的時候,可選1個貼1個,選2個貼2個,選4個貼4個依此類推,雖然看上去要貼的數量很多,但其實真的貼起來很快。

若一切順利,到目前為止的進度,大致上就是會看到這樣的效果囉:


留言
avatar-img
SharpWriter(周乃宏)的沙龍
34會員
69內容數
Google實驗室Area120釋出了一個「製作遊戲」的遊戲叫「Game Builder」。 主要的用戶是遊戲編導,方便他們以拖拉卡片的型式來驗證遊戲性好不好。 因此這個專題就是「Game Builder」的"真心話(好用難用都會說)"和"大冒險(真的來挑戰看看能做什麼遊戲)"囉!
你可能也想看
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
在數創整合與作品集結束以後加速完工的專題作品,這篇文章將會講述遊戲類型概述與技術層面的成長。
Thumbnail
在數創整合與作品集結束以後加速完工的專題作品,這篇文章將會講述遊戲類型概述與技術層面的成長。
Thumbnail
我們說一款遊戲「有沒有料」是指它好不好玩,但是如何「提香」帶領新手循序漸進融入狀況,也是一門手藝,這點業界都得向 ▇ ▇ ▇ 看齊,敘事的方式
Thumbnail
我們說一款遊戲「有沒有料」是指它好不好玩,但是如何「提香」帶領新手循序漸進融入狀況,也是一門手藝,這點業界都得向 ▇ ▇ ▇ 看齊,敘事的方式
Thumbnail
前陣子我一直在尋找我家微米可能會喜歡玩的遊戲,午夜夢迴時突然想到了這款《植物大戰殭屍》(Plants vs. Zombies)。 這是我在大學時非常喜歡的一款遊戲,也是因為這個,我才注意到 PopCap 這間公司。
Thumbnail
前陣子我一直在尋找我家微米可能會喜歡玩的遊戲,午夜夢迴時突然想到了這款《植物大戰殭屍》(Plants vs. Zombies)。 這是我在大學時非常喜歡的一款遊戲,也是因為這個,我才注意到 PopCap 這間公司。
Thumbnail
由獨立遊戲開發團隊RockAndBushes《木星衛星:機甲 Jupiter Moons: Mecha》,它的遊戲主題十分特殊,是一款主打在木星上透過組裝機甲與敵人進行戰鬥的遊戲,至於是怎樣戰鬥呢?沒錯,用卡片召喚激光炮與敵人進行死鬥!
Thumbnail
由獨立遊戲開發團隊RockAndBushes《木星衛星:機甲 Jupiter Moons: Mecha》,它的遊戲主題十分特殊,是一款主打在木星上透過組裝機甲與敵人進行戰鬥的遊戲,至於是怎樣戰鬥呢?沒錯,用卡片召喚激光炮與敵人進行死鬥!
Thumbnail
《沙盒勇者》此遊戲適合喜歡2D沙盒、建造、生存、基地守塔類的玩家遊玩。
Thumbnail
《沙盒勇者》此遊戲適合喜歡2D沙盒、建造、生存、基地守塔類的玩家遊玩。
Thumbnail
最後我們將講解事件第三頁的指令,這個部分的指令有些比較少用到,但還是蠻實用的!
Thumbnail
最後我們將講解事件第三頁的指令,這個部分的指令有些比較少用到,但還是蠻實用的!
Thumbnail
遊戲名稱:輸出牧場Output Pasture 遊戲類型:Rogue-like+塔防 遊戲壽命:兩小時以內或兩小時以上(非常極端的類型) 售價:台幣198元(建議打折入手,折扣越低越值得)
Thumbnail
遊戲名稱:輸出牧場Output Pasture 遊戲類型:Rogue-like+塔防 遊戲壽命:兩小時以內或兩小時以上(非常極端的類型) 售價:台幣198元(建議打折入手,折扣越低越值得)
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News