Skip to content

命名系統 ​

一、設計原則 ​

廢土之上沒有戶政事務所,名字是活人給活人的記號。族人的名字由血脈決定,帶著家族烙印;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意象字字、區域