Ever since I first read about the original SimCity source code being open sourced as Micropolis (play here), I have wanted to build a course around using that code to simulate a Roman city. Students would keep open notebooks and devlogs, and together, we’d build our simulation.

To start we would spend a few weeks looking at the literature, the archaeology, and the scholarship surrounding ideas of the ancient Roman city, and from these, develop an idea of what kinds of things one would want to have in a simulation – and what kinds of questions a simulation might answer, or lessons it might teach. This would take us about four or five weeks.

SimCity has had enormous influence in games and beyond, and in many ways our everyday thinking about how cities work can be traced back to the way SimCity modeled urban systems. I would have the students look into the history of SimCity and Will Wright’s influences, and discuss what that might for how we understand ancient cities, and how the study of the ancient city is entangled with these particular models of modern, Western cities that SimCity represents.

The second half of the course is where things’d get really interesting. We’d take those paper designs and that understanding of SimCity-as-an-artefact and we’d build. We’d take the source code, and try to modify it to model an ancient Roman city. Is this possible? What assumptions about the ways cities work are hardbaked into the ‘SimCity’ framework ab initio? If we can just change the skin of the game, its sprites and graphics, and come up with something that functions how we imagine ancient cities did, what does this say about our ideas of the past? Maybe we’d find that some of our ideas about the past are not as true as we perhaps thought. This might be a case where we could expect failure but that would be ok, because then we could spend a few weeks on the why and how of that failure and what that tells us about the consequences of the influence of SimCity.

But alas, when I look at the Micropolis source code, I am stymied. I have no idea how to even begin. I shelved the idea.

But recently, I came across a port of the game, still in development, by Graeme McCutcheon. His port (works best in Chrome) translates the game to js/html5. And when I look at the code, it seems fairly intelligible!

So now it’s just a matter of figuring out how to build the game from his source code. After much farting around, I figured out more or less what one has to do.

1. Fork his repo.

2. Clone it to your machine.

3. Get nodejs

4. Open the micropolisjs folder in your terminal, and install the dependencies listed in the package.json file with npm install

5. You can start it up right away with npm run-script startand then going to localhost:8080 in your browser.

The various scripts and models that make up the game’s simulation are in the src folder; edit these, then use npm run-script build. And of course, all the sprites and graphics could be altered in any graphics program.

It would be a steep learning curve, but since we’d do this as a class, I think every student could find a role through which to contribute. Anyway, I’m off now to design a Roman tileset.