游戏界面开发 是做什么的?
让每个界面都感觉是同一款游戏的一部分。从游戏自身的最优界面出发,而非套用通用网页样式;保持导航的游戏感;在玩家实际使用的屏幕尺寸上逐一检查。适配所使用的 UI 技术(基于 Canvas 的 DOM、引擎 UI 或场景内 UI)。如果项目中使用 game-foundation 控制界面流程,优先使用它;本技能负责界面的外观和行为。
1. 清点
列出每个界面和覆盖层,包括容易遗漏的:标题、主菜单、各个模式菜单、车库或配置、设置、大厅或房间界面、加入与邀请流程、加载、暂停、结果、错误、空状态、HUD 以及仅供开发者使用的界面。对每个界面记录其文件、如何进入、如何退出,以及是否需要服务器或已保存数据才能显示。需要游戏服务器的界面必须随服务器一起运行,否则报告为未验证。
2. 提取样式约定
选择一个锚点:当前最像游戏本身的界面(通常为标题或主菜单)。在触碰其他界面之前记录其规则:字体及标题处理、颜色令牌、背景(实时 3D 场景、模糊背景、美术图)、面板形状、按钮状态(空闲、悬停、聚焦、按下、禁用)、间距比例、动效和音效。将共享部分放入令牌或共享类中,防止界面间出现漂移。样式约定的模板及游戏内惯例请参考 style-contract.md。
3. 应用
- 全屏游戏布局,而非网页卡片。 桌面端无文档滚动;弹窗适配视口;长列表在其自身面板内滚动。
- 游戏导航。 Esc 或后退控件可离开所有界面;键盘和手柄焦点以可见的焦点状态可预测地移动;主要操作一目了然。
- 新手引导入口作为一个流程。 如果某些模式前需要姓名或个人资料,在一段简短的开头步骤(姓名输入 + 开始游戏)中询问,而不是显示一个充满锁定按钮的菜单。在设置中保持同样的验证逻辑,使后续编辑不会破坏它。
- 一处入口即足够。 不要让玩家在导向同一地方的选项之间选择(例如同一张地图上的三个出生点);给出一个主要操作,并在游戏内提供变体。
- HUD 层级。 阅读 hud-and-loading.md。每个数字都有标签,不出现类似调试输出的内容,仅在相关时显示上下文元素。
- 加载画面 具有与游戏匹配的动效,有真实进度时显示真实进度,短加载时不闪烁。
- 间距随视口高度缩放(使用
clamp()或视口单位),使高菜单既不会在大屏幕上挤在一起,也不会在大屏幕上过度展开。
4. 重命名面向玩家的名称
重命名游戏、模式、地点或物品时:搜索 UI 字符串、HTML 标题、清单、文档、包名和存储键中的所有拼写变体(大小写、空格、连字符、拼写错误)。当存储键更改时迁移已保存数据,使现有玩家保留其个人资料。保持内部 ID 稳定,除非任务要求更改它们。
5. 验证
在 1440×900、1280×720、1024×600 和手机尺寸(375×812)以及项目的其他目标尺寸上检查每个被改动的界面。使用截图,并使用来自 playtest 的 __pt.layout()(或等效的边界框检查)检测页面滚动、越界控制和重叠。走查每个界面的进入和退出。报告无法打开的界面及其原因。