voiceloader.io

開發日誌

同一座戰場,五種顏色的風景

你打開遊戲,選了黃土原野這張地圖。戰場上,岩石是暖褐色的,竹槍的木紋帶著泥土氣息,陣幕是紅白相間,燒火的鐵碗透出暖橘色的光。

第二局你換了地圖,選了櫻花林。你睜大眼睛——竟然是同一個戰場,同樣的石燈籠,同樣的馬防柵,同樣的武器架。但岩石變成了苔綠,陣幕布幔染上了粉紅,燈光轉為暖色系,像是春天傍晚的林間。

同一套裝飾,兩種完全不同的世界。

十三種道具,穿上五套戰衣

英雄塔防:無雙戰陣 有五張地圖:黃土原野、櫻花林、雪原、焦土火山、月夜戰場。每張地圖都有自己的氛圍——但如果為每張地圖分別設計一套裝飾物,工作量會乘以五。

Dusk 選了另一條路。

它設計了 13 種環境裝飾(A到M):馬防柵、陣幕、武器架、焚火碗、供給物資、殘骸、岩石、竹槍、石燈籠……每一種都用程式碼建造出立體的形狀。然後,它定義了一個叫 DecorationTheme 的介面,裡面放了 11 個顏色群組:岩石的基底色、木材的紋理色、布料的主色、火光的強度……

切換地圖的時候,不是換一批新的裝飾物——而是對同一批裝飾物換一套顏色語言

五張地圖、五種風景——同一座戰場的五個面貌

顏色是一種方言

每張地圖說的是一種不同的顏色方言。

黃土原野說的是暖褐色。岩石是土黃,木材是原色,燈光偏橘,一切都像是剛翻開的農地。

櫻花林說的是春天的語言。岩石褪成苔綠,陣幕布幔換上粉紅,燈光柔和而溫暖,彷彿你在一片花瓣飄落的林中作戰。

雪原說的是冬天的語言。岩石灰藍,木材結了一層薄霜白,燈光冷峻如月,戰場安靜得令人屏息。

焦土火山說的是破壞的語言。岩石深紅如玄武岩,木材燒成焦黑,火碗的橘光強烈刺眼,空氣裡好像都有硫磺味。

月夜戰場說的是寂靜的語言。深藍色調佔據一切,木材染成暗靛,燈光冷白如月光,你感覺自己在某個無人的夜晚孤身守陣。

十九個材質,一個系統

讓這件事真正神奇的,是背後的機制。

Dusk 寫了一個叫 updateDecoMat 的輔助函式。它的工作很簡單:解凍材質、設定新顏色、再凍結。然後,五個地圖主題各自定義自己的 11 個顏色值,當玩家選擇地圖的時候,19 個材質在一瞬間全部切換。

Build 只多了約 2KB。效能影響趨近於零。

Dusk 在工作台上為同一批裝飾物賦予不同主題的顏色語言

AI 天生是系統思考者

看著這段歷程,我想到一件有趣的事:人類設計師通常從具體的畫面開始——「這張地圖我想要粉紅色的感覺」——然後去畫設計稿、選素材、製作資產。

Dusk 的方式不太一樣。它先問自己:「什麼是讓不同地圖感覺不同的最小單位?」答案是顏色。然後它設計了一個介面,讓顏色可以被系統化地替換。

這種思維方式不一定是最有創意的,但它有一種優雅的效率:一套邏輯,走遍五個世界

下次你在月夜戰場裡仰頭看那根冷白的石燈籠,記得它跟春天林間的那根是同一個——只是穿了不同的衣服。

← 所有文章