模拟城市中文网

 找回密码
 入住
搜索
查看: 9252|回复: 19

[研究与心得] 转帖官网论坛一文,详细解释现在的交通系统bug

 关闭 [复制链接]
发表于 2013-3-13 16:16 | 显示全部楼层 |阅读模式
论坛不让我贴地址,我就整个贴过来吧,详细的我就不翻译了,简单说就是寻路系统设计的有大问题,早上所有的模拟人都是按最近距离出去找工作,然后晚上按最近距离找空房子住下,“这些人没有自己的房子!” 整个系统就是按这个逻辑在填空。
One of the biggest problems people are having with the game is the massive traffic-jams that seem to clog the entire system up. Now, this is responsible for the ineffective coverage of ANY traffic-based services (Fire, Police, Garbage, Medical, Education, Mass-Transit.) There are also a number of smaller complaints that may also be directly related to how Glassbox handles traffic.

"Workers aren't commuting."
"There aren't enough workers, even though I have plenty of population."
"Tourism is broken."
"Emergency services are slow/unresponsive/broken."

The agent system that is used for utilities (power, water, sewage) seems to be identical to the system that handles traffic.

The problem is that, just as power can sometimes take a ridiculously long time to fill the entire map (because the "power agents" just randomly move about with no sense) traffic and workers can do the same thing. Workers leave their homes as "people agents." These agents go to the nearest open job, not caring at all where they worked yesterday. They fill the job, and the next worker goes to the next building and fills that job, and so it goes until all the jobs are "filled." So, when you have all your "worker" sims leaving their houses for work in the morning, they all cluster together like some kind of "tourist pack" until they have all been sucked into "jobs." They don't seem to care if the job is Commercial or Industrial, only that it's a job.

"Scholars" are handled exactly the same way. As are school busses and mass-transit agents. This is why you see the "trains" of busses roaming through your city, and why entire sections of town may never see a school bus, despite having plenty of stops... Once all the busses are full, they return to school and stay there until school is done for the day.

Now, here is where it gets really good... In the evening, when work and school lets out, they all leave and proceed to the absolute closest "open" house. They don't "own" their houses. The "people" you see are actually just mindless agents (much like the utilities agents, as I said earlier) making the whole idea of "being able to follow a 'Sim' through their entire day" utterly POINTLESS!!"

