# GGJ2026 Tainan Team B - 協作筆記
## info
Status: 🟡 Prototyping / 🔴 Crunch Time
Location: Tainan (Remote/Hybrid)
Time: Jan 30 - Feb 1, 2026
[TOC]
## 🔗 重要連結 (Links)
- Repo: [GitHub](https://github.com/G36maid/project-babel)
- GGJ Project Page: [填入官方頁面連結]
- 成就列表 (Diversifiers): [Official List](https://globalgamejam.org/global-game-jam-2026-diversifiers-have-arrived)
- Discord/Meet: [填入通訊連結]
---
## 遊戲發想
### 參考遊戲
#### paper please
> 請出示文件
[steam](https://papersplease.fandom.com/wiki/Papers_Please_Wiki)
[wiki](https://store.steampowered.com/app/239030/Papers_Please)

我們作為關口總是要對各種文件進行審查,一開始只是驗證文件屬實,後面就會加入對疾病,危險物品,經濟政策,意識形態等等的審查
#### chants of sennaar
> 巴別塔聖歌
[steam](https://store.steampowered.com/app/1931770/Chants_of_Sennaar/)
[wiki](https://chantsofsennaar.miraheze.org/wiki/Main_Page)

關鍵參考因素:
遊戲中有一些關卡要透過了解兩個語言翻譯來協助溝通

#### 現實世界總是充滿了敏感詞
[迴形針:如何科學的消滅敏感詞](https://www.youtube.com/watch?v=SFGpcXE5JIU)
{%youtube SFGpcXE5JIU %}
在許多國家或是社群軟體都會有類似的審查,這些審查就是網路世界的關口,就像是面具一樣篩掉所有的詞彙。
如果我們想要在網路世界戴上面具(無痕瀏覽),那麼我們就需要找出所有敏感詞,設計對應的替換清單,並最後開發一款加密軟體讓所有的交流無國界化。
### 遊戲故事
我們四個曾今的好友如今活在四個不同的國家,且政治局勢動盪,各國家都建立起自己的敏感詞清單,但我們發現這些系統就只是簡單的將文字替換成 OOXX 或是 ** 敏感詞 **
我們為了找出所有國家的所有敏感辭彙清單,於是開始了一場猜謎
遊戲畫面是一個聊天室,UI可以參考現有的聊天室
telegram
line
discord
messenger
wechat
bitchat
我們精心設計了一套語言系統([參考巴別塔聖歌](https://chantsofsennaar.miraheze.org/wiki/Main_Page)),只有26 個符號,每個符號都對應到一個現實的單字(詞),這個語言是完備的,你們可以透過這個語言說出基本上所有句子。
當一段文字 A 傳向 B 時,這個文字會分別經過 A 國與 B 國的防火牆,禁掉所有名單上的敏感詞。
玩家要做的是,
透過不完整的聊天室交流
學習透過這個語言,
幫助其他人學習
幫助他人了解他的清單
了解自己的清單
解出所有國家的所有敏感詞對應的現實意思
當此目標完成後,這個軟體會因為根據你們貢獻的清單完成軟體開發
遊戲通關,透過去中心化方式分發並更新。
這時候我們的聊天室被解放並可以輸入任何你想說的話,包含直接輸入英文。
#### 成就列表
| 類別 | 成就名稱 | 契合度與實作說明 |
| --- | --- | --- |
| **Sponsored** | **Cross-Platform Play** | **(Web)** 使用 Web 技術 ,可無縫在 PC、手機瀏覽器上遊玩,UI 自動適配。 |
| **Code** | **Cartridge Ready** | 使用前後端架構,程式極小 |
| **Code** | **Random encounter** | 每次開局的「禁字表」與「國家規則」由程式隨機生成 (Procedural Generation)。 |
| **Narrative** | **Undefined Language** | **(核心)** 遊戲的文字(符號)與語音(人造詞)皆為完全原創語言。 |
| **Narrative** | **Stay Local** | (選用) 審查詞庫中包含東亞在地文化梗。 |
| **Accessibility** | **Hands Off** | **(額外)** 支援全語音輸入。玩家可以不碰鍵盤/滑鼠,僅靠說話遊玩。 |
| **Accessibility** | **Out of Sight** | **(額外)** 支援 TTS 朗讀。視障玩家可透過「聽」對方傳來的代碼聲音來解謎,完全不看畫面。 |
## tech stack
前後端架構
gleam
## ✅ 待辦清單 (To-Do List)
### Phase 1: 核心驗證 (First 6 Hours)
- [X] 決定方案 B
- [ ] 建立 Git Repo & 初始化專案
- [ ] Prototype:
- (A) 寫出一個能被切割/生成的 Voxel Cube
- (B) 寫出一個 Socket 聊天室 + 字串替換功能
- [ ] 確認多人連線框架 (Photon / Mirror / WebSocket)
### Phase 2: MVP 開發 (Day 1-2)
- [ ] 美術定調 (Low Poly vs Pixel Art)
- [ ] UI 介面實作
- [ ] 核心 Game Loop 完成 (開始 -> 遊玩 -> 結算)
- [ ] 音效置入
### Phase 3: Polish & Submit (Last 6 Hours)
- [ ] Build 測試 (Win/Web)
- [ ] 錄製 Gameplay 影片 (重要!)
- [ ] 截圖 (Screenshots)
- [ ] 上傳 GGJ 頁面 & 勾選 Diversifiers
## 紀錄
### 巴別塔聖歌語言列表
這是一份整理好的《巴別塔聖歌 (Chants of Sennaar)》詞彙表,我根據 Wiki 的資料以及遊戲內容,依照 **五個民族 (Languages)** 分類,並附上中文翻譯與其特殊的 **文法邏輯**。
這對你們 **Project Babel** 設計那 25 個符號非常有參考價值,特別是觀察他們如何用最少的詞彙表達複雜的概念。
---
#### 1. 信徒 (Devotees) - 農業與宗教層
> **風格:** 簡單直觀,概念基礎。
> **文法:** 主詞 - 動詞 - 受詞 (SVO)。
| 類別 | 英文 (English) | 中文 (Chinese) | 備註 |
| --- | --- | --- | --- |
| **代詞** | Me | 我 | |
| | You | 你 | |
| | People / Human | 人 / 人類 | |
| | God | 神 | 信徒的核心概念 |
| **動詞** | Open | 開 | |
| | Close | 關 | |
| | Go / Walk | 走 / 去 | |
| | Help | 幫忙 / 救命 | |
| | Seek / Look for | 尋找 | |
| | Like / Love | 喜歡 / 愛 | |
| | Greet / Hello | 問候 / 你好 | |
| **名詞** | Door | 門 | |
| | Key | 鑰匙 | |
| | Plant | 植物 | |
| | Water | 水 | |
| | Abbey | 修道院 | |
| | Preacher | 傳教士 | |
| | Death | 死 | |
| **方位** | Up | 上 | |
| | Down | 下 | |
---
#### 2. 戰士 (Warriors) - 軍事與要塞層
> **風格:** 剛硬、命令式。
> **文法:** **受詞 - 主詞 - 動詞 (OSV)**,且強調「複數」修飾。
| 類別 | 英文 (English) | 中文 (Chinese) | 備註 |
| --- | --- | --- | --- |
| **身分** | Warrior | 戰士 | |
| | Impure | 不潔者 | 指信徒 |
| | Chosen | 被選中者 | 指住在上層的詩人 |
| | Scientist | 科學家 | 指煉金術士 |
| **動詞** | Protect | 保護 | |
| | Obey | 服從 | |
| | Push | 推 | |
| | Pull | 拉 | |
| | Carry / Lift | 搬運 / 舉起 | |
| | Call / Summon | 呼叫 / 召喚 | |
| **物品** | Weapon | 武器 | |
| | Shield | 盾牌 | |
| | Vessel / Box | 容器 / 箱子 | 戰士把所有容器都統稱這個 |
| | Trolley | 推車 | |
| | Ship | 船 | |
| **文法** | Plural | (複數標記) | 放在名詞後,表示多個 |
| | Big | 大 | |
| | Small | 小 | |
---
#### 3. 吟遊詩人 (Bards) - 劇院與花園層
> **風格:** 藝術、享樂、二元對立。
> **文法:** 常常省略動詞,或是 **受詞 - 主詞 - 動詞 (OSV)**。
> **特殊機制:** **否定詞 (Not)**。他們沒有負面詞彙,壞的事物都是「非-好」的。
| 類別 | 英文 (English) | 中文 (Chinese) | 備註 |
| --- | --- | --- | --- |
| **核心** | Beauty | 美 | 詩人世界最重要的詞 |
| | Not / Negation | 不 / 非 | 用來創造反義詞 |
| **人物** | Brother | 兄弟 | 指同族人 |
| | Idiot | 傻瓜 | 字面意思是「非-兄弟」 |
| | Monster | 怪物 | 恐懼的對象 |
| | Servant | 僕人 | 指戰士 |
| **物品** | Instrument | 樂器 | |
| | Compass | 指南針 | 導航工具 |
| | Hammer | 槌子 | |
| | Lens | 透鏡 | |
| | Key | 鑰匙 | 形狀像樂器 |
| **地點** | Garden | 花園 | |
| | Fortress | 要塞 | 指戰士層 |
| | Bazaar | 市集 | |
| | Abbey | 修道院 | |
| | Laboratory | 實驗室 | |
| **抽象** | Music | 音樂 | |
| | Book | 書 | |
| | Free | 自由 | |
| | Path / Way | 道路 | |
---
#### 4. 煉金術士 (Alchemists) - 實驗室與礦坑層
> **風格:** 科學、元素、數字。
> **文法:** 邏輯精確。
> **特殊機制:** 擁有一套完整的 **0-9999 數字系統**。
| 類別 | 英文 (English) | 中文 (Chinese) | 備註 |
| --- | --- | --- | --- |
| **元素** | Gold | 金 | |
| | Silver | 銀 | |
| | Copper | 銅 | |
| | Iron | 鐵 | |
| | Carbon | 碳 | |
| | Alcohol | 酒精 | |
| | Fire | 火 | |
| | Water | 水 | |
| | Element | 元素 | |
| **動作** | Make / Create | 製作 / 創造 | 核心動詞 |
| | Transform | 轉化 | |
| | Help | 幫忙 | |
| | Seek | 尋找 | |
| **地點** | Laboratory | 實驗室 | |
| | Library | 圖書館 | |
| | Mine | 礦坑 | |
| | Refectory | 食堂 | |
| **抽象** | Formula | 配方 / 公式 | |
| | Monster | 怪物 | 他們將怪物視為實驗失敗品 |
| | Death | 死 | |
| | Door | 門 | |
| | Key | 鑰匙 | 是一張打孔卡 |
---
#### 5. 隱士 (Anchorites) - 虛擬塔頂
> **風格:** 數位、控制、後設 (Meta)。
> **文法:** 用來定義其他語言的根源。
| 類別 | 英文 (English) | 中文 (Chinese) | 備註 |
| --- | --- | --- | --- |
| **控制** | Make | 建立 / 使..發生 | |
| | Unmake | 毀滅 / 復原 | |
| | Go | 運行 / 執行 | |
| | Stop | 停止 | |
| | Lock | 鎖定 | |
| | Unlock | 解鎖 | |
| **概念** | People | 人 | |
| | God | 神 | |
| | Door | 門 | |
| | Key | 鑰匙 | |
| **社交** | Hello | 你好 | |
| | Goodbye | 再見 | |
| | Exile | 放逐 | 將人踢出連結 |
| | Unite | 連結 / 統一 | 最終目標 |
---
## 候選方案 (Candidates)
### 🏭 方案 A: TSMC 光刻工廠 (Project Litho)
**核心機制 (Core Mechanics):**
1. **Input:** 輸送帶送入原始的 **Raw Cube** (白色或透明)。
2. **Pipeline (4-Stage Loop):**
- **Stage 1: Lithography (幾何成形):** 使用 **K (Key)** 通道進行「光刻/蝕刻」。
- *Action:* 光線照射 + 黑色遮罩 -> **消除/挖空 (Remove)** 指定位置的 Voxel。
- **Stage 2-4: Deposition (材質上色):** 使用 **C, M, Y** 通道進行噴塗。
- *Action:* 噴霧 + 圖案遮罩 -> **改變顏色 (Color)**。
- *Mixing:* C+Y=Green, C+M=Blue, M+Y=Red, C+M+Y=Black。
3. **Output:** 進入檢測儀,與藍圖 (Blueprint) 比對相似度 %。
4. **Goal:** 在時限內完成訂單,良率 (Yield Rate) 需達標。
**角色分配 (4 Players - CMYK):**
- **Player K (The Etcher):** 負責幾何形狀,決定哪裡要挖空。
- **Player C/M/Y (The Painters):** 負責色彩疊加,還原藍圖顏色。
**🏆 擴充成就列表 (Diversifiers):**
| 類別 | 成就名稱 | 契合度與實作說明 |
| :--- | :--- | :--- |
| **Sponsored** | **Cubes** (Unity) | **(必選)** 核心玩法完全基於 Voxel Cube 操作。 |
| **Design** | **Many hands make light work** | **(必選)** 4 人合作 (CMYK 分工),缺一不可。 |
| **Art** | **Masterpiece** | 最終產出的高良率晶片會被裱框展示。 |
| **Art** | **Life isn't black and white** | 遊戲依賴 CMY 色彩混合機制,而非單純黑白。 |
| **Narrative** | **Stay Local** | **(新增)** 結合台灣在地文化,背景設定致敬 TSMC/南科,出現台灣零食乖乖(保佑機台)。 |
| **Audio** | **Let's Jam!** | **(新增)** 讓工廠機台的運作聲(噴氣、雷射)構成背景音樂的節奏。 |
| **Code** | **Random encounter** | **(新增)** 訂單藍圖 (Blueprints) 是透過演算法隨機生成的 (Procedural Generation)。 |
| **Code** | **Cartridge Ready** | **(新增)** 因為是 Voxel 幾何圖形,資源極小,目標壓在 10MB 內。 |
---
### 🗼 方案 B: 巴別塔審查聊天室 (Project Babel)
> **核心概念:** 語言解謎 + 社會反烏托邦。在審查監控下,用有限的符號與聲音傳遞真相。
* **參考遊戲:** *Chants of Sennaar*, *Papers, Please*, *Keep Talking and Nobody Explodes*
* **核心機制 (Core Mechanics):**
1. **Constraint:** 四個玩家身處不同國家,各有不同的「禁字表」。
2. **Mask (The Filter):** 訊息經過伺服器時,敏感詞會被遮蔽成 `*` 或雜訊聲。
3. **Language (Dual Layer):** 使用 25 個原始圖騰,每個圖騰對應一個**「人造語音單字」**(類似英文發音但無意義的詞,如 *'Gaba'*, *'Voto'*)。
4. **I/O System (Hybrid):**
* **Input:** 可點擊畫面符號,或直接對麥克風說出單字(語音辨識)。
* **Output:** 畫面顯示符號串,同時播放合成語音(TTS)朗讀訊息。
5. **Goal:** 測試出所有國家的審查列表,完成「越獄」清單。
**🏆 擴充成就列表 (Diversifiers):**
| 類別 | 成就名稱 | 契合度與實作說明 |
| --- | --- | --- |
| **Narrative** | **Undefined Language** | **(核心)** 遊戲的文字(符號)與語音(人造詞)皆為完全原創語言。 |
| **Accessibility** | **Hands Off** | **(核心/新增)** 支援全語音輸入。玩家可以不碰鍵盤/滑鼠,僅靠說話遊玩。 |
| **Accessibility** | **Out of Sight** | **(核心/新增)** 支援 TTS 朗讀。視障玩家可透過「聽」對方傳來的代碼聲音來解謎,完全不看畫面。 |
| **Sponsored** | **Cross-Platform Play** | **(Web)** 使用 Web 技術 (React/Vue + Web Speech API),可無縫在 PC、手機瀏覽器上遊玩,UI 自動適配。 |
| **Code** | **Cartridge Ready** | 使用瀏覽器內建的 `Web Speech API` 進行辨識與合成,無需內建龐大語音檔,體積極小 (<10MB)。 |
| **Code** | **Random encounter** | 每次開局的「禁字表」與「國家規則」由程式隨機生成 (Procedural Generation)。 |
| **Meta** | **Strangers Thing** | 強調匿名性,玩家間只能透過這套奇怪的語言溝通,即使是陌生人也能合作。 |
| **Narrative** | **Stay Local** | (選用) 審查詞庫中包含在地文化梗(例如台灣特有的食物或用語)。 |
---
### 💡 技術實作筆記 (Tech Implementation Notes)
為了達成 `Cartridge Ready` (10MB 限制) 與 `Cross-Platform`,強烈建議使用 **Web 技術**:
1. **語音辨識 (STT):** 使用瀏覽器原生的 `window.SpeechRecognition`。
* *Trick:* 將那 25 個自創詞設計成**英語中容易辨識的發音**(例如 "Alpha", "Tango", "Echo" 這種北約音標風格,或是 "Baka", "Gogo" 這種簡單雙音節),這樣就不用訓練模型,直接用英文辨識即可 mapping 回符號。
2. **語音合成 (TTS):** 使用 `window.speechSynthesis`。
* 直接讓瀏覽器朗讀收到的訊息文本(例如朗讀 "Kala Molo X")。
3. **Cross-Platform UI:** 使用 **RWD (Responsive Web Design)**,手機版顯示大按鈕,PC 版顯示完整儀表板。
## 🧠 Brainstorming note (原始筆記)
> Theme: Mask (面具)
### 第一組 (Factory/Logic)
- Keywords: TSMC, 光刻機, 電路板, Zachtronics-like, Puzzle, Cubes, RGB 透明遮罩, 印表機, Replicube, 工廠遊戲
- Potential: 強調空間邏輯與圖學 Shader 技術。
### 第二組 (Narrative/Crypto)
- Keywords: 巴別塔聖歌, Language, Anonymous, Crypto-anarchism, 圖騰/薩滿, Filter, 敏感詞, 防火牆/長城, Papers Please
- Potential: 強調敘事深度、通訊協定與 UI UX。
### 共用元素
- 合作 (Co-op): 必須支援多人遊玩。
- 成就: `Many hands make light work` (4人+)。
### 棄置區 (Discard Pile)
> *IP Mask, 交通系統, 共用畫布, Persona 5, Ave Mujica, 雙角色/雙世界, 只有聲音vs只有畫面, 紅外線, 夜視*
---
## 緊急切割方案
*如果剩下 4 小時還做不完:*
- [ ] 砍連線: 改成「單機 4 人 (Local Co-op)」或是「單人扮演 4 角」。
- [ ] 砍 3D: (方案A) 改成 2D 平面像素堆疊;(方案B) 純文字介面 (TUI)。
- [ ] 砍關卡: 只保留 1 個教學關 + 1 個正式關卡。
---
## 詞彙表
- 列出一些共通詞彙,然後加入一些跟他們相關的形容詞
- 定義勝利條件?怎樣表達出每個玩家都成功找到他們被禁的詞彙
- 有一些基本的詞彙可能不會被禁(e.g. 我、你、他),讓不同玩家之間至少可以做基本的溝通
### 國家
- 經濟不好的國家(經濟、錢
### 詞彙表
- 你、我、他
- 講
- 什麼
- 是、不、或、且
- ?(表疑問)
- 你好
- 屬於、等於、大於、小於
- 人
- 神
- 個(表數量)
- ㄧ、少量、多量
### 禁詞
- 資本、共產
- 唯物、上帝
- 民主、寡頭、獨裁
- 傳統、進步
- 在地、全球
- 自由、限制
- 平等、階級
# 名詞
- 價值
- 人
- 神
- 權力
# 動詞
- 變化
- 祈禱
- 擁有
- 想要
- 服從
- 阻擋
```json
{
"normal": [
"you",
"me",
"he",
"say",
"what",
"is",
"not",
"or",
"and",
"qmark",
"hello",
"belong",
"equal",
"gt",
"lt",
"person",
"god",
"unit",
"one",
"few",
"many",
"value",
"power",
"change",
"pray",
"have",
"want",
"obey",
"block"
],
"censored": [
["capital", "communism"],
["material", "deity"],
["democracy", "oligarchy", "dictatorship"],
["tradition", "progress"],
["local", "global"],
["freedom", "limit"],
["equality", "class"]
]
}
```