Tuesday 23 April 2013

version two point oh

So yesterday they launched the version 2.0 patch for SimCity.

I haven't tried it out yet - they took the servers down for quite a while to do it - but also I try not to play during the week too much.  Plus I figure that a lot of people will have played in order to see if the new patch has really helped to fix things or not, so I'm guessing it would have been quite busy.

I don't think it will fix everything that needs fixing.  Indeed, I don't think some of the things that should be fixed ever will be.  Or at least, in order to be fixed, they would need some serious redesigning of the game engine/mechanics.

Having played a fair bit and sat down and studied what's going on in places I think traffic in particular is quite badly broken.

There are two big problems - the rules they've set for how vehicles drive on the roads and the "behaviour" of the Sims that driving is a function of.  The first would require a total change of the engine.  The second would also require some major changes but I think they may be able to "tune" the game around it or the bits that need changing might be changeable.

In the first the problem is that vehicles are very much "on rails".  When you drive a car on a normal road there is nothing that stops you from changing lanes (going into the side of the road oncoming traffic uses).  Well, I mean apart from the oncoming traffic itself and solid white lines - what I mean is, if someone stops in the road you can move into the oncoming lane in order to overtake them.  This doesn't happen in SimCity - all vehicles are on rails.

But in SimCity they do not do this - if a fire engine stops to put out a fire then all vehicles stop behind it, causing a huge traffic blockage.  And conversely, if an emergency vehicle gets stuck behind something it won't go in the oncoming lane to overtake.  Now also there are (unrealistically, given the permitted density of roads and types of junctions allowed) so many vehicles on the roads in SimCity there wouldn't be that much opportunity to overtake, but that's not the point - it's unrealistic behaviour that leads to clogged streets.

There's other stuff as well, but that's the best example.  There is a solution - you can upgrade the roads to multi-lane jobs and vehicles will overtake, but building density is linked to road density, so you then get buildings upgrading (there's no way to stop this) and so there are more cars, leading to clogged streets again!

The other issue is behaviour - no Sim has a fixed abode or fixed job, they all just go to the nearest free house/free factory/empty school/etc.  This is simple to code and I'm sure minimises memory requirements, but it means that all Sims head off to the same destinations all the time - they all try to go to the nearest job, leading to huge jams.

And only once they reach the warehouse and the jobs fill up do they all suddenly then decide to go to the next job.  This basically applies to everything they do, which is why you get huge lines of buses all following each other about and why vehicles perform a staggering number of U-turns (which is also another reflection of the previous issue - they can only perform a U-turn at a proper junction, rather than randomly, which also clogs up the roads!).

Now as I say, this second one is the sort of issue that I think they may be able to tweak the algorithms to give a bit more realistic behaviour, or even perhaps replace the algorithm for that sort of behaviour without needing to fundamentally rebuild everything.  So I'm hoping this is what v2.0 helps to fix.

If it doesn't then I've been playing about with some workarounds.  One in particular that seems to help is to construct your entire city as one big loop.  It can be quite fun working this out, but boy does it lead to some unrealistic cities.

Another thing that helps traffic is to think of things as mini cities, so each small bit of residential has easy/close access to commercial and industrial, so they don't do too much long-distance driving (they don't care what the commercial/industrial is, remember, so they don't need go further than their nearest job).  Again, horribly unrealistic cities, but at least your entire city doesn't grind to a halt!

No comments: