房间信息
- 名称:新手上厨
- 类型:Low-poly 3D 合作厨房,2-4 人联机
- 玩法:取菜 → 切菜 → 煮汤 → 装盘 → 上菜 → 洗碗;包含烧糊事故、订单超时扣分、上菜小费,每局 180 秒
- 地图:经典厨房 / 一线天(隔墙递菜)/ 环岛餐吧(三灶台全菜谱)
- 包分支:
parti-package(GitHub Actions 从 v* tag 构建发布)
- Release:
v3.1(包含 parti.room.zip 与 parti.room.json)
架构合规
- Worker 是保留 canonical
defineRoom import 的单文件权威状态实现(10Hz tick + snapshot 全量广播)
- 客户端仅通过
parti.action 提交意图,并由 parti.onState 驱动渲染
- manifest 使用 blob 模式,包含 UI 与 Worker 入口,支持 2-4 人
- verifier v3 覆盖 manifest、Worker 契约、真实 loader、游戏流程与构建产物,共 84 项检查通过
房间包源码与安装来源:https://github.com/glink25/parti-overcooked/tree/parti-package
已解析的房间包源码: 查看对应仓库分支与目录
{
"partiVersion": "0.1.0",
"protocolVersion": 1,
"id": "overcooked-party",
"name": "新手上厨",
"version": "3.1",
"packageMode": "blob",
"description": "Low-poly 3D 合作厨房派对:异形大地图、移动浮岛、传送带、蓄力投掷与地面物品物流。",
"cover": "cover-newbie-chefs.jpg",
"tags": [
"co-op",
"3d"
],
"author": {
"name": "glink25"
},
"entry": {
"ui": "index.html",
"worker": "room.worker.js"
},
"room": {
"minPlayers": 2,
"maxPlayers": 4,
"allowSpectators": false
},
"sync": {
"mode": "snapshot"
},
"permissions": {
"network": false,
"storage": "session",
"camera": false,
"microphone": false,
"clipboard": false,
"sensors": []
},
"actions": {
"selectMode": {
"payload": "{ mode: 'party' | 'endless' }"
},
"start": {},
"rematch": {},
"toLobby": {},
"move": {
"payload": "{ dx: number, dz: number, seq: number }"
},
"work": {
"payload": "{ active: boolean, seq: number }"
},
"interact": {
"payload": "{ phase: 'start' | 'release' | 'cancel', seq: number }"
}
}
}
房间信息
parti-package(GitHub Actions 从v*tag 构建发布)v3.1(包含parti.room.zip与parti.room.json)架构合规
defineRoomimport 的单文件权威状态实现(10Hz tick + snapshot 全量广播)parti.action提交意图,并由parti.onState驱动渲染房间包源码与安装来源:https://github.com/glink25/parti-overcooked/tree/parti-package
已解析的房间包源码: 查看对应仓库分支与目录
{ "partiVersion": "0.1.0", "protocolVersion": 1, "id": "overcooked-party", "name": "新手上厨", "version": "3.1", "packageMode": "blob", "description": "Low-poly 3D 合作厨房派对:异形大地图、移动浮岛、传送带、蓄力投掷与地面物品物流。", "cover": "cover-newbie-chefs.jpg", "tags": [ "co-op", "3d" ], "author": { "name": "glink25" }, "entry": { "ui": "index.html", "worker": "room.worker.js" }, "room": { "minPlayers": 2, "maxPlayers": 4, "allowSpectators": false }, "sync": { "mode": "snapshot" }, "permissions": { "network": false, "storage": "session", "camera": false, "microphone": false, "clipboard": false, "sensors": [] }, "actions": { "selectMode": { "payload": "{ mode: 'party' | 'endless' }" }, "start": {}, "rematch": {}, "toLobby": {}, "move": { "payload": "{ dx: number, dz: number, seq: number }" }, "work": { "payload": "{ active: boolean, seq: number }" }, "interact": { "payload": "{ phase: 'start' | 'release' | 'cancel', seq: number }" } } }