Imagine you’re a software engineer. In the year 5781. The hardware department in your company has just completed the construction of Deepest Blu — the most powerful supercomputer ever built. It is so powerful that, perhaps, it may even be sufficient to simulate an entire universe (albeit a simpler one than the one you inhabit) on a single machine.
You pitch the idea of a simulation to your boss and, to your surprise, she says “go for it!” and gives you a break from your other tasks. You disappear into your cubicle for 6 days straight and.. voila! The MVP is ready.
You fall asleep at your desk, satisfied.
On Monday morning, you gather a company meeting and present your creation in powerpoint (because even in 5781, everyone uses powerpoint). It goes something like this —
Slide 1 — observation boundaries:
Any simulation has to have clear boundaries that the players can’t see beyond. It is difficult to set those boundaries in a way that won’t tip the players off to the fact that they’re in a simulation, but you think you’ve figured it out —
- Starting point. If they try to look too far into the past, they’ll reach a singularity where time ceases to exist.
- Outer edge. If they try to look too far out in any direction, they’ll reach the limitation of the speed with which signals travel across space.
- Zoom limit. If they try to look too close into what things are made of, their own observation will begin to alter the things they’re looking at.
Slide 2 — memory constraints:
To allow for lazy-loading (=instantiating objects only when they are about to be observed), the simulation introduces a very low speed limit for any players or information attempting to move around it. This means most of the objects are unobservable at most times, and therefore do not need to occupy memory space during those times.
Slide 3 —complexity:
To allow the simulated universe to develop complex matter, you had to first set it in motion, and then intervene to accelerate its expansion with an artificial push; this was the only way you could reach the right density of matter and the right forces and constants in which complex objects can appear. It looks like a weird hack but you’re really proud of this one.
Once the simulation played out to a point where some big rocks formed and appeared inhabitable, you inserted self-replicated code snippets into a few of them. Besides replicating itself, your code snippets can also specify carbon-based chemical reactions — exactly what it takes for single-celled organisms to evolve over time.
Since the organisms did not seem to develop fast enough, you employed the same tactic as in “3” and intervened to accelerate things here and there; but most of the time they’re evolving quite nicely on their own.
Slide 4 — immersion:
Around timestamp=13,785,000,000 one of the organisms developed an organ that serves as its own microcontroller of sorts. It has internal memory and a processing unit, along with some limited I/O capabilities. This was somewhat unexpected, but then you had an idea — what if we could load things from the real world directly into these simulated carbon-based lifeforms?
So you created an interface that would allow any of your peers to download their persona into one of these microcontrollers and play the simulation from within.
Slide 5 — soft launch:
Once the system was operational you opened it up to beta testers through the intra-company portal. People started logging in and playing for longer and longer periods of time. Before you knew it — everyone who logged in — stayed logged in to the same interface for as long as the carbon-based body that powers its microcontroller could stay alive.
It was still kind of a beta version but you figured “why not”, and opened it up to the general public. And then..
Slide 6 — runtime:
Billions of players; complex cooperative projects; war; peace; love; hate; sin; virtue; life; death.
And you saw that it was good.