Sunday, August 26, 2012

It sucks to be IN the simulation..

(Here's another recent attempt at writing a blog post)

I remember the summers of one or two years in the early 90s. I had an Amiga on which I'd spend practically all of my time on. Lunch and dinner breaks would be kept to a minimum and sleep was also practically just an interruption.

Needless to say that I was mostly involved trying to create some sort of video games.
Because I was on my own, I'd take turns between the coding and doing the graphics in Deluxe Paint.
Somewhat uncommonly at the time, DPaint had an undo feature. I'd spend hours working on those pixels and continuously use the undo feature, to the point in which it became the natural way of working.

I'd take breaks form time to time. In one case, I remember going to the kitchen, taking a knife to peel an orange and for an instant thinking: "what if I cut my finger accidentally ? Well, I can always undo !".
My mind was clearly still in DPaint-land (^^;) ..for me that was a remarkable moment when I realized that one can live in alternate realities with his mind. Potentially some dangerous alternate realities, if some kind of suggestion would last long enough to do actual damage before realizing that there is no Undo button.

I eventually continued the path towards game development. Put aside the more artistic side of things, because it was more something that I did out of necessity, and pushed with programming for many years.

This is not about art or code however, this is about determinism.

This is what a cat inside
a box looks like!
Life seems to be all about decisions, but not all decisions carry the same weight. Decisions taken in the context of a digital computer, for example, can lead to non-destructive outcomes, by design.
So, for example, if a crash happens to a program I'm writing, I can always go back, change the code and try again. My "human time" only goes forward, but the digital abstraction level at which I'm working on, makes it possible for me to go back in "computer time" to fix issues and run the software again as if the bug was never there.

Back to the non-digital world.. we only get one chance to do anything. The smallest thing can never truly be undone. You can undo many things, but there's always a level at which those things have left a permanent mark.

But why the topic ?
This comes up for me as I'm not only a programmer anymore, but also someone responsible to generate interest (and income) around the games I build.
While developing, I can still go back and fix bugs in "computer time", but once the game is released, the ability to undo certain choices is severely limited.
It's not just about bug fixing, but perhaps more importantly on what games one decides to make and how he intends to turn them into a profit. This, is terribly frustrating because determinism in the real world is very hard to obtain.

Of course, digital computers are made of non-digital components. To reproduce a signal consistently, you just need enough bandwidth to cope with the noise (I'm just dropping in some cheap signal processing buzzwords to make it sound more scientific).
If one has a big enough pool of users to test new features, then it's practically the same as running a computer simulation.
Companies like Google or Zynga, regularly make improvements to their systems by testing small changes on large pools of users...  with large numbers, one can think statistically and determinism is true again.

The moral of all this is that for someone that spends most of his time in a controllable environment, the real world is just a mess 8)