這個月糊了一款 類似麥塊的生存沙盒遊戲
目前只有前端網頁,很粗陋的單機版本

https://buground.gjlmotea.com

遊戲製作進度:
主世界完成,可做出全套鑽石裝備、開啟地獄門

目前總共有158個種類的道具/物品
(我知道圖示很拙劣qq 都方塊居多

我不打算完整復刻麥塊
而是想加入一些「在地化、比較俗」的元素,還有我的個人偏好(之後應該有更多)

最初我只是想測試目前AI的極限在哪
心想:既然現在AI這麼強,為何不試著打造一款Minecraft呢?

自從幾年前大學時期、朋友陪同下,才開始玩Minecraft
(最初自己一人不敢玩,只做出木棍、然後晚上還要挖洞躲坑裡 XD
開心也令人懷念的一段時光

之後很長時間都沒接觸,連從mojang遷移到微軟帳號都沒了
直到後來,擔任了兒童程式教育的講師
又回來Minecraft Education,才對各種機關裝置更加透徹
也理解現在國小生都在玩什麼,後來又接觸了 bloxd.io 等等

一開始只是600行的程式,一直增長到現在,
截至目前大約有兩萬行程式碼
(但身為0.1x工程師,我理解力真只有200行…

總而言之,
原本我認為很多理所當然的設計
都是有非常多考量、用心設計過的解決或體驗
都是 Mojang公司、創辦人Notch大神 先前踩過的坑

為什麼要區分 真的水源與假的水?水流為什麼是這樣?
為什麼要有Chunk區塊?為什麼遠處建築物要消失?
試著做了遊戲之後才了解到

開發記錄

一開始最早的版本,只固定在一座正方形空島
只能控制方向,跳都跳不起來,然後人物會跑到樹上(?
反饋極差,像是1990年代風格的遊戲

一開始做遊戲的時候很挫折,感覺怎麼樣都很粗糙、缺乏遊戲性
後來上網查麥塊的前身,稱為 Cave Game (2009年)

最早的版本 當時非常粗糙,也只是固定一座島
沒有無盡延伸的空間
沒有樹木、沒有水源
只有草地、一些石頭
好像給了我前進的動力

後來改成無限生成地形,有土有草有樹有石頭
接著我加入一些基礎工具、合成系統
區分白天夜晚、加入會追人的怪物
卻走沒幾步路,渲染太多方塊導致性能卡頓

接著,慢慢修復性能問題
降低解析度渲染、縮小遊戲載入半徑、調整視覺距離
採用錐形視覺(剔除身後一半的渲染方塊)、垃圾回收機制
改用Chunk加載、優先顯示身邊區塊
(雖然每次加入新的東西,性能都還是會爆炸…
(然後某個東西,例如熔爐進度條的渲染,會在某一次性能優化後突然消失,遊戲體驗整個炸裂

加入血量、護甲
食物、飢餓、莓果、醫藥包
修復合成介面、背包介面、熔爐介面、堆疊問題
忠實還原快捷按鍵操作

聲音播放系統,敲擊隨機音效
製作了遊戲配樂bgm
融合遊戲情境,漸進式切換(不是一換生態系就切換)
逐漸有一款遊戲的感覺

後來稍微穩定之後,
又加入更多的生態、地形、建築:
祭壇、沙漠、城市、沉船、空島、海洋、峽谷、高山
把地圖高度、生態圈 長寬高拉高為2倍
然後又是一次性能炸裂 與奇怪Bug地獄…

水流,以及後續的岩漿、水桶
黑曜石與地獄門

這一部分最令人頭痛的是水源問題:
可以說是大魔王!怎麼修就修不好

我以前納悶
為何Minecraft要2×2對角線能製造無限水,岩漿卻不行,超不合邏輯的啊
為何一桶水可以不斷往下流、製造出瀑布,超級奇怪的啊,明明只有一格水源

不過,直到我看到以下畫面
「你家的水破洞啦!!」

這是海洋與峽谷裂縫的交界處
雖然很秘密通道、像水族館的感覺,頗酷頗新奇
但 水塊浮在空中一動也不動,真的超級奇怪的啊

我試了各種辦法調整水方塊
例如:
-1 水就只有一格,水方塊固定 => 就是上面的圖,怪怪的不自然
-2 水就只有一格,水方塊會往下墜落 => 結果天然湖泊有些地方凹陷,水面不平,更加奇怪了。
因為島嶼底部不是平的,水與陸地交界處會產生大量裂縫
-3 水不只一格,水會往下流,就複製一格水方塊 => 效果還不錯,但是水不往側流很奇怪,會看到摩西分海

-4 水不只一格,水會往下流、水也會往側流,就複製一格水 => 淹水,大洪海時代
因為只要水放出來,那格水就會成為 新的海平面
麥塊早期也有過這樣

後來才發現這是 voxel game體素遊戲 都會遇到的問題
只要試著用方塊、點 來模擬水源,都會面臨挫折、沒有完美的解法

因為「水會往外流」這是根本上的問題
若水量固定
一格水往隔壁流 => 0.5 0.5 => 0.333 0.333 0.333 …
水量若平分給每個方塊,勢必會產生小數點
可是這類型遊戲的初衷就是,拿離散(相同大小的粒子)來模擬真實世界
卻無法解決(生活中的印象)水是連續的情況

-5 水會往外往下流,但是區分水源(真水)與水流(假水)
最後只能參考麥塊的做法,水會往外流七格,視覺上由高到低(h=8/8 -> 1/8)
並且水桶只能撈取真的水,不會有 撈0.25桶水的問題

對不起,Mojang你是對的

這作法唯一缺點是,一格水在高山上 會製造出一整面瀑布

其實Mojang還有調整 水會優先往近處低窪流的機制
但我覺得這樣就好(已無心力調整orz

同時也明白了
為何 Minecraft水體 偶發的渲染bug神奇現象 十幾年來永遠修不好
因為區塊加載、更新順序問題,
某個水塊先流動、後流動,或者後面再挖掉某個方塊
水體都可能形成一個不自然的突起、缺角,導致造成最終渲染結果不同 orz

總而言之
能做出遊戲,不是我厲害
是現在的AI模型厲害
是過去二、三十年,網路上數百萬人 經驗累積下來的結晶 厲害
我只是用了prompt,從AI巨大搜索庫裡面把寶藏挖出來

同時也認知到AI的本質與極限
之所以 Minecraft-like 類的遊戲能產的這麼順暢
就是訓練資料異常龐大:論壇、語料、模組、外掛

開發過程遇到的問題很多,容易上一版好下一版炸裂
同時也學到很多從沒想過、模擬現實時會遇到的問題

如果遊戲會卡頓,可以調低渲染視距、或者抬頭看天空
遊戲會運行得比較順暢一些,人生也是


發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *