最新消息

欢迎你!

在这里获取丰富的资源,并与社区其他成员分享你的游戏体验!

现在就注册!
=Noel=

教程 Cities Skylines 2 地价机制详解(老版)

主题 作者
【LV:2】
11
42
8
--发布于www.cslbbs.net,转载请注明出处。

概述:虽然2代争议很大,但整个地价机制理念相比1代还是比较创新,可惜不完整,代码层面实现也不太好。
地价和道路:游戏中地价信息均储存在道路中,是道路网的属性之一。道路网含有道路边沿、路中节点(路段)以及车道等其他一系列组件。注意道路边沿的组成概念比较关键,实际上是代指了一整条同名的道路,鼠标移动到道路名就可以看到整条路的轮廓,同时也包括道路边生成的格子区块。(高速路、人行道没有区块,这也是为什么高速路不传播地价的原因,巧用人行道也可以抑制地价,后面再说)
道路地价、节点地价:地价只与道路边沿、路段节点有关。每个路段节点有不同的地价。整条道路边沿也有地价,但只记录首末两端,实际上就是首末两端的节点地价。
建筑物与地价:建筑物本身并没有地价,而是通过最大可能支付的租金、维护费两者关系确定一个变化值,即建筑最大支付租金减去维护费,若余额大于3倍当前地价则慢慢随时间增加,反之减少,一直到余额等于3倍地价为止。这个变化会经过一系列复杂转换(后述)传递给道路边沿地价(首末节点)。建筑物最大租金不受地价变动影响,与建筑的品质、收益相关。但建筑实付租金和地价成正比。
地价初始化:当新建一条独立道路时,当前地价为0,则从0开始增加。当新建的路是从另一条路交叉引出时,则按照交叉节点处地价作为新建路的首端地价,末端不接其他路则为0,如果接了其他路也按交叉点的地价作为末端地价。
距离衰减:游戏定义了地价随着道路距离传播衰减。这个设想还是不错的,而且是按道路曲线长度,而不是面积范围直线距离计算,比1代好,但是这里有bug5个多月了也没修。
地价传递:前面说了每条道路都有首末端地价,每个节点有节点地价。当一条道路A相交另一条道路B时,则A把交叉处的节点地价传给B,对B来说这个叫做weight(权重、负重),B再根据这个权重,通过一系列插值换算(此处省略),按道路长度均匀调整自己原本的地价。
这个机制本来也挺好,比1代简单画个圆要复杂得多,也更真实。但这里游戏代码中出现了一个匪夷所思的bug(按CO的话讲也是一种设计:),即首末两端只定义了一边的情况,比如从一条路中间交叉引出另一条路,是把交叉的地方算首端,原版只做了这种情况。但如果你从外边拉一条路过来交叉,那这个交叉就是末端了,原版漏了这个(痕迹上感觉是做这段他其实有预留,要么中途换了人,要么偷懒没写完,但可以肯定压根就没测试)。这样做的问题就是,引出来的新路末端地价是0,那么首端肯定大于末端,可以叠加距离衰减效果;但拉过来的路首端是0,末端是交叉点的地价,但没套用上衰减效果,更新的时候如果以有地价的点来算,会使首端跟末端一样高。一句话就是,bug导致有时会出现地价不随道路距离传播衰减,如果恰巧这条路直通全城,就导致全城高地价。
地价变动:前面说了,每个建筑物以自身最大租金来影响接壤道路的地价,再通过道路地价又影响到同一条道路上的其他建筑。游戏中叠加计算整条道路上每个建筑物的最大租金与当前地价差值,然后除以"占地面积"(没错是面积)得到一个平均后的差值,道路根据差值和道路长度关系慢慢更新自己地价。这里又有一个有意思的设定,就是面积并不完全等于多少个区块,而是在计算区块数后再加入建筑量影响,一条路上建筑数量越多越密集,则”面积越大“,反之越稀疏则”面积越小“。(建筑量采用户数计算,工商业1栋只有1户;居民楼1栋多户,根据密度折算户数)。原理上越密集则地价越高,越稀疏则越低。但这里又出现一个bug,似乎是写代码的把符号弄反了,导致越密集反而地价越低,越稀疏地价越高。这就造成在一条没有建筑的道路上地价比建满了的道路,同样条件下会更高。与前面那个bug效果叠加,加剧了道路蔓延地价过高。
地价与经济:综上,一条道路上的地价由最高租金和建筑量决定。最高租金由建筑品质、收益决定。地价只主导影响2个经济因素,一个是房屋成长适用度,越高则越难生出建筑;另一个是房屋实际租金,越高则租金越高,租金高的好处是能支付得起维护物业费,并且促进房屋升级。其他除了好看没有任何作用。(其实改写租金计算方式后,可以去掉整个地价系统而不影响游戏玩法,大幅提高性能)
地价与污染:上一版更新增加了工业地价受土地污染影响。这个更新的影响有些过猛,导致再用经济类mod会造成租金不足。
总结:
1.道路越长、建筑越密则地价会相对越高,即便用了mod也是,因为建筑数量、每个建筑收益都会抬高整条路地价。现实中也是,变相体现了交通更方便。
2.地价高除了不能建低密或者不真实之外,除非过高到连高密都建不了,其实真没什么核心影响,原版打了安全牌。低了反而容易塌楼。原理上精心调整系数是可以完美的,但需要大量时间测试。这也可能是故意留bug的原因。(追求层次和真实感的可以使用mod,但mod仍需调教参数)
技巧:
1.不用mod又不喜欢高地价的话,不要在过长的主干道上填建筑,条件许可的话最好不要在任何长干道上填建筑。用人行道隔开主干道(人行道不传播低价),用短小的支路边填建筑。或者用高速路连接主干道和支路,在支路上建房子。同时要注意铺路的方向。缺点是节点过多严重影响性能。
2.理论上,不想用上述方法的可以用低密住宅加紧凑格子路网来适当隔绝高地价蔓延(趁还没蔓延过来的时候)。或者是不要建一整条较长的路,全部用短路拼接,或者拉大路口分成两条路(以生成不同名字为准)。
3.已建成的城市用了地价mod或者经济再平衡mod后塌楼,主要是因为地价降低导致租金降低,不够支付维护费。解决方法是铲掉建新的,或者慢慢等塌完后自动建新的。单独铲一个效果不明显,最好全铲,等恢复平衡后就好了。新建城市中途不改用经济类mod的基本不会有问题。
 
主题 作者
【LV:2】
11
42
8
1.10更新全面改回了cs1代摊大饼模式,CO修不下去了放弃深度模拟。
地价不再是过高问题,问题是缺少了真实感和规划挑战。
 
回复

新主题

顶部