iT邦幫忙

2026 iThome 鐵人賽

DAY 11
0

Whisper Isle 遊戲連結(PC Only):whisperisle.app
(註:專案每日持續高速演進,撰文當下線上已推進至 v0.2.4)

昨天在 Day 9 聊到了頻繁推翻 HUD 的慘烈拉鋸戰,以及由此催生出的專案 Reference-first(Gate 0) 法則。介面穩定了、角色動起來了、數值迴圈也打通了。但當你真正握著滑鼠,操控著角色走出出生點時,一個一直被我們刻意擱置、卻又無比巨大的架構問題,終於無可迴避地浮出了水面:

我們腳下這個第一座島,到底該做多大?

在規劃遊戲世界時,往往陷入兩種極端:要嘛好高騖遠,一開口就是「無縫開放大世界、千人同圖」,結果地圖鋪得太大、內容稀疏得像荒漠,最後被海量素材與效能優化活活拖死;要嘛極端保守,守著開工第一天的一張 80×80 網格小島,不敢往外多跨一步。在 Whisper Isle 的開發歷程中,我們腳下的這座島嶼,前後推翻重蓋了三次:從最初的 80×80,到 120×120,再到最終定版的 180×180。地圖尺寸從來不是一個純粹的技術問題,而是一個涉及玩家體感、空間密度與世界觀氛圍的決策拍板問題。

一、80×80:開工驗證的小島

2026-07-09 專案開工的第一天,我們在伺服器端建立的地圖尺寸是 80×80(單位為 32px 邏輯網格,整座島約 2560×2560 像素)。那時候的目的非常明確,就是最小可行驗證(MVP):

  • 驗證 Colyseus 的房間狀態同步;
  • 驗證玩家點擊地面後的 A* 尋路演算法;
  • 驗證幾隻野狼在邊緣巡邏漫遊。

在 80×80 的尺度下,整座島的面積只有 6,400 個網格。在 1080p 的現代螢幕上,玩家站在中央的鐵匠鋪門口,鏡頭稍微往外拉一點,幾乎就能看見整座島的三側海岸線。這個階段的島嶼與其說是一個「世界」,不如說是一個村莊。玩家從南端跑到北端只需要 12 秒,怪物剛在樹林裡刷新,走兩步就一頭撞進了村莊的圍牆;法師放個火球,整個螢幕都是戰鬥判定。

二、120×120:兩天之內被推翻的妥協

到了 2026-07-21,隨著四足野狼與戰鬥系統落地,我們第一次擴建了世界,把島嶼尺寸拉伸到了 120×120(14,400 個網格,面積擴大了 2.25 倍)。當時的工程直覺是:翻倍的面積應該足夠寬敞了吧?我們在地圖北邊劃出了一片森林、東邊切出了一條河流、南邊留給碼頭與村落。

然而,當這版地圖推上本地與公網環境、我們親自在瀏覽器裡實測了兩天之後,體感依然偏小,完全留不住探索的慾望。為什麼 14,400 個網格依然讓人覺得小?鏡頭可視範圍:在標準 1920×1080 解析度下,等距正交鏡頭單屏能涵蓋約 40×25 個網格。換句話說,整座 120×120 的島嶼,橫向只需要推動 3 個螢幕寬度就到底了。

安全區與危險區的貼臉衝突:村莊建築、道路、碼頭與農田佔掉了中央約 50×50 的核心區域。剩下的荒野被擠壓在邊緣狹窄的環形帶狀區裡。玩家走出雜貨鋪大門,走不到 5 秒鐘就直接跟高階野狼臉貼臉,既沒有「踏上旅途」的心理準備,也沒有任何地貌過渡的鋪墊。沒有「縱深感」的壓迫:你站在溪邊,抬頭就能看見背後的火山;你想在森林裡迷路,但隨便往哪走幾步都能踩進海灘。空間沒有留白,玩家的想像力就沒有容身之處。

三、180×180

180×180 意味著 32,400 個網格,面積是最初 80×80 的 5 倍。把地圖尺寸推到 180×180,技術上很容易(改個常數只要一秒),但真正的挑戰在於:你怎麼把這 5 倍大的龐大空間填滿,而不讓它變成空洞乏味的步行模擬器?把整座島嶼的空間拓撲、怪物密度、地貌過渡與命名原則全部釘死在程式碼中。

1. 怪物密度與空間驗算
在 180×180(32,400 tiles)的空間中,扣除不可通行的深海與陡峭山崖,實際陸地面積約為 16,200 tiles。 我們以此驗算了全島生態配置:

全島野外怪物上限鎖定為 75 隻;
平均每隻怪物擁有約 216 tiles 的遊蕩生活半徑;
這確保了怪物之間有足夠的空隙讓玩家潛行繞路,同時又不會在奔跑時陷入整整半分鐘遇不到一隻怪的枯燥空白。


上一篇
Day 9|HUD 畫了四版才學會:先給參考圖,再談實作
下一篇
Day 11|不拼 tile 了,改整幅 AI 母畫的世界
系列文
血汗同事:我和 Claude Code 僱了一隊 AI,做出 Web MMO ARPG12
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言