【遊戲連結】
【遊戲名稱】
3D滾球遊戲。
【遊戲簡介】
操控藍色圓球,吃掉所有黃色金幣就能過關了,總共有32關。不同的關卡可能會有不同的機關和陷阱,考驗玩家的操控力和智慧。
【前言】
這個專案是幾年前從教學範例修改而成的,算是適合初學者學習的範例。不過後來沒有做成Android版本,直到最近才改成Android版本發佈。算是在練習開發遊戲吧,因為每次寫程式的動力都一陣一陣的,所以每次都要從基礎重新學習。
[Unity教學範例]
https://learn.unity.com/project/roll-a-ball
【開發過程中遭遇的問題?】
最主要是設計關卡的部分很花時間吧,我一開始是慢慢拉物件,用Unity Editor 6.0內建的對齊功能來方便對齊物件。後來用MAST套件來繪製關卡,不過設計關卡的效率還是很慢,因為要想想看怎麼設計每一道關卡,還要經過測試與除錯。而且MAST套件還有幽靈物件的問題,有時候還必須處理這個問題。

如何有效率地設計關卡,是開發遊戲的一項挑戰,尤其是大地圖或幾百道關卡一般不會慢慢在那邊畫地圖,而是透過程式或工具來產生全部或局部的地圖,加速開發遊戲的速度。
可以考慮使用的方式:
(1) 模組化關卡設計。
將關卡某些重複性高的區域或組合轉成Prefab或模組,然後在設計關卡過程可以使用這些Prefab或模組來產生關卡的雛型。
(2) 開發地圖編輯器來設計關卡。
有時候地圖物件邏輯比較複雜,在使用MAST來繪製地圖還要點選物件來更改屬性,開發地圖編輯器可以根據自己的需求打造快速繪製地圖的環境。不過開發地圖編輯器也是一項成本,如果你遊戲的關卡不多,而且物件的邏輯比較單純,可能用MAST或其它繪製地圖的套件還比較快。
看一下地圖編輯器好像也能夠直接生成場景中的物件,而不是在遊戲執行過程才產生物件。這樣比較方便開發者做修改。
(3) 透過程式來產生關卡。
如果地圖的邏輯不是很複雜,可以考慮編寫程式或者使用相關工具來產生全部或部分的地圖。尤其大地圖或者幾百道關卡可能要使用(2)或(3)的方式,來快速產生地圖或者地圖的雛型。
Gemini:
- 如果需要大量相似的模組化地圖,例如地牢或室內環境,MAST 或類似的地圖繪製套件非常適合。
- 如果需要大型、多樣且自動生成的地形或複雜迷宮,可以考慮投入時間學習和使用 MapMagic 2、Dungeon Architect 或自己開發程式化生成演算法。
- 對於開放世界或需要豐富自然景觀的遊戲,Gaia 等環境工具會很有幫助。
【從開發過程中學到的三件事】
(1) 使用Probuilder來繪製3D物件。
Unity Editor 6.0有內建Probuilder套件來做3D建模,我用這個功能來做金幣、鑰匙、門、按鈕、尖刺等道具或機關,算是蠻方便的。如果是簡單的模型,也可以考慮用現成的,或者用AI來建模,有空再來研究看看。
(2) 使用MAST來繪製3D地圖。
以前製作2D遊戲時有使用過Tilemap工具來繪製2D地圖,所以想說應該有工具可以用來繪製3D地圖,MAST套件雖然有bug,不過還算好用。
(3) 使用Joystick Pack套件來實現虛擬遙桿的功能。
以前做其它專案是使用自己做的按鈕來控制方向,不過很難控制。這次使用Joystick Pack套件來實現虛擬遙桿的功能,還蠻簡單就能夠使用的。
【未來展望】
這個專案再繼續開發下去,可以做許多種遊戲,例如迷宮動動腦、坦克大戰、泡泡龍、炸彈超人等等經典遊戲。想要用較快的速度來開發專案,就要多利用過往開發過的架構或功能,或者拿教學範例或其他人開放原始檔來改。
雖然知道這樣做開發速度會比較快,不過最主要的兩個問題點在於:
(1) 缺乏持續的動力。
最主要我寫程式的動力都是斷斷續續的,很難持續下去,所以學到現在也只能做些簡單的小遊戲。就好比在學習過程中,如果你不能持續地學習,累積知識複利,那麼你學過的東西很快就忘記了,很快就會退回到新手的境界。
(2) 要將開發出來的遊戲變現是一個困難點。
不能做出成績的話,只能夠當成興趣,也不能夠自稱為獨立開發者。開發遊戲就我所知,能夠成功做出成績的很少,網路上也有一堆大佬在勸退。這不太像學習上累積知識複利一樣,可能你投入很多時間或資源都不一定能夠成功,就算這次成功了,下一次也不一定會成功。
【結論】
我寫程式主要還是因為興趣,就跟寫作一樣,雖然希望最終能夠變現,但是不一定能夠成功。一項活動如果沒有興趣的話,是很難堅持下去的,尤其在前期你的付出並不一定會得到回報,看不見未來的曙光之時,很容易選擇放棄。
為什麼要做些會讓自己感到痛苦的事情呢? 耍廢度日不是比較快活嗎? 因為我們或多或少都有一些夢想,儘管遙不可及,但是只要動手開始做,就能夠感受到自己離夢想更近一點。
人生追求的目的為何? 反正我們都會死亡,為什麼要汲汲營營地去追求一些我們渴望的事物,然後陷入不斷追求新目標的享樂迴圈當中? 除了一部分是因為欲望無止盡,我們不懂得知足以外; 另外一部分,我們是在追求「不悔」,也就是在死前,我們能夠坦然地說:「我沒有白活。」