暮色降臨在石造港灣小鎮,你就是這裡的點燈人。攜著手中的火焰穿過鵝卵石小巷,趕在天色全黑前點亮全部十盞街燈——每盞被點亮的燈都會成為真實的動態光源,光暈灑落在鵝卵石上。若你在黑暗中被強風吹襲,火焰便會熄滅;可在任何一盞已點亮的街燈或燈芯屋的火盆處重新點燃。整個遊戲都建立在引擎的 2D 光照系統之上:每一個精靈都是以 Blender 算圖並搭配對應的法線貼圖,讓燈光能在鵝卵石的凹凸、大衣的皺褶與小屋的石材上即時流動。
WASD/方向鍵移動 · E 或空白鍵點燈 · 觸控:左搖桿 + 右按鈕 · 點一下開啟音效 · 遊戲資料 2.8 MB(另加引擎 wasm,首次載入後即快取)
由 AI 製作,並以真實的 Godot 4 引擎匯出。此作品最初是一幅概念畫,畫中每個被命名的元素之後都被製作成真實的素材,每一輪審核都會將實機成果與這幅畫作對照評判。

俯視三分之四視角下的迷你石造港灣小鎮黃昏景象,蜿蜒的鵝卵石小巷,石板屋頂的石造小屋窗戶透出溫暖燈光,鑄鐵街燈的琥珀色火焰在鵝卵石上灑落溫暖光暈,一名身穿油布外套的小小點燈人身影提著黃銅燈桿,深靛紫色的暮色天空。

點燈人、六棟小屋,以及每個道具與地面圖磚都在 Blender 中建模並從遊戲鏡頭角度算圖兩次——一次算色彩,一次編碼鏡頭空間的表面法線——並以 CanvasTextures 形式輸出,因此全部十盞街燈、手持火焰與火盆都是真正的 PointLight2D 光源,其光線會沿著鵝卵石與外套的紋理起伏流動。小屋則具有 LightOccluder2D 多邊形,能投射出真實的 2D 陰影。
小巷是一個 TileMap,鵝卵石與草地交界處採用 47 種變體的團塊自動貼圖組,並以邊緣鎖定、內部重新隨機化的無縫變體圖磚打破重複感。強風、燈焰、餘燼爆發、螢火蟲與煙囪炊煙都是 GPUParticles2D;港灣水面則是一種著色器,其滾動法線貼圖來自以 Blender 烘焙的高度圖,因此燈光會在水面波動上閃爍。
行走循環動畫是以 Blender 骨架綁定後,從四個真實方向算圖而成——沒有鏡像幀,因此法線貼圖能保持物理正確性。環境音與鐘聲取自平台音訊系統中的取樣樂器。有一項引擎特性被特別保留於紀錄中:2D 法線貼圖在未給予每個光源相對於畫布平面的高度前,會呈現全黑狀態。
本實驗室是在此主機的軟體渲染器(無 GPU)上使用 Playwright 進行審核,因此下方的影格率數據是最差情況——真實硬體以相容渲染器運行時會快得多。
| 量測方式 | 值 | 測試條件 |
|---|---|---|
| 遊戲資料 (.pck) | 2.81 MB | 正式匯出版本 — 美術資源 2.0 MB + 取樣音訊來源 1.1 MB |
| 引擎負載檔 (.wasm) | 35.4 MB | Godot 4.3 網頁執行環境,固定成本,首次載入後由瀏覽器快取 |
| 已驗證完整回合 | 10/10 盞燈已點亮,獲勝分數 2080 | 每輪審核皆採用 AStarGrid2D 自動導航,並執行強風熄燈與重新點燈演練 |
| 畫面上的動態光源數量 | 12 個投影光源 + 13 個窗戶光暈 | 外加隨身攜帶的手持火焰;全部作用於法線貼圖精靈之上 |
| 審核回合 | 初版規劃 3 · 正式美術 5 | 反覆「修正全部後再審核」直到某回合一無所獲,再進行一次確認 |
| 審核影格率 | 約 1–2 fps | SwiftShader 軟體 GL——最差情況;透過物理步驟追趕,遊戲時間仍保持真實 |
每個精靈皆以色彩貼圖與鏡頭空間法線貼圖成對輸出為 CanvasTexture,讓燈光能真實地沿著鵝卵石凹凸與外套皺褶流動。
六棟小屋皆具有 LightOccluder2D 多邊形;燈光光暈能正確地被石牆遮擋。
一個 TileMap,其鵝卵石與草地交界處透過 47 種遮罩驅動的團塊變體來呈現,並以邊緣鎖定的無縫替代版本打破重複感。
燈焰、餘燼爆發、強風、螢火蟲、煙囪炊煙與手持火焰——全部皆為 GPUParticles2D。
一種畫布著色器,滾動播放以 Blender 烘焙的高度圖法線,讓每盞燈都能在港灣水面波動上閃爍。
一個 AStarGrid2D 代理程式會在每次審核時完整地遊玩整局——點燈、熄滅、重新點燃、獲勝。