主題
命名系統
一、設計原則
廢土之上沒有戶政事務所,名字是活人給活人的記號。族人的名字由血脈決定,帶著家族烙印;NPC 的名字由廢土決定,帶著職業、傷疤和來歷。兩套命名邏輯各自獨立,共同服務於末日台灣的世界觀。
命名風格以荒涼、具體、低裝飾為核心。不用華麗的字,不用奇幻的音。名字聽起來像是被風沙磨過的東西——短、硬、帶灰。
二、族人命名機制
2.1 姓氏系統
玩家在遊戲開始時選定或隨機產生家族姓氏,世代傳承不變。姓氏分為兩類來源:
廢土原生姓(共 20 字)
從末日意象中提煉的單字姓氏,帶有強烈的荒土感。
| 類別 | 姓氏 |
|---|---|
| 灰燼系 | 灰、燼、焦、煙、燎 |
| 塵土系 | 塵、礫、埃、沙、壤 |
| 枯朽系 | 枯、朽、鏽、蝕、腐 |
| 殘影系 | 殘、渺、暮、霧、幽 |
舊世代變體姓(共 20 字)
取台灣常見姓氏中本身帶有自然或蒼涼意象的字,不做改造直接使用,保留文化根基。
| 類別 | 姓氏 |
|---|---|
| 自然系 | 林、石、江、田、葉 |
| 金屬系 | 金、鐵、銅、錫、鑄 |
| 色調系 | 白、黑、黃、赤、蒼 |
| 地景系 | 丘、崖、嶺、洲、溪 |
2.2 名字字庫
族人名採雙字制,從字庫 A 與字庫 B 各抽一字組合。
字庫 A — 意象字(自然、物質、感官)
與廢土中可見、可觸、可感的事物相關。
| 類別 | 字 |
|---|---|
| 天象 | 雨、霜、露、霰、嵐、霧、雷、雹 |
| 地物 | 石、土、沙、泥、岩、礫、塵、灰 |
| 水系 | 水、泉、溪、潮、淵、澤、漥、渠 |
| 火光 | 火、燼、焰、燭、炭、烽、熾、螢 |
| 草木 | 芽、根、苗、荊、棘、蔓、藤、蕨 |
| 金屬 | 鐵、鏽、銅、錫、釘、鉛、刃、鋒 |
| 骨肉 | 骨、齒、角、爪、鱗、革、筋、髓 |
字庫 B — 狀態字(生死、意志、存在)
與生存意志、情感狀態、存在方式相關。
| 類別 | 字 |
|---|---|
| 存續 | 存、續、承、繼、延、留、餘、遺 |
| 堅忍 | 忍、耐、守、撐、持、熬、挺、扛 |
| 希望 | 望、念、盼、歸、還、尋、候、待 |
| 寂滅 | 默、寂、沉、靜、隱、伏、匿、眠 |
| 斷裂 | 斷、裂、崩、碎、散、離、墜、失 |
| 重生 | 生、萌、醒、甦、兆、始、初、新 |
2.3 靈名字庫
靈能者覺醒後獲得的別稱,獨立於本名之外。結構為「聽/視/觸/感 + 對象」的感官型命名。
| 感官動詞 | 對象字 | 組合範例 |
|---|---|---|
| 聽 | 風、雨、骨、土、灰 | 聽風、聽骨 |
| 視 | 霧、焰、影、淵、塵 | 視霧、視淵 |
| 觸 | 鏽、石、水、根、血 | 觸鏽、觸血 |
| 感 | 潮、雷、寂、亡、生 | 感潮、感亡 |
| 夢 | 同上 | 夢塵、夢焰 |
| 問 | 同上 | 問骨、問風 |
2.4 世代命名規則
第一代(開局)
├─ 姓氏:玩家選定 或 從姓氏庫隨機抽取
├─ 名字:字庫A隨機 + 字庫B隨機
└─ 可選:玩家手動命名(覆蓋自動生成)
第二代起
├─ 姓氏:繼承家族姓氏(不變)
├─ 名字生成(二選一,隨機決定):
│ ├─ 承名模式(40%機率):繼承父或母名字中一字 + 另一字隨機
│ └─ 新名模式(60%機率):字庫A隨機 + 字庫B隨機
├─ 排行字規則:同代兄弟姊妹有 30% 機率共用一個字
└─ 去重:同一代族人名字不可完全重複,衝突時重新抽取
靈能覺醒時
└─ 額外獲得靈名,日常敘事中可能以靈名稱呼2.5 族人命名範例
| 姓 | 名 | 說明 |
|---|---|---|
| 燼 | 石存 | 廢土原生姓 + 地物意象 + 存續狀態 |
| 灰 | 霜忍 | 廢土原生姓 + 天象意象 + 堅忍狀態 |
| 蝕 | 根望 | 廢土原生姓 + 草木意象 + 希望狀態 |
| 石 | 鐵守 | 舊世代姓 + 金屬意象 + 堅忍狀態 |
| 崖 | 芽生 | 舊世代姓 + 草木意象 + 重生狀態 |
| 黑 | 骨默 | 舊世代姓 + 骨肉意象 + 寂滅狀態 |
| 林 | 雨歸 | 舊世代姓 + 天象意象 + 希望狀態 |
| 焦 | 燼沉 | 廢土原生姓 + 火光意象 + 寂滅狀態 |
承名範例(父:燼石存,母:崖芽生):
- 燼 石萌 — 繼承父親「石」字
- 燼 芽守 — 繼承母親「芽」字
- 燼 鏽盼 — 新名模式,無繼承
三、NPC 命名機制
3.1 命名結構
NPC 不使用正式姓名,採綽號制。廢土上的人用最直覺的方式記住彼此——你做什麼、你從哪來、你身上哪裡有記號。
命名結構三段式,實際使用時可省略任一段以保持自然:
[地域標記] + [角色特徵] + [個體識別]完整範例:「北港的 獨眼 屠夫」 省略範例:「獨眼屠夫」「北港屠夫」「那個獨眼的」
3.2 角色類型字庫
商人
以交易的物品、手段、場所為命名核心。
| 特徵詞 | 識別詞 | 組合範例 |
|---|---|---|
| 鏽、鹽、藥、種、油 | 商、販、婦、叟、手 | 鏽商、鹽販、藥叟 |
| 拾、換、秤、囤、販 | 荒客、老、佬、子 | 拾荒客、囤貨佬 |
| 黑、暗、野 | 市的、路的 | 黑市的、野路的 |
流浪者
強調來歷不明、漂泊感。
| 特徵詞 | 識別詞 | 組合範例 |
|---|---|---|
| 過路、無名、迷途 | 人、客、者 | 過路人、無名客、迷途者 |
| 北來的、南邊的、山裡的 | —(獨立使用) | 北來的、山裡來的 |
| 背影、孤影、灰影 | 客、行者 | 背影客、孤影行者 |
| 啞、瘸、獨行 | 的、者 | 啞的、獨行者 |
聚落領袖
地名結合權威稱謂。
| 特徵詞 | 識別詞 | 組合範例 |
|---|---|---|
| ○○庄、○○街、○○城 | 主、頭、長 | 旱田庄主、鏽都頭 |
| 老、大 | 當家、掌事、管事 | 老當家、大掌事 |
| — | 話事人、做主的 | 話事人 |
傭兵 / 戰士
身體特徵(傷疤、殘缺)或武器為核心。
| 特徵詞 | 識別詞 | 組合範例 |
|---|---|---|
| 斷、獨、缺 | 指、眼、臂、耳、齒 | 斷指、獨眼、缺耳 |
| 刀、矛、錘、鐵 | 疤、臂、手、客 | 刀疤、鐵臂、錘手 |
| 血、殺、噬 | 犬、狼、鴉、蟲 | 血犬、噬狼 |
靈能者 / 巫
感官異常、神秘性、與死者的聯繫。
| 特徵詞 | 識別詞 | 組合範例 |
|---|---|---|
| 聽風、問骨、視霧 | 的、者、人 | 聽風的、問骨者 |
| 灰、白、盲 | 瞳、眼、目 | 灰瞳、盲目 |
| 夢、囈、語 | 者、人、婆、翁 | 夢語者、囈語婆 |
| 骨、灰、影 | 巫、卜、問 | 骨巫、灰卜 |
敵對勢力
動物化、威脅性、去人性化。
| 特徵詞 | 識別詞 | 組合範例 |
|---|---|---|
| 野、腐、蝕、毒 | 犬、鴉、蟲、蛇、鼠 | 野犬、腐鴉、蝕蟲 |
| 噬骨、裂顎、爛臉 | —(獨立使用) | 噬骨、裂顎 |
| — | 頭、首、王、群 | 蟲首、鼠王、野犬群 |
3.3 區域字庫
每個區域有專屬的地名前綴庫和意象偏好。
北部(城市廢墟、工業遺跡)
| 地名前綴 | 意象偏好字 |
|---|---|
| 廢港、鏽都、灰樓、斷橋、塌廠 | 鏽、鐵、灰、塌、廢、管、煙、油 |
| 舊站、暗巷、沉路、碎窗 | 碎、暗、沉、裂、鉛、混凝 |
範例 NPC 名:廢港鏽商、灰樓的斷指、舊站那個過路人
中部(平原旱地、農耕廢墟)
| 地名前綴 | 意象偏好字 |
|---|---|
| 旱田、風口、塵埔、焦圳、枯溝 | 旱、土、風、塵、穗、禾、焦、裂 |
| 灰壤、荒埤、乾渠 | 穀、草、泥、沙、曬 |
範例 NPC 名:旱田庄主、塵埔藥販、風口聽風的
南部(沿海、鹽田、貿易港)
| 地名前綴 | 意象偏好字 |
|---|---|
| 鹹水、南港、潮口、爛灘、鏽船 | 鹽、潮、魚、腥、鏽、船、浪、沙 |
| 蚵架、破塭、腐碼頭 | 蚵、蝦、藻、朽、濕 |
範例 NPC 名:鹹水鹽販、南港的獨眼、潮口夢語者
東部(峽谷、部落遺跡)
| 地名前綴 | 意象偏好字 |
|---|---|
| 石崖、深谷、霧山、斷崖、古社 | 石、岩、苔、蕨、霧、藤、溪、骨 |
| 舊社、蕨谷、溪口 | 靈、獸、鷹、蛇、根 |
範例 NPC 名:石崖骨巫、深谷獨行者、霧山裡來的
東部可選融入原住民語音譯元素作為個體識別,如:瓦力斯、莫那、巴奈、莎韻。使用時以「○○叫他瓦力斯」的口語方式帶入,不作正式姓名處理。
山地(高海拔、低輻射淨土)
| 地名前綴 | 意象偏好字 |
|---|---|
| 雪線、雲上、嵐頂、冰坳、薄霧嶺 | 冰、霜、嵐、雪、霰、凍、薄、淨 |
| 寒泉、風口嶺、斷稜 | 鷹、松、菌、苔、清 |
範例 NPC 名:雪線的藥叟、嵐頂話事人、雲上來的沉默者
3.4 NPC 命名生成邏輯
輸入:NPC 角色類型、NPC 所在區域
步驟 1 — 決定命名結構(加權隨機)
├─ 三段完整「地域+特徵+識別」 (20%)
├─ 二段「地域+識別」 (25%)
├─ 二段「特徵+識別」 (35%)
└─ 一段「純綽號」 (20%)
步驟 2 — 填入內容
├─ 地域標記:從所在區域的地名前綴庫中隨機抽取
├─ 角色特徵:從角色類型的特徵詞庫中隨機抽取
├─ 個體識別:從角色類型的識別詞庫中隨機抽取
└─ 意象偏好:區域意象偏好字可替換特徵詞中的修飾成分
步驟 3 — 口語化處理
├─ 添加「的」「那個」「叫他」等連接詞(30% 機率)
├─ 例:「廢港的鏽商」→ 比「廢港鏽商」更口語
└─ 確保最終名稱不超過 8 字(含助詞)
步驟 4 — 去重
└─ 同一遊戲中同名 NPC 不可重複出現3.5 NPC 正式名(低機率觸發)
部分 NPC(約 15%)在深入互動後會透露本名。本名使用族人命名系統生成(姓氏庫 + 字庫A + 字庫B),但敘事中仍以綽號為主稱呼。
這個機制服務於敘事:知道一個人的本名,意味著你們之間建立了某種信任。
四、技術備註
4.1 資料結構建議
命名系統的所有字庫以 JSON 格式儲存,便於 TypeScript 讀取和 Google Sheets 管理。
typescript
// 族人姓氏庫
interface SurnamePool {
wasteland: string[]; // 廢土原生姓
oldWorld: string[]; // 舊世代變體姓
}
// 族人名字庫
interface GivenNamePool {
imageChars: { // 字庫A:意象字
sky: string[]; // 天象
earth: string[]; // 地物
water: string[]; // 水系
fire: string[]; // 火光
flora: string[]; // 草木
metal: string[]; // 金屬
body: string[]; // 骨肉
};
stateChars: { // 字庫B:狀態字
endure: string[]; // 存續
tough: string[]; // 堅忍
hope: string[]; // 希望
silence: string[]; // 寂滅
break: string[]; // 斷裂
rebirth: string[]; // 重生
};
}
// 靈名庫
interface SpiritNamePool {
verbs: string[]; // 感官動詞:聽、視、觸、感、夢、問
objects: string[]; // 對象字
}
// NPC 命名庫
interface NPCNamePool {
roleTypes: {
[role: string]: { // merchant, wanderer, leader, mercenary, psychic, hostile
traits: string[]; // 特徵詞
identifiers: string[]; // 識別詞
};
};
regions: {
[region: string]: { // north, central, south, east, mountain
prefixes: string[]; // 地名前綴
flavorChars: string[]; // 意象偏好字
};
};
}
// 命名生成函式
function generateClanName(
familySurname: string,
parents?: { father: string; mother: string },
generation?: number
): string;
function generateNPCName(
role: NPCRoleType,
region: RegionType
): string;
function generateSpiritName(): string;4.2 Google Sheets 管理
建議在 Google Sheets 中建立以下工作表,供非程式人員擴充字庫:
| 工作表名稱 | 欄位 |
|---|---|
| 族人姓氏 | 姓氏、分類(原生/舊世代)、子分類 |
| 名字字庫A | 字、分類(天象/地物/...) |
| 名字字庫B | 字、分類(存續/堅忍/...) |
| 靈名字庫 | 動詞、對象字 |
| NPC特徵詞 | 詞、角色類型 |
| NPC識別詞 | 詞、角色類型 |
| NPC地名前綴 | 前綴、區域 |
| NPC意象字 | 字、區域 |