# 六角机场:起降调度游戏设计文档 **版本:** v0.1 · 规则基线与原型验收版 **日期:** 2026-09-17 **项目名:** 六角机场(暂定) **状态:** 本轮讨论确认的规则基线。实现与测试结果见 [机场实验室](../labs/airport/README.md),不以自动测试代替真人体验验证。 ## 1. 游戏定位与设计目标 ### 1.1 游戏概述 一款基于 HexTrails 六角轨道玩法的竖屏机场调度解谜游戏。 玩家点击地面飞机使其起飞,清理必要的通路;旋转六角底盘,改变轨道连接;点击棋盘外等待的飞机,使其从所在侧进入,停到预设的同色停机位。 **在有限操作次数内,让本关全部来机同时完成停靠,即可过关。棋盘上可以保留原有飞机,不要求清空棋盘。** ### 1.2 核心体验 玩家判断哪些原有飞机必须先起飞、哪些可以保留,怎样旋转连接来机所在侧,哪架来机应先停,以及是否值得让已停靠来机再次起飞、换侧进入。 操作保持直接:点击飞机尝试起降,点击左右旋转按钮改变连接。不手动选路线、不拖动飞机、不增加降落确认步骤。 ### 1.3 设计依据与优先级 - [原作说明](../README.md)。 - [原作设计规范](../Design.md)。 - [关卡 38—39 录像分析](../../_handoff/gameplay-recording-analysis.md)。 - 2026-09-16 至 2026-09-17 本轮机场玩法讨论的最新结论。 新玩法明确修改的规则优先于原作;其余视觉、轨道、碰撞及交互规范尽量继承。录像用于理解原作体验,不作为新玩法成立的证据,也不据此推导新玩法的平均通关时长。 ### 1.4 与原作的区别 | 项目 | 原作 | 新玩法 | |---|---|---| | 胜利目标 | 清空棋盘 | 全部来机同时停靠 | | 棋盘棋子 | 带箭头的六角棋子 | 保留六角占位的飞机 | | 颜色 | 外观区分 | 来机与专用机位匹配 | | 轨道颜色 | 统一表现 | 仍然统一,不参与匹配 | | 占位 | 随离场减少 | 起飞减少,降落增加 | | 场外元素 | 无待接入棋子 | 六侧等待的来机 | | 旋转、失败尝试 | 免费 | 消耗操作次数 | | 来机再次起飞 | 无 | 在实际出口侧等待 | | 广告点 | 不继承旧规则 | 激励广告增加操作额度 | ## 2. 游戏对象与空间规则 ### 2.1 棋盘与轨道 保留六角棋盘、格内轨道配对、弯道转向和交叉不换轨。旋转以 60° 为单位,只有底盘与轨道旋转,飞机位置和机头方向、停机位位置和颜色、外围六个贴边停机坪均保持固定。 轨道没有颜色匹配规则。是否能经过取决于连接关系和碰撞判定。 ### 2.2 原有飞机 原有飞机指开局已经位于棋盘上的飞机。从机头方向进入轨道,成功起飞后永久离场,不计入接机完成数量,颜色不限制起飞路径。离场只释放占位,不把普通格变成停机位。 不强制所有原有飞机朝外;机头方向是关卡配置的一部分。 ### 2.3 来机 来机具有固定身份、颜色和当前等待侧。等待时不自行绕盘换侧;点击只检查当前所在侧的入口。成功停靠后占位并可能阻挡其他飞机。 来机再次起飞后,转到实际离场出口所属侧等待,仍属于未完成目标,必须重新停好。**来机身份不会因为起降变成原有飞机。** ### 2.4 专用停机位 停机位在关卡设计时预设,具有明确位置、颜色和专用视觉标识。一位一机;来机只能在同色位完成停靠,同色来机不与机位逐一编号绑定。 普通空格不能作为目标。空停机位可以经过,不构成障碍;上面有飞机时按正常六角占位阻挡。原有飞机即使位于专用机位上,也不计入接机完成数量。 每种颜色的机位数量等于该色来机总数,首轮不增加备用位。 ### 2.5 场外停机坪 来机停靠在棋盘轮廓六条平边外侧(右上方、右方、右下方、左下方、左方、左上方),不悬停在正北等罗盘方位。这六条平边就是入口边;角上的端口只归其中一边,不能两边同时进。 同侧可有多架、多色来机,同色来机也可分处不同侧。停机坪上的排列不绑定精确入口。每个边界入口和出口按端口位置落入的 60° 平边扇区唯一归属;画面上的停机坪边和规则上的进场边必须是同一条。来机只能从当前所在平边的开口进场,不能跨边。 ## 3. 起飞、降落与碰撞 ### 3.1 原有飞机起飞 1. 从格心沿机头方向起步。 2. 按当前轨道配对追踪唯一行进路线。 3. 检查能否离场及完整运动过程是否碰撞。 4. 成功时立即释放逻辑占位,播放离场动画,永久离开本关。 实际离场侧由轨道出口决定,不一定等于初始机头方向。失败起飞不改变位置,碰撞回退表现继承原作。 ### 3.2 场外来机降落 点击后只检查当前所在平边的边界入口,不把邻边开口算作本侧通路。合法降落需同时满足:入口属于当前平边、轨道通往预设同色机位、机位未占用或预占、路径有效、完整运动过程不碰撞任何在场飞机的六角占位。 | 结果 | 行为 | |---|---| | 恰好一个合法结果 | 立即占位并播放降落动画 | | 没有合法结果 | 留在场外,震动并反馈原因 | | 多个合法结果 | 关卡设计错误,不设置自动选择优先级 | 不采用最近、最远、编号优先或玩家手选。完整停靠结果包括入口路径、目标机位和停稳朝向;同一机位的不同进场朝向也不能任意选择。 ### 3.3 最后一段停靠 采用原作“格心出发”的反向连接:从目标格入边进入格心,最后一段也检查碰撞。保持驶入朝向,不自动掉头;后续转盘不改变机头。 经过空停机位与在此结束运动是两种路径判定;空位不强制截停经过的飞机。 ### 3.4 已停靠来机再次起飞 起步、轨道跟随和碰撞检查与原有飞机相同。成功后立即释放机位、取消完成状态,沿路离场,随后在实际出口所属侧恢复等待。 `上方停机坪 → 停靠 → 从下方离场 → 下方停机坪` 下一次只检查下方入口。重新起飞和再次降落分别消耗次数。 ### 3.5 六边形碰撞 继承原作六边形碰撞体,不以飞机贴图的透明轮廓代替。检查经过被占用格、弯道接触、邻格擦碰、最后入位段和离场必要延伸段。 绘制、动画和碰撞使用同一套路径数学。禁止画面绕过却判撞、或飞机动画穿过六角占位。 ### 3.6 降落失败反馈 | 原因 | 文案与表现 | |---|---| | 所在侧不连接适用目标 | 原地震动,“没有可供行进的路线” | | 有连接但路径受阻 | “路线受阻”,高亮路线及第一个阻挡物 | | 目标已占用或预占 | “没有可用的跑道” | 多个前后阻挡只高亮行进方向上的第一个;移走后再尝试,才显示后续阻挡。这是点击后的失败反馈,不增加选路、确认步骤,也不自动给完整解答。 ## 4. 操作次数、胜负与状态同步 ### 4.1 计步 原有飞机起飞尝试、来机降落尝试、已停靠来机起飞尝试、单次 60° 旋转,每个接受执行的动作扣 1 次。成功和失败均计步,重复落地也计步。 点击空白、设置、阅读已有反馈不属于调度动作;同一运动中的飞机重复点击不形成新指令。若实现拖动旋转,跨越多个 60° 档位时按实际执行档位数计步。 ### 4.2 胜利条件 全部来机同时占据合法同色机位,不在等待区或再次起飞过程中。原有飞机是否清空不影响判胜,不按累计落地次数计数。 最后一次操作刚好用尽额度但完成目标时成功优先;通关界面等待必要动画结束。 ### 4.3 步数不足与死局 次数不足时暂停新的调度操作,可选择激励广告补充或重来。空间无解时,增加次数不能解决,需要重来或后续另行设计的恢复功能。 只保证开局存在预算内免费解,允许玩家误操作造成死局。当前无飞机可动不等于无解,还需考虑旋转和后续起降。搜索未完成不得误报已证明无解;确认无解时不能把广告加步数推荐为解法。 ### 4.4 点击与动画 逻辑先于动画:起飞成功即释放原位,降落成功即占用目标并扣步,后续点击按更新后的逻辑棋盘判断。移动贴图不作为额外实时障碍,降落目标预占参与碰撞。 两架来机争抢同一空位时,第一架判定成功立即占位,第二架在动画未结束时也必须重新判定;无其他合法结果就提示“没有可用的跑道”。 飞机运动时不执行底盘旋转;旋转期间的点击可暂存,到位后按顺序执行。重来、换关、打开弹窗清理未执行暂存指令。 来机离场后必须明显飞入实际出口侧等待区,不能消失后无提示换位。 ## 5. 界面、视觉与声音 ### 5.1 视觉方向 机场实验室使用原工程第 07 套「马卡龙」:奶油色世界、白色软托盘、带白缝的糖砖格、藕紫轨道、糖果色棋子与白色飞机剪影。参考 [马卡龙设计规范](../design/directions/macaron/design.md)。主题只改外观,不改匹配规则。 彩色飞机和机位是主要阅读对象,装饰不得遮挡轨道、机头、机位和碰撞边界。正顶视飞机保留可感知的六角占位边界。通路不着匹配色。 盘边跑道与停机坪航线(2026-09-21): - 每条板边轨道不再在糖砖内收口,而是沿端口法线延伸到托盘外缘(圆头收回半个线宽,不伸出棋盘)。 - 托盘外、六个侧的法线方向画固定浅色停机坪航线,等待机停在其上;航线不随底盘旋转,跑道随底盘旋转。 - 当某架来机的当前侧在当前朝向下接得上同色机位时,用中性强调色(马卡龙 `hint`,不是飞机或机位颜色)点亮盘内通道,开口加圈、保留进场箭头;被挡时阻挡物仍用 `blocked` 标红。跑道线始终裁在托盘内。常显跑道负责说明"这里有没有开口",高亮负责说明"这架能不能进"。 - 停机坪机位仍按其原有平边法线摆放(与入口法线差半步),不做位移。 ### 5.2 颜色与身份 机位具有彩色边框和专用停靠标识;已停靠来机还需独立完成标记,不只凭朝内朝外区分。本稿默认使用小型 P 标记,正式素材沿用统一图标语言。 飞机与对应机位附加一致的小型颜色类别符号,辅助辨色。主题改变不能重映射匹配关系。 ### 5.3 布局 顶部显示关卡、剩余次数和接机进度。棋盘六条边外侧预留停机坪,不遮挡边界入口;同侧多机可辨、可点。左右旋转使用独立区域,重来和设置不覆盖棋盘或停机坪。 沿用原规范的最小触摸尺寸、文字对比度和模态要求。若保留缩放,棋盘、机位和等待区的相对关系一致,不能改变侧归属。 ### 5.4 动效与声音 起降沿真实轨道,弯道朝向跟随运动。转盘参考原作 240ms 节奏。降落失败原地震动,原有飞机起飞碰撞回退。来机再次起飞不用永久消除式碎裂表现。来机成功停靠时,在该机周围播放一小段彩带,不遮住机头和机位标识。 点击、旋转、起飞、停靠、受阻、通关使用可区分的声音;音效可关。减少动态效果时保留状态文字与必要路线反馈。精确素材与时长属于视觉调校,不改变逻辑。 ## 6. 关卡设计与商业化 ### 6.1 关卡配置 每关包含棋盘和轨道、原有飞机的位置方向颜色、机位的位置颜色、来机身份颜色初始侧、初始额度、广告补充配置、完整免费回放解和主要调度意图。 ### 6.2 制作原则 - 局部清障可完成目标。参考解记录最终保留的原有飞机数量,不把落地的来机冒充保留的原有飞机。 - 外圈容易停靠可以用于教学;通过全部来机同时停好,避免反复使用一个位置累计完成目标。 - 顺序关系来自空间阻挡,不依赖隐藏编号或后台优先级。 - 换侧调度有可理解的收益,不能普遍靠反复起降碰运气。 - 不要求唯一最优解;只禁止同次降落出现多个合法执行结果。 ### 6.3 预算原则 初始额度覆盖至少一条完整免费解,普通关留出合理调整余量。不能给最少 10 步的关卡只配 5 步,迫使广告通关。 记录可行解步数、经证明的最优步数、合理非最优解步数、重排成本、先清全盘再接机是否可行及成本。未证明最优,不冒称最优。 对用预算抑制全清的关卡,期望: > 合理解法及容错次数 ≤ 初始额度 < 先清全盘再接机的最少次数。 无法同时满足则调整布局,不把预算压成必须精确最优。广告补充后允许更费操作的解法,不要求仍禁止全清。 ### 6.4 教学顺序与棋盘规模 前三关是教学,使用 19 格(半径 2)小棋盘,依次介绍起飞、清除首个阻挡、旋转且飞机不动、同侧接入同色机位、落地占位、再次起飞换侧、次数内完成。第一关不同时引入多色、多侧、长路和换侧调度。 教学结束后棋盘逐步放大,对齐原作主线而不是继续堆 19 格: | 阶段 | 原作依据 | 机场用法 | |---|---|---| | 入门 1–7 关 | v0.5 前 7 关半径 2(19 格),棋子 3–6 枚;另有 3 关教学序章也用 19 格 | 现有三关:19 格,来机 1–2 架 | | 熟悉 | v0.5 第 8 关起半径 3(37 格);第 1–2 章默认 37 格,棋子约 3–11 | 教学后正式关:37 格,原有飞机与来机增多 | | 舒缓加长 | v0.3/v0.5 后期穿插半径 4(61 格);章末可到半径 5(91 格) | 后期长局:61 格,再视容量到 91 格 | | 容量上限 | v0.5:半径 2/3/4/5 的目标棋子约 6 / 11 / 14 / 17 | 机场额外有来机和机位,地面原有飞机不超过同档容量 | 原作不把棋盘变大当成变难:大盘可以轻松巡游,小盘也可以做局部判断。机场同样:放大是为了容纳更多初始飞机和更长的进场,不是自动加难。 当前练习关已按这条曲线落地:教学三关之后是两个 37 格练习关(各 8 架地面原有飞机),再加一个 61 格练习关(13 架地面原有飞机)。放大档位只增加初始棋子与进场距离,不引入新规则。 v0.1 首章已混用 19/37 格;v0.5 录像中的 38–39 关属于第 1 章,棋子 11 和 15 枚,已超过 19 格教学盘能舒服放下的数量。 ### 6.5 IAA 以主动选择的激励广告补充次数:展示奖励量,成功后只增加次数、保留棋盘,取消或失败不改变棋盘和次数,避免重复领取。保留重来,不把广告设成初始解法必需。 奖励数量和次数为可调配置,不宣称商业验证完成;其他广告位不纳入本版。独立原型未接 SDK 时,必须把测试奖励标明为测试,不伪装成真实广告观看。 ## 7. 验证与实现边界 ### 7.1 开局可解 每关保存并回放不使用广告、不超预算、通过真实路径碰撞判定、全部来机同时停好的完整解;记录原有飞机保留量。允许玩家进入死局,不要求所有操作顺序通关。 ### 7.2 停靠无歧义 覆盖清障、旋转、占位改变和换侧,不仅检查开局或参考解。首轮使用充分但保守的筛选:移走所有飞机、保留机位,在六个朝向下对每侧每色枚举完整结果,至多一个。占位只会减少通路,不会新增结果。 这属于制作筛选,不是新增玩家规则;限制过强时可用完整可达状态验证替代。 ### 7.3 重点测试 | 场景 | 预期 | |---|---| | 清走普通格上的红机 | 不生成红色机位 | | 同侧多个入口,仅一个合法结果 | 自动执行该结果 | | 只有其他侧可接入 | 当前来机不能跨侧找入口 | | 无色轨道连接同色位 | 正常判定降落 | | 弯道擦邻机 | 受阻 | | 多个前后阻挡 | 只高亮第一个 | | 连点抢位 | 第一架预占,第二架重新判断 | | 来机异侧离场 | 换到实际出口侧并恢复未完成 | | 反复使用一个位 | 不累计完成全部目标 | | 最后一次完成目标 | 通关优先 | | 当前不动但旋转可解 | 不误报死局 | | 错误操作导致真死局 | 不承诺加步数可解决 | ### 7.4 状态与接口 规则层保存飞机类型、身份、颜色、位置、朝向、状态、等待侧、机位与占用、底盘朝向、额度及动画相关锁。分别返回起飞、降落、旋转结果,提供真实路径、目标、停稳方向或首个阻挡,供表现层使用。 新求解器必须考虑降落增加占位、换侧、朝向和动作成本,不直接沿用原作“能清就清”的求解策略。 首先独立实验实现,关卡、进度与原作主线隔离。 ## 8. 首轮范围与未验证结论 ### 8.1 三个教学关 1. 单机接入:19 格,局部清障后停靠,明显保留原有飞机。 2. 同色不同侧:19 格,证明自动匹配与停靠无歧义。 3. 双色调度:19 格,包含停靠阻挡、再次起飞换侧与预算。 这三关只承担教学。正式关从 37 格起放大,见 6.4。不增加计时、燃油、随机来机、尺寸差异、备用位或特殊障碍。 ### 8.2 辅助功能 撤销不作为核心恢复方式,也不直接继承免费撤销经济。首轮玩家原型仅提供重来和失败反馈;主动提示与撤销的次数、计步和商业化后续独立设计。测试回放不作为玩家通关机制。 ### 8.3 仍需试玩验证 玩家能否理解同侧自动匹配;多机位情况下无歧义布局是否丰富;额度是否兼容容错与局部清障;换侧是否有目的;死局是否导致过长返工;六边停机坪是否清晰易点。 **核心验收:玩家能看懂从哪里进入、为何受阻、停下后影响什么,并在无需清空棋盘的情况下完成全部接机。**