用途
本技能为 Godot 引擎提供派对游戏的专家实现蓝图,目标场景是 Mario Party 风格游戏或 WarioWare 风格的小游戏合集。它围绕派对游戏常见的技术难点给出组件化脚本与实施规则:小游戏资源系统、本地多人输入、非对称玩法平衡、场景管理、持久计分、分屏渲染。
主要能力与专家组件(scripts/)
资料声明在实现对应系统前,有若干「强制阅读(MANDATORY reads)」脚本:
- party_input_router.gd — 大厅加入与「设备→玩家」路由(golden path),设备 ID 加入加 pN_* InputMap 路由,资料称其为完整实现而非桩代码。
- minigame_orchestrator.gd — hub 与小游戏之间的场景循环,Autoload 式小游戏排序。
- connection_monitor.gd — joy_connection_changed 断连暂停与重连 UI 组。
其他模块化组件包括:minigame_async_loader.gd(在说明界面期间线程化加载 PackedScene)、split_screen_setup.gd(2–4 个 SubViewportContainer 网格)、split_screen_manager.gd(视口同步与共享世界辅助)、local_input_manager.gd(为 4 个以上手柄做运行时 InputMap 重映射)、player_join_manager.gd(从原始 JoypadButton 事件做槽位映射)、deferred_scene_switcher.gd(安全延迟释放与实例化)、tournament_state.gd(持久计分与名单 Autoload)、character_select_grid.gd(焦点安全的角色选择)、minigame_player_controller.gd(绑定到路由动作的每玩家 pawn)、player_haptic_feedback.gd(按设备震动)、shared_party_camera.gd(共享相机小游戏,非分屏)、minigame_data.gd(MinigameData 资源:场景路径、规则、时长)、party_manager.gd(轮次与计分编排加小游戏场景交接)、impact_camera_shake.gd(派对撞击的全局屏幕震动观察者)。
使用方式与规则
资料以「NEVER Do(专家反模式)」列出强制约束,可分为三类:
多人输入方面:不得把玩家输入硬编码到特定手柄 ID;应通过 Input.get_connected_joypads() 动态查询。不得把玩家 ID 烧入输入映射(如 p1_jump);应用动态输入路由器在运行时将物理手柄映射到玩家。不得用 Input.is_action_pressed() 处理新玩家加入;应在 _unhandled_input() 中解析原始 InputEventJoypadButton 获取设备元数据。所有小游戏控制须标准化(A = 接受/动作,B = 返回/取消,摇杆 = 移动)。不得假定手柄断开即移除玩家;应连接 joy_connection_changed 信号来暂停并优雅处理掉线。不得对模拟摇杆使用布尔轮询;应用 Input.get_vector() 保证精度与死区。
体验与反馈方面:不得使用冗长文字教程;应用 3 秒循环 GIF 加一句指令浮层(如「Mash A to fly!」)。不得忽视 1v3 游戏的非对称平衡;应给「单人方」独特能力或更高 HP/速度以抵消人数劣势。不得忽略无障碍与让分系统;应实现可选支持(如为低水平玩家加速)以保持竞争社交性。手柄菜单不得让 UI Control 保持 FOCUS_NONE;应设为 FOCUS_ALL 并配置明确的焦点邻居。
渲染与架构方面:不得使用重型场景切换;应保持小游戏资源轻量,并在说明界面激活时使用线程化后台加载。不得为单个分屏玩家绘制全局 CanvasLayer UI;应使用每个视口下的 CanvasLayer 子节点。不得手动设置 SubViewport 子节点尺寸;应使用 GridContainer 或 BoxContainer 自动分屏布局。不得在小游戏场景内存放锦标赛状态或比分;应使用持久 Autoload(单例)。共享房间游戏不得使用静态 Camera2D;应使用动态组相机缩放平移以容纳所有玩家。不允许重叠 SubViewportContainer 节点而不设置 mouse_filter 为 PASS,否则上层视口会拦截输入。
核心循环为:大厅加入 → 元游戏/棋盘 → 小游戏 → 计分 → 重复。资料还给出决策树(输入与掉线、场景与视口)、技能链(输入、场景、数据、UI、平衡五阶段,分别对应 godot-input-handling、godot-scene-management、godot-resource-data-patterns、godot-ui-containers、godot-monte-carlo-balancer)、常见陷阱表,以及分屏加重连流程:先用 split_screen_setup.gd 构建视口,在小游戏开始前通过 party_input_router.gd 绑定设备,将 connection_monitor.gd 作为 Autoload 常驻,断连时暂停并 call_group("ui_overlays", "show_reconnect", device),重连时把同一 player_id 重绑到新 device_id 后取消暂停,不要重映射其他玩家。
适用场景
Mario Party 风格游戏、WarioWare 风格小游戏合集,涉及本地 4 人手柄、1v3 非对称玩法、分屏渲染与跨轮次计分的项目。
限制
资料中「Architecture Overview」下的代码示例不完整(仅出现注释标题);收费、价格、平台与具体使用步骤在资料中暂未提供。首次接线时资料明确要求不要加载 party-elite-implementations.md,应先用内置 scripts/。