The reason traffic problems cause so many other side-effects, is because EVERYTHING relies on those "people" who are stuck in herds trying to go to whatever closest "slot" they can fill. Casinos go bust because "tourists" are just "shopper agents" from out of town. You MUST put casinos RIGHT next to the entrance to your city if you want them to succeed. Placing street-car stops by the casinos can actually cause more harm than good! Why? Because the "shoppers" will board the streetcar stop (because it's the closest open slot) and be shuttled to a shopping district instead.

Sharing resources and services gets to be a joke, because all the vehicles ("agents") get bound up with the busses at the entrances to cities.

TL;DR: Fixing the way the game handles traffic and "sims" will fix 90% of the problems plaguing players!


Ultimately, the problem is that the developers have decided to handle sims like they handle any "mindless" power-agent. This results in mindless sims, and mindless services. Mindless services reduce the actual quality of the simulation. Since no sim actually owns a house, they don't REALLY care what amenities are built around it. THIS is why it is nearly impossible to have distinct districts of each wealth level... A low-wealth agent may very well end up in a high-wealth house at the end of the day. Why? Because it was the closest open house. The next morning, that agent sets out to find "high-wealth" work. Then after work, may end up in a medium-wealth home with 2 kids! There's no rhyme or reason for the way they behave, OTHER than just taking the shortest (not quickest) path to the nearest open space.

Police services suffer from this as well. They converge on the first crime committed, and ignore the second crime until one car rushes off to deposit the criminal-agent in jail. THEN the other cars can respond to the second crime. There's no zones, and there's no actual "prevention."

Fire services also send every unit to the first available fire. It's utterly pointless to try and "decentralize," because every truck from the city will still converge on one fire, ignoring the other three until it's out. Once the first fire is out, they all rush to the next fire. The only thing you get for having multiple fire-trucks is that they put the fires out slightly quicker. Really, you can have the exact same fire coverage quality with only one of each type of fire-unit. "Fire Marshalls" are COMPLETELY random, and just seem to roam around picking whichever building is "most at risk," ignoring the fact that an entire neighborhood is high risk, and the next "most at risk" is on the other side of the city... Which gets them stuck in traffic.

Interestingly enough, ambulances seem to act independantly of one another, but they still refuse to take "right of way" and are constantly bogged in traffic. Medical vans just act like all the rest of the service vehicles.
发表于 2013-3-13 16:51 | 显示全部楼层
想請問是在官網論壇的哪個分類呢?
我想看看底下回應的相關討論
==
找到了

http://answers.ea.com/t5/Miscellaneous-Issues/Traffic-quot-AI-quot-This-is-why-services-and-traffic-are-broken/m-p/737060#U737060

[ 本帖最后由 sokayha 于 2013-3-13 17:00 编辑 ]
回复 支持 反对

使用道具 举报

发表于 2013-3-13 17:21 | 显示全部楼层
怪不得我建了2条路,长度有点差异,但是都走短的那条,不管有多堵。。

[ 本帖最后由 zhseven 于 2013-3-13 17:33 编辑 ]
回复 支持 反对

使用道具 举报

发表于 2013-3-13 17:23 | 显示全部楼层
这我倒没观察过。。。
真这样太水了
回复 支持 反对

使用道具 举报

发表于 2013-3-13 18:03 | 显示全部楼层
现在这些纸片人就像无意识生物一样,飘来飘去,连警车都如此,出了两件罪案,一次只派出一辆警车去处理一件,搞完之后再去另一个。真是奇葩

而且更不可思议的是,一个低收入sim去干完低收入工作后进了一个高收入住宅,成了富人,然后第二天去干高收入工作了

[ 本帖最后由 jjbsy 于 2013-3-13 18:13 编辑 ]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-3-13 19:49 | 显示全部楼层

回复 5# 的帖子

确实是这样。现在游戏里模拟人与公共设施的寻路系统是一样的算法,就是去填离他最近的那个空。我甚至发现一旦交通拥堵,连排污水都会乱套。10几辆校车排成一溜在一条街上瞎逛,实在无语。
回复 支持 反对

使用道具 举报

发表于 2013-3-13 19:51 | 显示全部楼层
原帖由 jjbsy 于 2013-3-13 18:03 发表
现在这些纸片人就像无意识生物一样,飘来飘去,连警车都如此,出了两件罪案,一次只派出一辆警车去处理一件,搞完之后再去另一个。真是奇葩

而且更不可思议的是,一个低收入sim去干完低收入工作后进了一个高收入住宅,成了富人,然 ...

我观察下,如果真这样,这就不是bug,是AI设定的问题了。。
回复 支持 反对

使用道具 举报

发表于 2013-3-13 20:02 | 显示全部楼层

回复 6# 的帖子

明明路面交通和地底是兩回事,
理應不同算法...
D污水擠塞是因為經過高排量建築就講得通,
路面交通搞到「塞渠」就講不通...
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-3-13 20:27 | 显示全部楼层
EA官方已经解释,模拟人确实没有自己的家,下班了哪个空房离他近就住哪。不管那里是富人区还是穷人区。
有几个老外开玩笑说明天下班了决定亲自去试试,找最近的屋子住下感受感受。
回复 支持 反对

使用道具 举报

发表于 2013-3-13 21:32 | 显示全部楼层
看起来有点愚蠢了
回复 支持 反对

使用道具 举报

发表于 2013-3-13 21:36 | 显示全部楼层
原帖由 alanguo 于 2013-3-13 20:27 发表
EA官方已经解释,模拟人确实没有自己的家,下班了哪个空房离他近就住哪。不管那里是富人区还是穷人区。
有几个老外开玩笑说明天下班了决定亲自去试试,找最近的屋子住下感受感受。 ...
像临时旅馆.............................
回复 支持 反对

使用道具 举报

发表于 2013-3-13 22:42 | 显示全部楼层
this is not what I expect! 真愚蠢的设计啊,竟然会有人这样设计一个游戏。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-3-14 09:33 | 显示全部楼层
单纯从理论上看,这种填空式的设计也不一定有什么问题。因为可以把工作和住宅都看做是一种容器,我们把它分成不同收入等级的容器,那么他们容纳市民的量是一定的。假设市民有如随机变量,入哪一种容器,就赋予哪一种属性,但是不同等级,不同收入的总量不会改变。
如果整个城市交通不存在拥堵,那么这种设计也不见得会有问题,单纯从统计数据上也看不出来。但是这种愚蠢的“找最近的位置填空的原则 ” 很容易导致交通问题,比如N量校车垃圾车排成一列之流。而一旦交通出现问题,市民就不会去上班,需求是满格,但是无人上班,大量职缺等奇葩现象出现,造成恶性循环。
回复 支持 反对

使用道具 举报

发表于 2013-3-14 09:42 | 显示全部楼层
http://answers.ea.com/t5/Miscell ... N-COUNT/td-p/745038

==
1. 人口數浮報,實際上引擎計算的agent數會遠少於畫面顯示的人口數(實際15000/顯示100000),造成玩家誤判城市實際勞動人口數,覺得只有10%人口數在工作
2. 在工作時間把工作場所刪除的話,裡面的工作人口單位(agent)會跟著被刪掉...........
3. 路上顯示的紙片人不完全對應agent,單一房子只有兩個孩子卻能固定看到3個孩子在跑,名字和外貌每單次模擬計算都由引擎亂數產生不固定
==


其實這類「簡化計算」無可厚非,特大也一樣人口浮報…只是麻煩的是SC2013它廣告主打模擬卻又在遊戲功能上很容易直接發現它有不少偷吃步(沒有跟隨,不顯示名字,玩家就不會發現那麼多偷吃步........)

[ 本帖最后由 sokayha 于 2013-3-14 09:45 编辑 ]
回复 支持 反对

使用道具 举报

发表于 2013-3-14 09:45 | 显示全部楼层
这个难道是 Simcity2013: The walking dead!

原来玩SC2013的人是在养一城市丧尸额。。。。。。
回复 支持 反对

使用道具 举报

发表于 2013-3-14 14:05 | 显示全部楼层
最初看到agent只能跟踪到进入建筑物为止就已经猜测agent和建筑物不是固定对应的了。"载体"agent实际并非这个这个虚拟世界的主宰,从引擎的原理看其实各种建筑实体(Units)才是游戏的主角,其次是各种资源(Resorce),包括水、电、各种原料和电器,以及模拟市民——没错,市民也是资源。游戏引擎运行的实质就是Units通过内建的各种规则不断交换和转化各种资源。在unit之间引入作为资源交换中介的agent就仅仅是为了呈现游戏具体所需的模拟效果。所以很遗憾Glassbox这个引擎本身就决定了不可能模拟出完全符合现实的市民行为的,只能不断改善agent的行为使模拟效果更为真实,例如工厂的unit至少应该向相同收入阶层的住宅unit输送市民资源,而不是像现在这样无脑发放。把这一点修正了我就满足了,完全模拟出每个有固定居所和工作地点的真实市民其实并无必要,所需的运算估计也不是一般电脑能承受的。我现在最不满意的是unit无差别对待各种资源,运载市民的agent的行为和其他资源没有区别,这就造成了细看之下极其弱智的车辆寻路,这个寻路规则用于运送水电等资源的载体其实没有问题,但是车辆和行人这种载体确实需要更复杂的寻路规则。从游戏发售时的糟糕完成度来看,这个应该是会逐步得到修正的。
回复 支持 反对

使用道具 举报

发表于 2013-3-14 15:12 | 显示全部楼层
原帖由 rauyee 于 2013-3-14 14:05 发表
完全模拟出每个有固定居所和工作地点的真实市民其实并无必要,所需的运算估计也不是一般电脑能承受的。

其實是有的,Cities in motion就是這樣子,不過也造成了一定的運算壓力,出版商的解決方法是把建築容量和載具容量都按比例減少了(例如一座摩天大樓只有百多人工作,雙層大巴只能載二十多人),一個城市的人口基本上不能超過五萬
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-3-14 15:41 | 显示全部楼层
当城市发展到一定程度的时候,缺水缺电的建筑的再次补充也需要超级漫长的时间。
市民是否有固定工作和住所不是最要命的问题,但是消防车头顶着屁股排一列,市民不坐公车,就是要步行,失业,步行,失业才是真愚蠢,又要命。
这个游戏除非专门针对这种算法进行摆放能够有限度的缓解这些症状,一般情况下从10万人口就是噩梦的开始。
回复 支持 反对

使用道具 举报

发表于 2013-3-17 01:32 | 显示全部楼层
只能说,屎一般的寻路系统!跟XL比起来,真想掰盘啊!

MAXIS根本没有测试过游戏,这根本是两三个月制作周期的半成品,然后60刀卖个beta,让玩家帮它找BUG!!
回复 支持 反对

使用道具 举报

发表于 2013-3-18 10:18 | 显示全部楼层
原帖由 alanguo 于 2013-3-13 20:27 发表
EA官方已经解释,模拟人确实没有自己的家,下班了哪个空房离他近就住哪。不管那里是富人区还是穷人区。
有几个老外开玩笑说明天下班了决定亲自去试试,找最近的屋子住下感受感受。 ...

共产主义已经在模拟城市世界实现了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 入住

本版积分规则

小黑屋|手机版|模拟城市中文网

GMT+8, 2024-4-25 17:01 , Processed in 0.025497 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表