“给我生成一条山地车下坡赛道,越刺激越好,最好路上有随机出现的危险。”这是一个很常见的请求。按字面理解,AI可以在比赛进行中每隔一段时间随机刷出一块落石、一根倒下的树干,或者让某段路面突然变成泥地。每次跑都不一样,听起来确实刺激。
可以想象一下实际效果:玩家以每小时45公里的速度冲下一个弯,出弯瞬间前方8米处出现一根树干,没有任何反应时间,人车飞出赛道。第二次跑到同一个位置,什么都没有。第三次,树干出现在另一个弯后面。几次下来,玩家不会觉得这条赛道刺激,只会觉得自己在和一台老虎机比赛。
先分清两种随机
“随机”在地图生成里有两种完全不同的含义。
第一种是生成时随机:用一个随机种子生成地图,每次生成的地形、障碍和路线都不同。一旦地图生成完成,所有风险点的位置就固定下来,每位玩家、每一轮比赛面对的是同一张地图。这种随机让内容更丰富,但不影响公平。
第二种是运行时随机:同一张地图,每次通过时风险点的出现与否、位置、时机都不确定。这种随机直接影响结果,而且玩家无法通过练习来应对。在竞技场景里,它会让成绩更多取决于运气,而不是技术。
所以当用户说“随机危险”时,在乐鱼体育的生成流程里,更合理的理解是默认采用生成时随机,并把这一点显示给用户:“危险点在每张新地图中随机分布,同一张地图上位置固定。”如果用户明确需要运行时变化,比如天气逐渐变差导致路面变滑,也应该是渐进的、有提示的变化,而不是瞬间出现的陷阱。
原则一:可预判
风险点首先要让玩家看得见,而且看见的时候还来得及反应。这可以用视线距离来量化。以一个模拟示例为例,假设玩家的反应时间加上调整动作所需时间约为2秒:
| 通过速度(模拟) | 每秒前进距离 | 建议最小可见距离 |
|---|---|---|
| 20公里/小时 | 约5.6米 | 约12米 |
| 40公里/小时 | 约11.1米 | 约25米 |
| 60公里/小时 | 约16.7米 | 约35米 |
生成器需要知道每个风险点前方的预估通过速度,然后沿路线反向检查:在距离风险点多远的位置,玩家的视线开始能看到它。如果风险点藏在一个坡顶后面,或者在一个急弯出口,可见距离可能只有5米,这时要么把风险点后移,要么降低前方路段的速度,要么增加提前标识,比如在坡顶前放置一个醒目的警示旗。
山地车赛道里常见的盲跳就是一个典型:骑手越过坡顶之前看不到落地区。这类设计并非完全不能用,但地图上必须有清晰的提示,而且落地区本身要足够宽容。
原则二:可选择
山地车赛道设计里有一对常用概念:A线和B线。A线更快,但包含更大的落差、更窄的线路或更难的跳跃;B线绕开这些障碍,更安全,但要慢几秒。玩家在接近分岔点时,可以根据自己的能力和比赛局势决定走哪一条。
可选择的风险才会产生决策。如果一个大落差是唯一通路,技术不够的玩家只能硬着头皮冲,失败了也不会觉得是自己选错了。设计A线和B线时,要让两条线的时间差与风险差匹配:A线失败率约30%、成功节省3秒,是一个有意义的选择;A线几乎没有失败率还节省10秒,那它就没有风险,B线形同虚设。这和高尔夫球洞的风险与回报是同一个结构,只是换成了连续高速运动。
BMX地图里的跳台选择是另一个例子。间隙跳(gap jump)起跳台和落地台之间是空的,跳短了就直接掉进坑里;台面跳(tabletop)中间有平台,跳短了会落在平台上,只损失速度,风险小得多。同一位置放哪一种,本身就是风险设计的决定。
原则三:与技能曲线匹配
风险点的出现顺序也要讲究。一条好的极限运动地图,应该先让玩家在低风险情况下认识某种元素,再逐步加大难度,最后才把几种元素组合起来。比如滑板地图里,先出现一段低矮台阶,再出现带扶手的中等台阶,最后才是长扶手接大台阶的组合动作。
如果随机分布把全场最难的风险点放在起点后30米,玩家还没熟悉操控就要面对最高难度,这不叫刺激,而叫劝退。生成器可以用“风险预算”来控制:把路线切成若干段,每段允许的风险总量随进程逐渐增加,而且两个高风险点之间要有足够的恢复距离,让玩家从上一个风险点的落地状态中调整过来。模拟中通常设为至少3到4秒的通过时间。
一张风险点检查清单
生成完成后,系统可以对每个风险点逐项检查:
- 可见距离是否满足该处通过速度的要求;
- 是否有替代路线,或者它位于主线上时难度是否与该段的技能要求一致;
- 失败后果是否有上限,比如只损失时间或速度,而不是直接淘汰;
- 与前后风险点的间距是否留出了恢复时间;
- 在不同水平的虚拟玩家模拟中,失败率是否落在预期区间,而不是低水平玩家几乎全部失败;
- 如果存在运行时变化,是否有提前提示,是否对所有参赛者同时生效。
虚拟玩家模拟可以直接找出问题。以乐鱼体育地图生成中的一个模拟场景为例,某张BMX地图第6个跳台的失败率在中级虚拟玩家中达到52%,远高于其他跳台的15%左右,追查发现它紧跟在一个急弯之后,助跑距离不足。把跳台后移10米,失败率降到18%。
刺激来自选择,而不是意外
回到最初的问题:极限运动地图里的风险点应该随机出现吗?可以随机生成,但不应该在比赛中随机出现。风险点应当是地图的一部分,玩家可以看见它、研究它、决定是否挑战它,并通过练习逐步掌握它。真正让人记住的刺激,是玩家看到一个大落差,犹豫一下,决定冲过去,然后成功落地。这种设计思路和跑酷路线里的主线与捷径也是相通的。