Tuesday, August 13, 2013
Summary
Excellent day! The biggest achievement was successfully implementing the fancy scheme mentioned in yesterday's dev log for automatically swapping out different versions of an object based on abstraction level. Though it seems a bit complex at first (and the implementation wasn't exactly the most friendly thing I've encountered this week), I'm actually feeling better and better about this idea. So much of the boilerplate stuff is removed. Game logic is once again 100% natural (never having to worry about differential rollback), yet can remain usable for hypothetical simulation. I have a really good feeling about this scheme
I think it's also pretty fast. No tracking of changes means all logic runs at full speed, both inside and outside the simulation.
>> Yep, you know the drill. Skip it or weep. <<
In the wee hours of this morning, I was feeling oddly-theoretical and also a bit grandiose, so I decided to read up a bit more on quantum mechanics and try to get just a slightly better grasp on what's actually going on in our world, and whether it is relevant to LT
I can't shake the feeling that it's important in some way.
Well, the more I read, the more I became convinced of the surprising and infectious idea that "abstract simulation is just like quantum mechanical evolution." And yet again, maybe I have totally failed to understand the reality. But from my understanding, a quantum mechanical system evolves in time via a piece of logic (namely, a differential equation) that operates on a probabilistic state space. Not an actual state! So the universe is simulating not one thing, but an infinite space of them, each with some probability. Mind-blowing. Also exactly congruent to what the abstract simulation engine in LT does - but I never made that connection before.
Loosely-speaking, the engine keeps track only of vague pieces of information that can be used to construct a probability distribution over possible configurations of the world. In other words, in the abstract simulation, we never know exactly what the state of the world is, only some characteristics that describe that state. When it comes time for an object within this space to undergo "observation," the abstract probability distribution must be collapsed into a single, discrete state, just as the quantum wave function appears to collapse to a single state upon observation (ok, now I'm
certain I got something wrong there
).
Maybe it means something, maybe not. But it helps me to understand simulation not in terms of "folding," as I have furtively called it before, but rather in terms of descriptions of state distributions. This, in turn, is going to help me understand the conversion from abstract to concrete! Under this interpretation, it's just sampling from a distribution. So the real trick, then, is to take an abstract description, then use it to compute the probability of a given state. If you can do that, you can at least use rejection sampling to build a concrete world that obeys the "wave function" of the abstract simulation results.
Look, I know I've gone off the deep end, and that's fine - I don't deny it. But I'm quite certain that I'll wash up on the shores of sanity soon.
Soon.
PS ~ Seriously. I am under no illusions about how horribly I've brutalized the elegant field of physics. Please take nothing I say as fact
The point is that this helps me to understand my own simulation architecture,
even if it is based on a completely invalid understanding of QM
PPS ~ I swear the dev logs will be fun, lighthearted, and less nerdy again. Someday. Just not today.
[
You can visit devtime.ltheory.com for more detailed information on today's work. ]