译者前言:
【资料图】
《城市:天际线 Ⅱ》即将于今年10月25日在各大平台正式发售,现已开启预购。自6月19日至9月11日,Colossal Order 将发布一系列开发日志,介绍该游戏的功能与特色。本文翻译了6月26日发布的该系列第二篇开发日志。
本文基于百度翻译结果适当润色;游戏内功能标签等专用词汇的翻译,不代表将来官方最终使用者。原文链接等将于置顶评论列出,原文及图片版权归原作者所有。如有不恰当之处还请谅解,并请您在评论区不吝赐教。
如果您喜欢本文,务请不要吝惜您的点赞甚至三连,十分感谢!
《城市:天际线 Ⅱ》特色亮点#2:交通 AI
大家好!带着《城市:天际线Ⅱ》(后称二代)的另一篇开发日志,我们又见面了。今天的内容是新型和改进的交通 AI。在一个不断壮大的城市中管理交通是《城市:天际线》(后称一代)关键的一部分;我们明白,到了二代,我们想给您带来一个更高级的系统,既能回应您多年来的反馈,又能让城市更加栩栩如生。
市民和交通是一个生机勃勃的城市的核心部分。人们在什么地方居住、工作,闲暇时又会去哪儿?商业位于何处,如何获得售卖的商品?它们的客户是市民还是其他商业?顾客如何找到它们?附近有没有更好的购物选择?所有这些等等都要把交通在城市中的流动纳入考量。
在本篇开发日志中,我们将了解交通模拟如何工作,以及各种行为主体(agent,在城市中运动的市民、服务和资源)在做出寻路决策时考虑了哪些特征。在深入了解所有细节之前,请查看下面的精彩视频。
(译者注:请至源地址或其他授权搬运处查看)
两代游戏间的差异
二代中的寻路方式与一代不同。在一代中寻路是基于邻近程度的,即行为主体将通过直线距离计算目的地或指令服务,而不考虑现有的道路网络。在发生火灾时,这意味着响应的消防车将来自最近的消防站,即使消防车的路线因为通向目的地的道路连接方式而变得更长。更长的响应时间可能意味着消防车反而无法及时阻止火势蔓延或避免建筑物倒塌。行为主体会选择最快的路线到达目的地,即使交通堵塞也会不紧不慢地堵在其中;除非修改道路网络,使他们原来的路线不再可行,它们才会改变路线。
在二代中,行为主体根据寻路成本选择路线。该成本由多个因素计算而成,有城市的道路网络、出行时间、出行成本、行为主体偏好等,我们将在下文中更详细地介绍。行为主体还将根据沿途发生的事件调整路线。他们可能会改变车道以绕开车祸和服务车辆停车,或为应对紧急情况的车辆腾出空间。
寻路成本
寻路计算的核心是这四个方面:时间、舒适度、金钱和个性。
时间是计算路径的一个重要因素。其他因素也会影响寻路,但时间通常是最重要的,因为所有行为主体都倾向于到达目的地的最快路线。当只考虑出行时间时,小型道路可能会比高速路更近,但速度也更低,所以大多数情况下公路基本上更快,行为主体会选择高速路。
舒适度是寻路的一个重要因素,规划的路线尽可能顺滑,避免不必要的交叉口转弯,并找到合适的停车位或公共交通站点下车。舒适度直接计算到寻路成本中,每个选项都会添加到总成本中。
金钱以燃料使用和可能的停车费的形式计入寻路选择。市民权衡出行和停车成本,并将其与其他出行选择以及步行进行比较,看看哪种更快捷、舒适、价钱合理。就送货车辆而言,运得越远,所运输资源的成本就越高。因此,在当地销售资源和货物,其运送成本要比将货物运输到外部连接更低,对公司来说更划算。
个性是指行为主体愿意在交通中做出“危险”的决定,例如掉头。市民和送货车辆为了降低寻路成本,不太可能在交通中做出危险决定;而应急车辆的行为约束更宽松,这样他们就可以在紧急情况下在道路网络中导航,并在必要时做出危险的寻路决定。
寻路还将旅行者的年龄段考虑进来。对于青少年来说,最重要的因素是金钱:他们在出行时会寻找便宜的选择,无论是各种交通方式还是停车。成年人重视时间,所以对他们来说最快的路线再好不过。老年人更喜欢高舒适度。只要“舒适度”成本低,老年人就倾向于选择它。
市民在做出决策时权衡所有寻路因素,以最低的总寻路成本为目的。
服务车辆根据最低的总体寻路成本来指令,新指令发出时,它们会考虑到所有可用车辆现在和未来近期的距离(比如车辆在完成之前的服务指令后所处的位置)。举个例子,道路养护服务车辆接到指令维修一段道路。在模拟中将检查当前所有可用车辆的位置及其接受指令的目的地。如果有一辆车在完成当前服务指令后即到了附近,那么可能不会为新指令选择当前较近的车辆。
由于距离使成本增加,资源运输受路线长度的影响,因此公司尽量将货物运得近些,以增加自身的利润率。将资源和货物运出城市的成本很高,而且会大大降低公司的盈利能力。
车道使用
在二代中,车辆将利用更多的车道。它们会尽量充分使用道路,在前往目的地时用上所有可用的车道,让交通尽可能顺畅。这表示,如果多车道道路的一条车道上挤满了等信号灯的车辆,那么新到交叉口的车辆会选择另一条空车道来均匀地填满交叉口。
多车道道路上,游戏模拟发现其他车道使用较少时,车辆可以超越慢车。车辆也会变道以绕开因交通事故、堵塞或停车(如救护车接病人)而完全堵塞的车道。此外,车辆也会尽量变道,为应急车辆让路。
交通模拟、行为主体和性能
二代中的交通模拟非常复杂。所有车辆和行人不仅要计算路径,在城市的大小道路上行驶时还要始终考虑附近的所有行为主体。行为主体在出行时会多次做出影响车流的决策,这与他们的寻路决策是分开的。其中包括跟随车辆加速、刹车减速、转弯时避开对向车辆、变道以优化车流,以及在原定路线上发生交通事故等意外事件时做出寻路决策。
以上意味着寻路计算比一代数量更多、更深入,因为行为主体有更多影响他们决策的特征。但由于寻路和模拟等计算充分利用了多核CPU的所有可用处理能力,因此计算更高效,从而实现了更好的总体性能。
此外,二代对在城市中运动的行为主体没有硬限制,这是对一代的重大改进。总的来说,模拟和寻路的表现大大提高,这意味着可以达到更大的人口数量。模拟的唯一真正限制是游戏运行平台的硬件限制。
环形交叉口行为
我们在上一篇开发日志中讲到了环形交叉口的建造方式,但改进可并不只有这一点。交通模拟还考虑了环形交叉口的出入规则。汇入车辆会让行已在环形交叉口上的车辆,但和现实生活一样,如果有合适的机会,它们也会插入进来。这是行为主体个性的一部分,总是寻找合适的地点来改善车流量,在紧要关头变道或溜过交叉口。
交通事故
交通事故是二代的一大特色,车辆会失控相撞或撞上建筑物。事故发生的可能性按每段道路计算,并因道路条件、照明条件、天气和灾害等特性而增加。要降低道路的事故概率,用道路养护服务和路灯来保持道路的良好状态是个好办法。
当一段道路上的事故判定为成功时,其上某一辆随机的车“失去控制”。车辆被推向一个随机的方向,获得简单的碰撞和物理效果,使其能够在过程中撞上障碍物。如果一辆车与另一个行为主体相撞,它也会在事故期间获得碰撞和物理效果。
事故现场需要分别由警察和道路养护部门保护和清理。游戏模拟会让事故影响到的车道上的车停下来,等待道路畅通后再继续行驶。如果事故严重到造成了严重伤害,救护车也可能被叫到现场。如果清理事故现场会导致长时间的交通堵塞,行为主体可能会重新计算寻路,从而导致“危险”行为,掉头寻找绕过堵塞车道的其他路线。
停车
停车是二代中的一个新特色,也是寻路的四个主要方面之一。行为主体在计算寻路并决定如何前往目的地时,会考虑可用的停车位。通常,对行为主体来说,能选择将车停在他们要去的大楼的停车场上是最舒适的。如果不行,他们会选择另一个停车地或不同的交通方式。缺乏停车场可能会导致市民更喜欢去其他地方进行购物或休闲等活动。
市民年龄段在出行舒适度、时间和金钱方面有不同的偏好。停车总会以某种方式影响到这些方面。老年人更喜欢舒适,如果目的地附近有停车位,他们很可能会选择停车位,而不考虑可能的停车费。成年人最关心时间,选择最快的路线;而青少年的钱最少,所以会选择便宜的停车场,即使他们要想完成出行必须走得更远或使用其他交通工具。
为每个停车场和建筑设置的费用以及区划的路边停车费会影响到行为主体的停车选择和寻路成本计算。低收费或不收费鼓励所有市民群体停车,而高收费则更适合富裕的市民。
信息视图
二代有两个信息视图,交通信息视图和道路信息视图,有助于监视交通并尽早解决问题。
交通概况
交通信息视图显示了整个城市的车流量(traffic flow)和交通量(traffic volume),交通堵塞的道路涂红,可以很容易地快速发现道路网络中的问题所在。车流量表示城市车流的顺畅程度。较高的数字表示没有堵塞,而较低的数字表示可能有瓶颈路段。最后,交通量显示了一天中的不同时间有多少车辆在道路网络上行驶。交通量大表示高峰期。
道路概况
道路信息视图显示了关于一条道路的更深入的信息,涵盖了道路的状况及其车流量和交通量。有了这些工具,就可以非常精确地加强道路网络。如果某条道路交通量很大,那么它很可能是一条主干道,随着城市的发展,您可能需要密切关注它,并将其升级为更大的道路,以缓解未来的交通拥堵。
道路状况对事故概率和行驶速度产生负面影响,增加事故风险、减缓交通速度。道路养护车辆在冬季保持道路状况良好无积雪,使交通更加顺畅,出行更加安全。
服务车辆
当服务车辆接收来自建筑和道路段落的指令时,它们会计算出到达目的地的合适路径。当车辆行驶到目的地时,它们会影响行驶路径和/或周围环境——例如,当垃圾车收到前往下一个目的地收集垃圾的指令时,它们也会沿途收集垃圾。同样,道路维护车辆将在行驶至当前目的地后维修道路段落。
警车和消防车等应急车辆有别的规则影响它们的寻路。与市民、其他服务车辆和送货车辆相比,他们的行为“更危险”:如果能缩短前往目的地的路线,他们就可以“非法”掉头。可能的话,其他车辆将在多车道道路上变道,让行应急车辆。
巡逻警察的行为也有别的规则,巡逻任务可以降低他们所经过地区的犯罪概率,而抢劫或交通事故等紧急情况则优先于巡逻。
公共交通工具在指定线路上行驶,但出租车除外,它们可根据类似于私家车的寻路规则自由选择路线。它们起初会在出租车站接客,但随着出租车站升级,他们能在城市里的任何地方接客。
服务车辆活动可仅限于玩家创建的区域。这些情况下,车辆只在指定区域内响应指令和紧急情况。任何城市服务都可以为一个或多个区划甚至整个城市(默认)提供服务。
与其他城市之间的交通
通过一个又一个外部连接与其他城市之间建立的交通也是游戏一大特色。这种交通对城市经济没有贡献,但随着城市的发展和高速公路融入城市道路网,它们也能成为总体车流的一部分。如果玩家在两个外部连接之间建立一条较短的路线,并在寻路方面更划算,那么这些城市之间的交通车辆将变为使用这个新建的选项。
本篇开发日志到这里就结束了。我们希望它能带你深入了解二代中的交通行为,并将帮助您设计理想的城市。交通 AI 一直是一代中反复提及的话题,我们期待听到您对二代中更先进、更逼真的交通模拟的反馈。下周,我们将讨论公共交通和货物运输,以及它如何整合进您的城市。
译者感想:
寻路 AI 有了很大改进,考虑的因素更多更复杂;可以指定服务区域,这很好;单车道堵车、单核战士将不再出现,但对硬件仍然是个考验;治理堵车时停车场和服务设施的规划也要好好考虑了。外部连接点内移到了边缘地块(相当于绕过了 Cross the Line + Unlimited Outside Connections)。
感谢您的阅读!如果您喜欢本文,不妨慷慨一赞,十分感谢!