Hacker News new | ask | show | jobs
by vidarh 2255 days ago
> We can't 'just implement the parts mattering to the players', because the butterfly could cause a storm in your location a month from now, and we can't know whether it does or does not without actually computing it.

Because a central aspect of quantum mechanics is that we can not possibly predict what "should" have happened, then it follows that as long as the simulated outcome does not introduce predictability that shouldn't be there, a generated outcome is impossible to distinguish from a real one.

But that does of course not matter, because we have nothing to compare it against, so we don't know what the outcome "should" have been.

If we are in a simulation, then quantum mechanics could very well simply be the simulators attempt at an information barrier to prevent "obvious" patterns that would make it easy to discern that we're in a simulator, as well as a barrier that provides a lower limit for what the simulator needs to be able to simulate.

But there is another problem with this argument:

> So if the system is modeling all the butterflies, you have a simulation cost problem. If it not modeling the butterflies, than the system does not truly implement 'the weather', but a simpler system, in which point it would have been easier to simulate a simpler system with less noise.

This argument rests on the assumption that a "simpler system" that would be "easier to simulate" would have less noise. That's a shaky assumption in itself.

But we tend to interpret "clean" data as artificial, and simple mechanisms also makes it easier to spot inconsistencies. If we are the way we are because we are simulations of entities outside "our" universe, then it would be clear that if said entities don't want us to realize we're in a simulation, then we would want to create simulations that look noisy.

At the same time, if the intent is to simulate the world the "outside" entities live in, then there is no way to avoid noise if these systems are noisy in their world.

Luckily that does not mean the noise needs to be perfect, and apparent/pseudo-random "noise" is cheap and easy to generate from very small functions. We're getting pretty good at using noise to generate terrain simulations that are looking increasingly plausible from small inputs, for example. It is in fact a significantly simpler approach vs. trying to model everything perfectly, because noise can hide a lot of imperfections and generate very complex-looking features from deceptively simple inputs.

And again what you need to remember is that we don't have a basis for comparison. We don't have pictures of the "outside world" to compare to in order to look for flaws in the simulation. If we are in a simulation, then for what we know the simulation is really awful and full of flaws, but close enough for the purposes of those running it.

> Lets look at the example of past data. Quite a lot of it is not by "players" (lets assume humans are the "players" here). Tree ring data, geological formations... How does our simulation deal with that?

You're missing:

F) Use an approach at least as old as Elite: Layered generation (Elite uses a pseudo rng, but it doesn't need to be), and generate values dependent on the higher level simulation to "drill down" to generate the state at any given point in time. You can make this just as consistent as you want, because at each level if you want you can use contiguous functions that makes it appear like reasonable causal chains. If you have to mix in "player aberrations" you need to actually simulate those steps and save the results, which is why you then want to keep track of a timeline for how rapidly you can perturb out the player aberrations), but everything else can be thrown away and recalculated depending on what is cost effective.

You want geological formations? Use a generator function that returns the placements of tectonic plates and other geological features at time t, and a given position. This is no different from how e.g. Minecraft generates terrains other than adding a time parameter to allow for things like tectonic shift and erosion and the like to be layered into the generator.

You want tree rings? Look up the landscape data for the current chunk, run a generator function that returns the trees in that chunk, and their data, look up the tree the player has felled, record the aberration and generate the data for the felled tree. Plenty of game engines already e.g. gives you different amounts of resources for felling trees of different size; this is not a hard problem. And increasingly the believability of environmental simulators is a multi-billion dollar business already today. Now keep in mind that for the purposes of the simulation argument, for the odds to be heavily in favour of a simulation only at least two simulations of this place and time needs to be run before the heath death of the universe. That's a lot of time.

But a lot of the perceived complexity of that also rests on the assumption of a world roughly like how we perceive it: billions of people etc. But without knowing how many "players" there are vs "NPCs", it's impossible to estimate the complexity of the simulation. Most of us only ever see a tiny part of the world, and meet a tiny number of people, and interact deeply with a much smaller number of people. If it's all a simulation, you don't know how much it is actually simulating.

Maybe you're alone in here. Maybe I am. Maybe you didn't exist before you read this comment. Maybe you won't exist after you read it.