The Soul of The Sims

By Alec Meer on February 20th, 2008 at 10:19 pm.

Or 0111001010101, as I like to think of it

Here’s a rare insight into the ways of a top-tier game designer. Don Hopkins, whose fascinating if slightly bewildering site we’ve linked to before, back when he was drawing back the curtain on the free version of SimCity for the One Laptop Per Child scheme, recently shared a remarkable game-history curio.

It’s Will Wright’s original code for The Sims.

Some of it, anyway. It may look like crazy ultra-maths if you’re not fairly versed in programming, but flicking through I nevertheless get a gentle sense of the checks and balances behind One Of The Most Important Games Ever. Seems this early version of the game – then known as Dollhouse – was a little more verbose about your Sims’ situations: “You smell very bad, mandatory bath” is the sort of statement we can all learn something from.

Well, yeah, it’s some lines of code. But it’s also a precious hint as to how Wright, a man who’s had a firm hand on PC gaming’s till for decades now, views his own games – where we see a puddle of wee, he sees

if (Motive[mBladder] < -97 {
if (Motive[mAltertness] < 0)
AlertCancel(“\pYou have wet your bed”;

Ooh, it’s like future-poetry.

See the code, which is posted with Wright’s blessing, here. Found via Waxy Links.


« | »

, , .


  1. Freelancepolice says:

    You’ve not lived till you’ve worked on a sims game

  2. Seniath says:

    Oh steve is going to love this!

  3. Sum0 says:

    I love the little touch of “Motive[mBladder] = 90″. You may have soiled the carpet, but at least you don’t have a full bladder any more!

  4. Janek says:

    I like to think that in real life, Will Wright just sees scrolling Sims code.

    Sort of like the Matrix, but with less guns and more bedwetting.

  5. Nick says:

    “DUX Software contracted me (Don Hopkins) to port SimCity to Unix…The user interface was written in PostScript”.

    A UI written in PostScript? Now THAT’S hardcore.

  6. Meat Circus says:

    PostScript is a turing-complete language after all. I’m just not sure why the decision was taken to write it in PostScript in the first place.

  7. Don Hopkins says:

    Why PostScript? The first time I ported SimCity to Unix, I used the NeWS window system, which was a PostScript based window system designed by James Gosling (who later went on to design Java), which ran on Sun workstations.

    Since SimCity’s user interface was written in PostScript, the map was scalable, and you could zoom in and out of the city to play the game at any scale, or close the window into a live animated icon.

    NeWS was like AJAX, excepted that it used PostScript for programming instead of JavaScript, and PostScript for drawing instead of DHTML/CSS, and PostScript for data representation instead of XML. In other words, it had all the advantages of AJAX, but was much more consistent because it wasn’t a shotgun marriage of a bunch of different incompatible technologies that were not designed to work together, like AJAX’s confusing jumble of JavaScript/DHTML/CSS/XML. The question I ask is: why are people writing AJAX user interfaces in several different languages at once, instead of just one, like PostScript?

    I did all that in 1991-1992. So don’t let anyone tell you that AJAX is a new idea, nor that AJAX was actually designed as opposed to accidentally re-discovered, nor that Microsoft invented AJAX, nor that the NeXT or the Mac was the first system that drew PostScript on the screen.

    But the problem with the NeXT/Mac approach to “Display PostScript” is that it gives up all the “AJAXian” advantages of using PostScript for local interactivity, saving network bandwidth by sending code over the network, and creating efficient application specific network protocols.


  8. smSophie says:

    Billions of humen in the world do know about article submission and best article submission services. It’s available to use this for a kind of perfect stuff like this topic.

Comment on this story

XHTML: Allowed code: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>