早安晚安哈囉你好我是發條(=w=)
這次也很榮幸的參加了第十屆的DIY Game Jam
(好快,都第十屆了~)
除了每次都因興趣參加外,這次久違的與其他人線上組隊
那麼廢話不多說,馬上進入開發心得環節~
主題
這次的主題是"想不到吧 You Never Know!"
撇除公會提供的主題外,我自己也決定了本次活動想拿之前開發的遊戲系統來修改使用
沒有特別原因,就覺得有趣然後順便看一下自己幾年前的系統設計如何w
想說就拿當時製作的Isometric tile系統底層來改一改看能玩出甚麼花樣吧
接著想到其實最初做這個系統時的一個小demo就是使用這堆方塊製造出波浪(這個後來在Tile Dungeon Escape運用在了顯示方塊的效果)
因此就決定做一個跟海上探索的輕鬆小遊戲
遊戲機本沒有太
藉由各種海上活動(釣魚、打撈以及探索)來達到"想不到吧"的感覺
在考慮製作方向的同時,也有和其他兩位有興趣參加的人討論是否一起組隊,但最後有1人並沒有達成共識
所以最後由我以及美術的WHEL一起組隊,然後基本上使用我這個發想往下做
經過討論後,也增加了不少例如NPC對話、任務、解謎以及劇情等等想要做的系統
遊戲系統
首先我當然先把好幾年前的遊戲挖出來、把上面的灰塵吹一吹
擷取出我想要用的內容,例如方塊與地圖生成
但後來發現由於當時的遊戲開發後期極度的針對遊戲客製化導致系統耦合度過高、在移植過程中錯誤一堆
因此我重新審視了一遍系統,連自己都在問自己為何當初要有這樣的設計w
最後乾脆把所有內容都砍了,只留下最底層的邏輯(方塊生成與基本架構)
簡單來說就是你買了台二手電腦,然後把除了CPU以外的東西全丟了重新裝一台的概念w
忒休斯之系統
重新審視與修改之後也讓系統變得更簡潔易讀(=w=)
然後就先製作我們遊戲的基底: 海
在Tile Dungeon Escape中,我是藉由生成器讓系統讀取圖檔生成整個地圖
意思是如果這是一個15*15的地圖,意思就是最多會有225個方塊同時在遊戲中
而且在那款遊戲中的地圖都不大,因此不是太嚴重的問題
但這次的場景是一片汪洋(大概50*50),意思是照舊系統至少要一次生成2500個方塊且要動態調整他們的狀態(例如波浪)
怎麼聽都會覺得恐怖w
因此我想到的解決辦法是把地圖改為資料驅動,意思是不實際顯示方塊,而是依照玩家所在生成相對應的方塊樣式即可
這樣就可以依照設定的視野範圍顯示固定量的物件,例如5*5的視野範圍那麼永遠只有25個方塊會被生成
接著就開始動手作
其實我原本的想法更極端、想要做到"假移動"的效果
就是玩家實際上沒有移動,而是靠"捲動"背景中的方塊來達到像是在移動的感覺
但最後由於要同時執行大量的運算導致容易出Bug很難維護,而且效果還很不好(很多時候像是在抽動而不是滾動)
所以我就放棄此方案、改用實際移動更新背景的方式
接著使用舊版的地圖生成器,生成了簡易的地圖來測試
然後調整了系統、在指定地圖位置生成NPC或是釣點,也應美術要求測試了2D光影,但後來發現直接使用相同圖片調整大小位置就可以做到簡易的影子效果(Unity預設的感覺都像在洞穴中的光影,而不是單純的影子)
接著就是最有趣的機制: 海浪
我這邊研究了一下如何有效率的製造海浪效果,原本的系統只支援個別方塊的移動,但依次多個有協調性的可能就有問題
因此我的解決辦法是有個海浪控制器,會讓方塊知道依照目前自己的座標,Y軸位移量為多少
還方便可以依照座標控制海浪樣式(=w=)
接著製作了釣魚系統,使用一個Manager管理各個釣點的資訊,包含取的特定漁獲的機率
這麼做的好處是之後只要修改這邊的資料就能輕易修改遊戲中各個釣點內容
在指定位置按下互動按鈕後釣點會與這個Manager查詢取得釣點的物件池
接著製作了簡易的狀態機、在指定時間內按下按鈕即可釣起物件池中設定的魚
之後加入了道具欄系統,可以把釣到的物件存起來並顯示不同的類別
接著應要求製作了NPC的簡易對話功能與互動
把前面的道具欄系統調整一下之後就可以支援買賣的功能
剩下就是一些額外小機制,例如隱藏的漁獲以及移動方式的更新
(當然免不了修Bug以及為了因應新機制調整系統架構w)
然後我去旅遊了一週(=w=)
(看看這酷酷的任天堂直營店)
美術與後續開發
旅遊回來後,活動也只剩下一週不到的時間
但這時候出現了個大問題,我們的美術與劇本進度仍然是0
(當前遊戲的內容都是我先用現有素材調整放上去作演示而已)
直到我回來後跟組員問起,才交出了第一版的劇本以及承諾說4天後會做好NPC的圖
但這時候我就覺得事情有點不太妙了,在出去旅遊前也都有討論劇本以及希望美術能處理的事情
也因為以為有其他人分擔美術,我才選擇可以放多一點心思擴充遊戲內容
(過去的經驗都是活動前一兩周就會開始著手處理美術,因為自己的美工效率是真的低XD)
但現在是甚麼都沒有,除了NPC立繪之外都需要我這邊完全一手包辦
更別提遊戲當時還沒有音效跟主畫面等等的其他內容
因此我開始減少或簡化預定的內容,原本的與NPC任務提交功能改為拿到指定物品時會有系統自動更新指定任務目標(但後來也沒時間做顯示進度就是了...)
順帶一提任務系統跟其他功能(例如NPC管理系統)一樣,我善用Scriptable Object來製作不同的任務檔案,然後放入Mission Manager的列表中
這樣的設計也為之後的動作鋪下了基礎...
接著我也開始發揮我那糟糕至極的美術開始製作主要角色在遊戲中移動的圖
打開繪圖軟體後我就意識到一件事: 等等,我不會畫任何海上載具...
後來想想,劇本上主角都是一隻人魚了,或許也不需要船吧
所以我畫了一隻魷魚拖著一個木筏(?)
不要問我為什麼是魷魚,因為我也不知道(想不到吧~)
但由於魷魚我只畫了一張圖,所以調整系統去針對不同往不同方向移動時,調整面相位置以及在轉向時有個小小的翻轉動作
當活動剩3天不到的時候,終於有了我們遊戲中第一張主要角色的立繪
但最大的問題是我們原本計畫有三位NPC,系統跟基礎的對話也有輸入了,就是沒有美術
劇本上也都有需要調整的地方(甚至有可能為了劇本新增的系統)
搞到最後因為時程上無論是美術還是我畫圖都來不及
因此我決定直接把剩下兩個未完成的NPC內容直接砍掉
在系統上也就只是拔掉上面提到的資料檔而已,替換成沒有劇情需求的地點互動
接下來就著手製作主畫面跟補上音樂音效
主畫面我如過去素材不足的慣例,使用了遊戲中的系統來做為背景
因此主畫面的功能和遊戲中使用的一模一樣,只不過把玩家替換成一個依照設定路徑移動的隱形物體罷了
然後趕緊在半夜把遊戲上傳收工~
總結
這次想說來試試看久違的組隊參加
也想說有多人分工所以餅稍微畫大了點
結果後面因為各種因素差點做不完w
但也因此在各個層面上都有所收穫,無論是技術、時間管理還是多人合作經驗XD
活動結束後也在想那些功能我覺得不錯的、之後或許可以抽出來自己玩一些別的花樣
總之也再度感謝公會舉辦這次的活動