一個類似 Overcooked 的餐廳外場模擬器,重點在於除了滿足客人的食物需求,還要在情緒上讓每個人滿意。
- W/↑: 向上移動
- S/↓: 向下移動
- A/←: 向左移動
- D/→: 向右移動
- J: 營業微笑 😊 - 服務業的標準答案,絕對的安全牌(每秒消耗 1.0 SAN)
- K: 冷靜專業 😐 - 說不上友善,但還在禮貌的範圍內,精神負擔小(每秒消耗 0.5 SAN)
- L: 委屈尷尬 😢 - 道歉用的表情,躲過憤怒客人客訴的唯一解,精神負擔大(每秒消耗 1.5 SAN)
注意: 使用表情時會持續消耗 SAN 值,不同表情消耗速度不同!
遊戲中有 8 種客人類型,每種都有獨特的個性和偏好:
-
地方阿姨 (LOCAL_AUNTIE)
- 友善的中年阿姨,天使客人,教學關卡專用
- 喜歡:營業微笑
- 討厭:無
- 耐心時間:120秒
- 偏好食物:魯肉飯、蚵仔煎
-
害羞學生 (SHY_STUDENT)
- 平常都去點餐機點餐,覺得服務人員很兇
- 喜歡:營業微笑
- 討厭:冷靜專業
- 耐心時間:60秒
- 偏好食物:珍珠奶茶、臭豆腐、蚵仔煎
-
趕時間上班族 (RUSHED_OFFICE)
- 一直低頭看手機,只在乎儘快拿到餐點
- 喜歡:無
- 討厭:無
- 耐心時間:40秒
- 偏好食物:魯肉飯、珍珠奶茶
-
奇怪的 vlogger (VLOGGER)
- 拿著自拍棒直播,自我中心,可能找碴做效果
- 喜歡:委屈尷尬
- 討厭:冷靜專業
- 耐心時間:45秒
- 偏好食物:牛肉麵、臭豆腐
-
飆車外送員 (RUSHED_DELIVERY)
- 超級趕時間!!!
- 喜歡:無
- 討厭:無
- 耐心時間:30秒
- 偏好食物:魯肉飯、珍珠奶茶
- 友善 (FRIENDLY): 喜歡開心表情
- 中性 (NEUTRAL): 喜歡中性表情
- 暴躁 (GRUMPY): 喜歡難過表情
- 每位客人有初始滿意度和最高滿意度(依類型而異)
- 每個客人只會想要一種食物,在生成時從其偏好食物列表中隨機決定
- 使用喜歡的表情接單:滿意度提升(依類型而異)
- 使用討厭的表情接單:滿意度下降(依類型而異)
- QTE 失敗:滿意度下降(依類型而異)
每種食物都有獨特的屬性:
-
牛肉麵 (BEEF_NOODLE)
- 描述:香濃的牛肉湯配上Q彈的麵條,是台灣經典美食
- 製作時間:5.0 秒
- 吃掉回 SAN:15.0
- 可以丟的距離:200.0 像素
-
臭豆腐 (STINKY_TOFU)
- 描述:外酥內嫩的臭豆腐,搭配泡菜和醬汁,風味獨特
- 製作時間:3.0 秒
- 吃掉回 SAN:10.0
- 可以丟的距離:150.0 像素
-
珍珠奶茶 (PEARL_MILK_TEA)
- 描述:濃郁的奶茶配上Q彈的珍珠,是台灣最具代表性的飲品
- 製作時間:2.0 秒
- 吃掉回 SAN:8.0
- 可以丟的距離:300.0 像素
-
蚵仔煎 (OYSTER_OMELETTE)
- 描述:新鮮的蚵仔配上蛋液和地瓜粉,煎至金黃酥脆
- 製作時間:4.0 秒
- 吃掉回 SAN:12.0
- 可以丟的距離:180.0 像素
-
滷肉飯 (BRAISED_PORK)
- 描述:肥瘦相間的滷肉配上白飯,是台灣最受歡迎的平民美食
- 製作時間:3.5 秒
- 吃掉回 SAN:13.0
- 可以丟的距離:170.0 像素
遊戲中有 2 種內場人員,每種都有獨特的個性和專長:
-
阿強 (AQIANG)
- 描述:有包手的冷靜低敏感廚師,不會介意你催他,但態度友善一點也不壞
- 可製作食物:魯肉飯、蚵仔煎、牛肉麵
- 喜歡表情:營業微笑
- 討厭表情:無
-
KASUMI (KASUMI)
- 描述:傳說中會使用美味魔法的女僕廚師,要對她溫柔一點喔
- 可製作食物:珍珠奶茶、臭豆腐
- 喜歡表情:委屈尷尬
- 討厭表情:冷靜專業
- 內場人員有心情系統(mood),使用正確表情可提升心情
- 使用錯誤表情會降低心情
- 心情影響製作效率和品質
- 靠近客人(距離 < 100 像素)並按下任意表情鍵(J/K/L)開始點單
- QTE UI 會顯示在互動中的客人上方 10px 處,以 1.5 倍大小顯示
- 對話泡泡會輪播該客人想要的食物 + 隨機 emoji,每 0.5 秒切換一次
- 只會顯示該客人想要的特定食物,而非所有食物品項
- 混合隨機 emoji 增加 QTE 難度
- 當顯示到客人想要的食物名稱時,鬆開表情鍵即可接單成功
- 如果做錯表情,客人滿意度會下降
- 如果 QTE 失敗(在錯誤的食物或 emoji 上鬆開),需要重新開始
- 初始 SAN 值:100 點(最高 100 點)
- 使用表情時會持續消耗 SAN 值,消耗速度依表情類型而定:
- 營業微笑:每秒消耗 1.0 點
- 冷靜專業:每秒消耗 0.5 點
- 委屈尷尬:每秒消耗 1.5 點
- 吃掉食物可以恢復 SAN 值(依食物類型而異)
- SAN 值歸零時遊戲結束
- 可在遊戲結束後按 R 鍵重新開始
- 客人會陸續加入排隊(左側區域)
- 最多同時客人數量依關卡配置而定(2-6 位)
- 生成間隔依關卡配置而定(3-8 秒)
- 客人完成訂單後會自動離開,其他客人會重新排列
- 每位客人根據其類型顯示對應的圖片:
- 地方阿姨:
customer_local_aunt.png - 害羞學生:
customer_shy_student.png - 趕時間上班族:
customer_salary_man.jpeg
- 地方阿姨:
- 客人頭頂顯示其類型名稱(如「地方阿姨」、「害羞學生」等)
遊戲包含多個關卡,每個關卡有不同的配置:
-
教學關卡 (Level 0)
- 持續時間:90 秒
- 生成間隔:8 秒
- 最多客人:2 位
- 只有地方阿姨
-
基礎關卡 (Level 1)
- 持續時間:120 秒
- 生成間隔:5 秒
- 最多客人:3 位
- 包含友善、中性、暴躁三種基本類型
-
進階關卡 (Level 2)
- 持續時間:120 秒
- 生成間隔:4 秒
- 最多客人:4 位
- 包含所有客人類型,不同出現頻率
-
高級關卡 (Level 3)
- 持續時間:120 秒
- 生成間隔:3.5 秒
- 最多客人:5 位
-
專家關卡 (Level 4+)
- 持續時間:180 秒
- 生成間隔:3 秒
- 最多客人:6 位
- SAN 值條:右上角顯示當前 SAN 值(使用自定義紋理)
- 時間條:底部顯示關卡剩餘時間(使用自定義紋理)
- 玩家表情面板:右下角顯示玩家當前表情的臉部特寫圖片
- 沒做表情時顯示
player_idle.png - 營業微笑時顯示
player_smile.png - 冷靜專業時顯示
player_professional.png - 委屈尷尬時顯示
player_sorry.png
- 沒做表情時顯示
- 操作說明面板:左上角顯示操作說明
- 遊戲結束面板:SAN 值歸零或時間到時顯示
- 其他 UI 元素:日期顯示、設定按鈕、圖標等
- Godot 4.5 (Mobile renderer)
- 視窗大小:1280x720
- GameManager: 管理遊戲狀態、SAN 值,初始化所有資源數據(食物、表情、客人、內場人員)
- LevelManager: 管理關卡配置、狀態和切換邏輯(Autoload)
- Player: 處理玩家移動和表情控制
- Customer: 管理客人個性、滿意度、QTE 系統、視覺顯示(圖片和名稱)
- KitchenStaff: 處理內場人員的食物準備和心情系統
- QueueManager: 管理客人排隊和生成,應用關卡配置
- InteractionManager: 處理玩家與客人的交互邏輯
- QTEUI: 顯示 QTE 對話泡泡
- UIManager: 管理所有 UI 顯示和更新(SAN 值條、時間條、玩家表情面板等)
所有遊戲數據都已對象化為資源類:
- Food: 食物資源類(描述、製作時間、回 SAN 值、丟的距離)
- Mask: 表情資源類(描述、SAN 消耗、按鍵)
- CustomerData: 客人資料資源類(描述、喜歡/討厭表情、說話速度、耐心時間、滿意度變化、偏好食物)
- KitchenStaffData: 內場人員資料資源類(名稱、描述、可製作食物、喜歡/討厭表情)
- LevelConfig: 關卡配置資源類(關卡名稱、生成間隔、最多客人數、持續時間、客人生成配置)
- CustomerSpawnConfig: 客人生成配置資源類(客人個性類型、生成權重)
game-jam-2026/
├── Objects/ # 遊戲物件場景
│ ├── player.tscn # 玩家場景
│ ├── customer.tscn # 客人場景
│ └── kitchen_staff.tscn # 內場人員場景
├── Scenes/ # 遊戲場景
│ ├── main.tscn # 主場景(包含所有遊戲物件)
│ ├── ui.tscn # UI 場景
│ └── qte_ui.tscn # QTE UI 場景
├── Scripts/ # 遊戲腳本
│ ├── game_manager.gd # 遊戲管理器(核心邏輯)
│ ├── level_manager.gd # 關卡管理器(Autoload)
│ ├── level_config.gd # 關卡配置資源類
│ ├── customer_spawn_config.gd # 客人生成配置資源類
│ ├── player.gd # 玩家腳本
│ ├── customer.gd # 客人腳本
│ ├── kitchen_staff.gd # 內場人員腳本
│ ├── queue_manager.gd # 排隊管理器
│ ├── interaction_manager.gd # 交互管理器
│ ├── qte_ui.gd # QTE UI 腳本
│ ├── ui_manager.gd # UI 管理器
│ ├── food.gd # 食物資源類
│ ├── mask.gd # 表情資源類
│ ├── customer_data.gd # 客人資料資源類
│ └── kitchen_staff_data.gd # 內場人員資料資源類
├── Assets/ # 遊戲資源
│ ├── player_*.png # 玩家表情臉部特寫圖片
│ ├── customer_*.png # 客人圖片
│ └── *.png # 其他 UI 和遊戲資源
├── project.godot # Godot 專案設定
└── README.md # 本文件
- ✅ 完整的關卡系統(5+ 個關卡,不同難度和配置)
- ✅ 客人視覺系統(根據類型顯示對應圖片和名稱)
- ✅ 玩家表情臉部特寫顯示系統
- ✅ 自定義 UI 紋理(SAN 值條、時間條等)
- ✅ 時間限制系統(每個關卡有固定時間)
- ✅ 客人生成權重系統(不同關卡不同客人出現頻率)
- 完善內場人員的互動系統(實際取餐流程)
- 添加更多遊戲機制(難度遞增、成就系統等)
- 優化 UI 顯示和動畫效果
- 添加音效和背景音樂
- 實現食物準備和配送系統
- 添加統計數據和關卡完成記錄