I plaid a lot to SimCity when I was a kid but, having been raised in a European city, I always thought that my cities in the game could never look like a "real" city.
About 15 years after, I found myself in a plane about to land in LA for the first time, with my face pressed to the window and thinking to myself: "LA is like the f* SimCity!!"
This is so true. Where I grew up the roads are rarely exactly parallel, and the coastline is hard to replicate. There's highways and flyovers that weren't like the ones in the games.
When I came to the US, particularly the towns that aren't by the coast, I thought SimCity! Apart from things being on a grid, there's also quite a lot of repetitive architecture. Schools look similar, utilities look similar, neighbourhoods are filled with the same houses. And all the big box stores are exact copies.
That is one of the first things my now-wife said to me when we picked her up from the airport the first time she came to the US. "It's just like SimCity!"
Which part of Europe? A lot of cities in Italy (and most of Europe) were Roman encampments (https://en.wikipedia.org/wiki/Castra) and they have a very square, ordinary layout I have always found boring.
I have always been fascinated by other cities when a road starts to curve or a square pops out of nowhere. Walking through London is much more interesting than it was in Milan.
I've never been there, but I heard there's a lot of planning in medieval italian city layout.
In particular Siena, which has detailed squares for trade, politics, full of simbolic features (e.g. the City Hall tower was built much higher than the church's to assure the government is perceived as superior).
Piacenza has the roman squared city center intact in layout[1], lots of other small towns as well, but the fact is the old town parts are likely too small to actually matter when you look at the whole city layout - hard to notice from just looking at the urban map!
then you have places like Turin that were built with a ruler [2]
AFAIK, Romans built their cities with streets following the N-S and E-W axes (Cardus and Decumanus) but, after, no medieval city continued with this style. Specially, in walled cities, the streets were appearing in a chaotic way.
My home city is Barcelona where, actually, a big part is designed as an orthogonal grid.... but it's still not the same. I think I would have enjoyed the game more if I knew how my cities were supposed to look like.
Although Milan has a circular layout that gravitates around the Cathedral, and the streets - especially in the center of the city - sometimes start to curve randomly or a square pops out of nowhere, just like you described :)
Maybe you where referring to Turin? (that has this exact square layout that makes me mad and lost sometimes - because nearby streets all seem the same)
Having grown up in Vermont and lived only in big coastal cities thereafter, I always felt the cities didn't look right. Then I moved to China and realized the same!
Our council tax in the UK, which would be the equivalent to SimCity town tax, is somewhere about 3-5%. It is actually a regressive tax, fixed based on almost made-up property prices, but you seem to be confusing national taxes with local taxes.
Although some of the national tax goes back to the councils and some of the national taxes pay for the infrastructure, so it's a bit more complicated than that.
I live in one of the high-tax places, earn well above average and do no tax planning. Yet, what the taxman actually charges me is only half the nominal maximum.
We could argue that modern town planning is in fact infected with a Sim City spirit (or Sim City captured that existing spirit): artificial separation between "commercial" and "residential areas" with miles and miles of separation between them, and car-centric in the extreme.
The Sim City world is one where you have to ask permission for everything. Development is prohibited by law unless the benevolent town planner opens up an area with little colored rectangles. But you can only build one type of building and can't mix & match because the top-down view of the planner blurs out the complexity at the ground level.
Sim City does have a redeeming feature, favoring urban density. Traditional planning is more aligned with creating loose, low-density, detached abodes, with great separation and height restriction and far away from any semblance of economic activity: shops, factories and commercial space.
Having to support an infrastructure (necessarily a car infrastructure) in these forms is tremendously inefficient and can be considered as a great cost on societies that found out about planning before most cities got established (early 20th century).
The 'modern town planning' you talk about is so called Euclidan zoning (named so from the town of Euclid in US where it was supposedly first introduced - as a way to segregate rich from poor in an indirect way). Not all areas/countries use such laws. Some time ago this link hit the front page of HN: http://urbankchoze.blogspot.com/2014/04/japanese-zoning.html - it is really an interesting read (other articels on the site as well)
If you're interested in the history of this sort of thing Lewis Mumford's 'The City In History' is a fantastic read. Brilliantly researched and presented in a very non-dry way.
It's long been hip to blame SimCity for creating bad urban design. However: SimCity reflects ideas as much as it plants ideas: zoning existed before SimCity. SimCity promoted intermingled Commercial and Residential zones (traffic was lighter if they were nearer) with pollutant Industrial zones far away from the rest, and SimCity highly promoted mass transit over cars.
Most SimCity games indirectly went against mass transit, or at least the idea of building it up in phases, based on its traffic model.
A Sim's route was defined as a path from point A to point B, and a maximum time. If the maximum time was reached, the route was a failure and would reflect as increased congestion. If a Sim encountered mass transit along its route, it would attempt to take it using the same pathing algorithm as car travel. However, if the route failed while using mass transit, it would never try it again, even as mass transit service expanded and new bus and subway lines/stations were added.
The most recent SimCity was supposed to be more realistic in its route planning and simulation by giving each Sim a home, a workplace, etc., and repeating routes on a daily basis instead of a random sampling of routes, but this didn't make it into the final game.
From what I understand, haven't read up on it in a while though, they even went with a random sampling of housing for each Sim as well. The house they stayed in last night may not be the house the stay at tonight.
Wow, I wish they had something like this for the more modern SimCities. I was playing SimCity 3 or 4 and built a road going to a beach and to this day haven't figured out why no-one drove on it.
It's hard to play a game that approximates reality enough that instruction manuals aren't provided, but differs just slightly enough to foil expectations.
It would be great if future versions of SimCity and Cities:Skylines would embed more direct urban planning lessons in their games. This way players would learn what makes a city work properly.
A problem is that most peoples' only knowledge of urban planning comes from looking around at their own town, and unfortunately most towns in North America are incredibly poorly designed. A SimCity player that bases their city on a typical North American one will often wind up with a dysfunctional and gridlocked town, just like real life.
Cities: Skylines is an absolutely amazing game, but yeah, I wish there was more lessons. I keep discovering new things that I can do with it that, honestly, should have been taught to me early on.
> It's hard to play a game that approximates reality enough that instruction manuals aren't provided, but differs just slightly enough to foil expectations.
Agreed. For instance, it takes a while to find out that the "right" way to build a successful city in SimCity (and not necessarily in reality) is to never build a single tile of roadway, and instead construct an exclusively rail-based grid.
On the other hand, some of its city planning lessons work very well: for instance, interleave residential and commercial every other 9x9 block (3x3 set of 3x3 zones, with a non-RCI zone in the middle), rather than separating residential and commercial, to avoid creating huge commutes. (Meanwhile, keep industrial far away from everything so it doesn't bother anyone.)
Ideas of "right" in open-ended games where the goal is merely to keep going are always weird to me. I know exactly what you meant by putting it in quotes.
Actually, I meant "right" in a weirder sense: The only goal of Sim City and many other games is to endure and persist. Any strategy that survives is a strategy that 'wins' Sim City. In what sense are some strategies more optimal than others? Usually they maximize some other measure of fitness, like land usage or average commute time.
That's cool. I think it's perfectly reasonable to call efficient strategies 'right'. But calling something right means you know something is wrong, and the 'wrong' that comes with this 'right' includes strategies that survive. Clearly, there's room for more than one right.
reading the article, actually made me think of SimCity 4 & the game seems to be still following whatever the article / guide says...
So I'm guessing the simulation just got better from time to time (except for that SimCity 2013) to reflect the real world, in which some gamers complain SimCity 4 is a bit too hard
SimCity and Cities: Skylines are still half stuck in 1950s era car oriented urban planning so they're not totally representative of the real world and modern urban planning. In these games public transportation options are limited, walkable public spaces such as pedestrian only streets and squares are not possible, and bike lanes do not exist. Additionally zoning is either residential, commercial or industrial, so there's no concept of mixed-use zoning (ie. commercial on the bottom of a building, residential on top) which you see everywhere.
I'd love to see a smaller scale game that really focuses on these details. SimCity 4 and other games went in the other direction, building systems around how a metropolitan region of multiple cities would interact.
I don't mean to sound rude, but have you actually played Cities: Skylines?
Cities: Skylines, more than any other city simulator I've ever seen, drastically encourages public transit use. The game is made by developers that got their start designing european-style mass transit simulators - http://www.citiesinmotion2.com/ And with the exception of mixed-use zoning, everything your asking for they already have done / just finished, and heavily encourage, in the game.
>In these games public transportation options are limited
There's lots of public transit in the game (Busses, Trains, Subway). Each with custom tracks, bridges, tunnels, etc. And you can completely customize the exact lines and routes of busses and subways (literally down to how often each stop is hit, and in what order). There's also "unmanaged" / "privatized" mass transit (Ferries / Harbours and Airports).
The simulation is exceptionally forgiving about public transit too. People will always choose to take transit, if it's even remotely competitive with driving. People will wait for buses even if they are overwhelmingly overcrowded, etc.
> walkable public spaces such as pedestrian only streets and squares are not possible
This has existed since day one. Click "Parks/Greenery" -> "Paths". You can place paved pedestrian-only streets, or gravel pedestrian-only paths. You can elevate them over/under roads or build pedestrian-only bridges, for instance.
You could recreate nearly the entire Minneapolis walking/bicycle trail network with these tools. And the game rewards you for doing this. (Pedestrian-only walkways generate less noise than full roads do)
I put in about 5-8 hours into Cities: Skylines before I got distracted by something else and put it aside. Enough time to put in a pretty great small town bus system. Cities: Skylines has great transportation options, much better than Sim City, but it still has a few things it needs to add if one wanted to build modern cities using modern urbanist thinking (eg. Copenhagen).
I noticed when I was playing that you could build pedestrian paths, but it seemed like they were in the context of a park path, not a pedestrian only commercial district. From some Googling it seems that this is the case, that you can't really build for example a downtown commercial core that would be pedestrian only.
The bus system in Skylines is great, and I didn't play long enough to experiment with subways, but I noticed that there didn't seem to be streetcars. I've been to a lot of cities that mix pedestrian streets and street cars and it works very well. That's something I'd really like to see in the game.
I'm glad to see they are adding bike lanes. They're an essential part of the transportation system.
Even though I'm complaining about it, I do want to underline that Cities: Skylines is a great game and a big step forward for SimCity type games. I'm really glad Paradox is continuing to improve the game.
Cities: Skylines has pedestrian paths which affect whether they drive or walk to their destination, and the public transport options (Bus, Metro-train, Rail-train) will get used if they're more efficient than driving (although it compares against optimistic road travel times, without regard for traffic)
SimTower sort of did this, within the context of a single skyscraper. I'm not sure if it is on GOG or anywhere else legitimate these days - odds are it might not be a simple matter to run on modern Windows, unless you want to spin up an XP VM.
I spent way too many hours playing SimTower as a kid. It was pretty fun, especially if you took advantage of the infinite money cheat involving building a specific type of room in one certain place on the bottom of the level... Not bad for a game that was built around an elevator simulator http://www.gamasutra.com/view/feature/130563/the_designers_n...
I've very much enjoyed playing SimTower, and I still have a legitimate exe of it sitting around. But the game is a Win16 game, and my latest experience running it in WINE was crap (it became very easy to completely lock up X). Possibly it might make more sense running in Windows 3.1 in dosbox.
Incidentally, this is a motivation for why I'm playing a bit with statically recompiling x86-16 code to run on x86-32.
Yes Cities is really good, but it can do better. It's more SimCity 4 & 2013 that was really stuck in the past. I'm hoping for a lot more improvements to transit in Skylines with the inevitable sequel.
Thanks to this book, I actually received college credit for playing SimCity. (Or actually for writing a paper about the simulator, which was a cinch because the way to 'beat' the game was to build an elitist suburb.)
I have fond memories of the Simcity 2000 manual as well... I ended up reading the whole thing obsessively while waiting for a new computer that had the minimum specs. (VESA BIOS extensions.)
"UniVBE (short for Universal VESA BIOS Extensions) is a software driver that allows DOS applications written to the VESA BIOS standard to run on almost any display device made in the last 15 years or so."
I wonder which 15 years this is referring to (i.e. ending what year)
- this city planer concludes that there are a lot of options and the mechanics are interesting but it oversimplifies things and gives the player god-like powers
-this was a "tournament" between various urban think tanks and journalists and points out how all of them took the short term benefits with casinos, oil and sewage over sustainable livable cities that they advocate.
I think one point that doesn't really make sense to me is the strict separation of R/C/I zones and the land plot pricing curve for them. Surely nowadays nobody wants to live exactly in the city center? And it makes no sense to put industrial zones in the city center either. Most rich people obviously live in suburbs and downtown areas are not very safe in any sense.
Also the strict separation of industry being external-orientated and commerce being internal-oriented seems way too simplistic and childish. Surely many industrial products also sell to the city itself, and many commerces are nationwide even international ones? Unless you restrict the definition of "commerce" to "things like local restaurants".
I'd say the notions of the game are maybe a kind of too old, and seriously any of these "reality simulation" games for extremely complex systems are bound to miss the reality by some distance. The same goes for Football Manager etc. Playing them for fun is OK, but taking them too seriously is bound to disappoint and frustrate you to no end.
I love how dense some older games were. I still like the original Victoria by Paradox Studios, though that might be because I never quite have the video card to play Victoria II.
NoScript and similar are self-inflicted pain. Yes, content should work without JavaScript where possible, but at the same time, comments about it really don't need to show up on unrelated articles. In this case, the site in question is constructed entirely client-side using JavaScript. I'm not a huge fan of that approach, but complaining about it here (as opposed to with the site in question) is not helpful. The same comment could appear attached to any number of articles posted here, and it'd be equally content-free there.
I am not referring to archive.org as insecure, I am referring to JS as insecure. And it is. Look at the percentage of exploits for FF or Chrome that require JS and/or are in their JS engines.
Trying to write a language that is compiled / JITted quickly, is executed quickly, is powerful, and is secure, is doomed to failure. Look at Java. Look at Flash, look at JS.
I dunno man. Unless you can give me a good technical reason [0] why the presence of a JIT compiler is bound to decrease the security of a project, I'm going to present the Erlang VM [1] as an example of a secure, powerful VM that targets a powerful, compiled language with quick execution.
[0] "JITs are not exactly easy." is not a good technical reason. There are many hard problems that have secure solutions.
First off, kindly reread what I actually said, as opposed to what you skimmed :)
Secondly, now that you have actually done that, you'll note I did not said JITters are inherently insecure. I said that "Trying to write a language that is compiled / JITted quickly, is executed quickly, is powerful, and is secure, is doomed to failure". And the reason is simple. By the time you take a powerful language and add the optimizations necessary to make it be executed quickly, your execution engine becomes complex. (For instance, the v8 engine is, what, 1.4 million lines of code? And the SpiderMonkey engine is over half a million?) And because you need the engine to compile / JIT quickly, you end up writing code that takes advantage of "bare-metal" features. And as such, you have a nasty combination of an absurd amount of code, most of which is "unsafe" (to use the Rust parlance). And from there, simple probability dictates that you will have bugs, and you will have exploitable bugs.
Now, is this inherent to JS engines? No. You could, in theory, have a JS engine written in a language that checks the code for you. As you said, Erlang, or whatever. However, that is a moot point. Because there is not a single functional browser that uses a JITter that doesn't have these problems.
And as such, here's a good reason, albeit not a technical one: precedent. I am not so... hubristic, shall I say, to assume that even though every current major browser has a large chunk, if not the majority, of exploitable bugs be in the JS engine, that the next one will be any different.
I can hope, but I will not rely on it. Especially not as I am talking about now, not some potentially-mythical time in the future.
And no, I cannot give you a technical reason. Because I suspect that the moment anyone figures out said technical reason, they will be able to design a language and/or engine that doesn't have said reason.
I read all five sentences and the single sentence fragment in your statement several times before replying. :)
If your thesis is "Complex and/or difficult software is hard to get right.", I agree with it. I don't think any experienced programmer would disagree with it.
If your thesis is -as it appears to be- "Complex and/or difficult software is impossible to get right.", I cannot agree with it. It is often difficult and time consuming to create correct complex software, but far from impossible.
Complex software is possible to get right in the same sense that it is possible for all the O2 molecules in this room to move to the other side of this room at the same time.
It is technically possible, but improbable enough that, in the absence of direct evidence to the contrary (in this case, a functional browser that doesn't have bunches and bunches of exploitable bugs in its JS engine), it may as well not be.
Like I said, correct complex software is almost always going to be expensive as fuck. Unless you're doing interesting work, you're unlikely to run into examples of such software. Because noone _directly_ makes millions of dollars per month from V8, there's no business reason to expend the effort required to make V8 bulletproof.
Is the software for an ATM switch that contains more than a million lines of code, runs uninterrupted for twenty years straight, and scales from 10gbit to 160gbit sufficiently complex for you?
Considering that is not what I was asking for (I quote, "a functional browser that doesn't have bunches and bunches of exploitable bugs in its JS engine"), it, although impressive in its own right, is irrelevant.
(Not to mention that said software isn't available for public scrutiny, and as such I have to take the assertion that it is bulletproof with a grain of salt. I mean, even NASA has had braindead-stupid moments (failing to convert units properly? A casting error? Running out of space on the filesystem?)))
You made the assertion that "Complex software is possible to get right in the same sense that it is possible for all the O2 molecules in this room to move to the other side of this room at the same time.". [0]
Now you appear to refuse to consider any examples that demonstrate the in-correctness of your claim. Why?
Would you care to amend your claim to restrict it only to JavaScript engines shipping in free-to-use web browsers?
What was meant was "for each <thing X that is done by complex software>, <a piece of software S> doing X correctly is improbable enough that the existence of any piece of software doing X correctly may be considered to be impossible unless there is a piece of software that hasn't been shown to do X incorrectly".
What was taken was "for each <thing X that is done by complex software>, <a piece of software S> doing X correctly is improbable enough that the existence of any piece of software doing X correctly may be considered to be impossible unless there is a piece of software that hasn't been shown to do <any thing Y that is done by complex software> incorrectly".
You're backtracking on your original assertion without actually owning up to your gross overstatement. What's more, you're doing a poor job of attempting to Euler me in the process. :)
Here's the thing:
Problems in software are productively classed by their complexity and difficulty. That is to say that if you have two tasks, each of equivalent complexity and difficulty, the software to solve one task is going to be just as expensive to write as the software to solve the other one. [0]
I argue that designing and writing the software system required to run a piece of high-traffic, high-performance, near-zero-downtime networking gear that actually meets its goals [1] is in the same class of difficulty as writing a performant JS engine that has no "exploitable bugs". [3]
[0] For the purposes of this discussion, the cost to write any software used as part of the solution to either task must be included in the analysis of the overall cost.
[1] If you don't consider the existence of at least one production instance of this system being in continuous use for a decade or more proof of its correct design and implementation, I really don't know what else would convince you. You're highly unlikely to be able to evaluate the correctness of the system via manual inspection. [2]
[2] I mean, if you were one of the handful of mutants in existence who could do this, you'd likely not be wasting time arguing on HN.
[3] Actually, for giggles, can you point to a handful of somewhat recent High or Critical severity CVEs for V8 when used in Chrome or Chromium? Remember that you've been laser-focused on the Javascript engine, so failures of things like the browser's sandbox, browser's chrome, or OS process isolation don't count.
Ah, so not misunderstanding but difference of opinion. You consider software complexity comparable at a broader level than I do. A rather fundamental difference, and we have both made our points on the matter without swaying the others opinion.
> You consider software complexity comparable at a broader level than I do.
If you're currently starting your career in software, you're sure to -one day- consider the topic in the same way that I do. It's the only rational way to think about it.
Regardless of how you think about the comparability of software complexity between software projects, your statement about the near-impossibility of creating correct complex software was a gross overstatement; one that you're still not owning up to. :)
That bug list is not a list of CVEs. What's more, it's a list of bugs for the entire Chromium project. I assume that you couldn't find any CVEs that only affected V8 the JS engine, as used in Chrome or Chromium. Their absence shoots a really big hole in the foundation of your primary claim, which was: "[There exists no] functional browser that doesn't have bunches and bunches of exploitable bugs in its JS engine.".
About 15 years after, I found myself in a plane about to land in LA for the first time, with my face pressed to the window and thinking to myself: "LA is like the f* SimCity!!"