Files
HexTrails/docs/airport-design.md

18 KiB
Raw Permalink Blame History

六角机场:起降调度游戏设计文档

版本: v0.1 · 规则基线与原型验收版
日期: 2026-09-17
项目名: 六角机场(暂定)
状态: 本轮讨论确认的规则基线。实现与测试结果见 机场实验室,不以自动测试代替真人体验验证。

1. 游戏定位与设计目标

1.1 游戏概述

一款基于 HexTrails 六角轨道玩法的竖屏机场调度解谜游戏。

玩家点击地面飞机使其起飞,清理必要的通路;旋转六角底盘,改变轨道连接;点击棋盘外等待的飞机,使其从所在侧进入,停到预设的同色停机位。

在有限操作次数内,让本关全部来机同时完成停靠,即可过关。棋盘上可以保留原有飞机,不要求清空棋盘。

1.2 核心体验

玩家判断哪些原有飞机必须先起飞、哪些可以保留,怎样旋转连接来机所在侧,哪架来机应先停,以及是否值得让已停靠来机再次起飞、换侧进入。

操作保持直接:点击飞机尝试起降,点击左右旋转按钮改变连接。不手动选路线、不拖动飞机、不增加降落确认步骤。

1.3 设计依据与优先级

新玩法明确修改的规则优先于原作;其余视觉、轨道、碰撞及交互规范尽量继承。录像用于理解原作体验,不作为新玩法成立的证据,也不据此推导新玩法的平均通关时长。

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 套「马卡龙」:奶油色世界、白色软托盘、带白缝的糖砖格、藕紫轨道、糖果色棋子与白色飞机剪影。参考 马卡龙设计规范。主题只改外观,不改匹配规则。

彩色飞机和机位是主要阅读对象,装饰不得遮挡轨道、机头、机位和碰撞边界。正顶视飞机保留可感知的六角占位边界。通路不着匹配色。

盘边跑道与停机坪航线(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 仍需试玩验证

玩家能否理解同侧自动匹配;多机位情况下无歧义布局是否丰富;额度是否兼容容错与局部清障;换侧是否有目的;死局是否导致过长返工;六边停机坪是否清晰易点。

核心验收:玩家能看懂从哪里进入、为何受阻、停下后影响什么,并在无需清空棋盘的情况下完成全部接机。