Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This is flawed thinking I've seen show up in a lot of arguments. I even had this argument with Kurzweil at some point.

If we want to create a realistic simulation, we only need to simulate things with sufficient fidelity to convince observers.

That basically means:

- Only things that have been observed needs to gain some form of persistence

- Each simulated entity should have error margins that account for their continued existence, or their allowable location and other factors. Once an error margin for an aspect of a simulated entity exceeds the factors of the pseudo-random instantiation of that entity or class of entities, you do not need to explicitly retain or simulate the state of that entity. E.g. you don't need to retain the state of an "NPC human" longer than ~120 years at most; most you can discard much sooner; most details you never need to generate in the first place because it is not known to the entity that observes it.

- Over time, perturb the simulation back towards the outcome of a static generator function that takes time as a parameter, to wipe out state and simulation. That is, "undo" all changes the "players" in the simulation do in as plausible way as possible.

Do that, and you only need to simulate the "players" you want to simulate and those entities closest in time and space to them most of the time. There'll be a "halo" of other entities that slowly reverts to the baseline simulation.

I keep wanting to use this approach as a simulation basis for a game, in fact.

E.g. consider Elite: When you leave a starsystem, all the ships in it despawns. If you go straight back, it breaks immersion. The approach above applied to it would instead record a cone from the last known position of each ship that grows over time by likely speeds and directions. As more and more of the larger end of the cone expands outside the starsystem, you increase the chance that they despawn. If you return rapidly, you find ships have moved a believable distance.

Or Minecraft: Currently mobs despawn outside of a given area, and simulation only runs within a certain number of chunks from the player. But most things stay exactly as they were. As such all player modifications must be saved. But for many things you can create functions that makes the world more dynamic with less simulation. E.g. if trees slowly grow and age and fall down, and rot, and new trees grow, then that means that the longer since a player has been in a given chunk, the more of the players modifications can be discarded and replaced by a generator function with time as one of the parameter.

We've pruned simulations since some of the earliest generative games.

To address the quote: We don't need to simulate the weather in its full apparent complexity, as long as the observed aspects of the weather falls within parameters that makes them plausible but sufficiently unpredictable.

For most detail of the weather, that just means it needs to conform to the overall parameters. E.g. you don't need to simulate raindrops that "player" sees; just the overall volume of rain in the overall area if it is near a "player". Even less detail if further away.



"To address the quote: We don't need to simulate the weather in its full apparent complexity, as long as the observed aspects of the weather falls within parameters that makes them plausible but sufficiently unpredictable."

What's the point of a simulation pretending to simulate a complex system when it could have just implemented a simpler system in the first place?

Also, What is "observable"? If you mean "what people [well, simulation subjects] might look at", recall that people do take past data of weather, including data that's not collected at the time (e.g. tree ring data).

Assuming that the simulation can't examine future actions of the simulated people (if you could, why bother with a simulation?), it would need to simulate pretty deeply too, to be "plausible" with everything they might collect in the future. It isn't clear at all that a good simplification exists that would do that more cheaply.


> What's the point of a simulation pretending to simulate a complex system when it could have just implemented a simpler system in the first place?

Why are you assuming the simpler system would achieve the goal of the simulation? If the intent is to see how a "player" responds to an environment that is a realistic reproduction of a given environment, then placing them in a simulation that isn't a realistic reproduction may be insufficient.

> Also, What is "observable"? If you mean "what people [well, simulation subjects] might look at", recall that people do take past data of weather, including data that's not collected at the time (e.g. tree ring data).

The only "observable" data that complicates things are data that has been affected by "players", and where the effect has been observed by them and may be remembered by them. Anything that has not been affected by "players" can, assuming a simulation that consists of a deterministic base parameterised by time with a layer of "player modifications", be generated purely from the simulation. Anything that has been affected by "players" requires you to record those changes and alter the simulation based on those recorded differences.

Recording those changes has a significant "cost" because if they have knock on effects you also need to account for those knock on effects.

But as long as you store that state, you can still recreate any past state.

(consider here Minecraft as a gross simplification: If I chop down a tree, but leave a stump, and then walk outside of the chunks the simulation runs, and walk back again, I still expect to see the stump; this requires storing state where you otherwise could have re-generated the chunk purely from the seeds of the simulator - the ability to minimize that state is what has the potential to make a complex simulation viable)

What I was getting at was that a way of optimizing away most of that stored state is to keep track of when you can plausibly perturb what should be pseudo-random values in the simulation to "nudge" things back towards the base outcome of the simulator. When you can, you can then throw away saved state going forwards from that point in the simulation.

(e.g. add decay and growth, and the changing environment means you can bit by bit throw away state where throwing it away can be justified by the passage of time altering the environment)

The recording of things like weather data has no impact on that. You're not changing what the weather was. You're reducing the cost of recording aberrations from the baseline simulation to cut the cost of simulation going forwards.


"Why are you assuming the simpler system would achieve the goal of the simulation? If the intent is to see how a "player" responds to an environment that is a realistic reproduction of a given environment, then placing them in a simulation that isn't a realistic reproduction may be insufficient."

In a chaotic quantum system, everything has an influence, including the butterfly 2000km from where you are sitting now.

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.

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.

"The only "observable" data that complicates things are data that has been affected by "players", and where the effect has been observed by them and may be remembered by them."

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?

A) Calculate everything in advance. That's not very promising.

B) Calculate everything the 'players' may care about in advance.

In some systems, that's equivalent to A. Even in other systems, the players pick their own motivation and tests. If the simulation is of any worth, we may not know in advance what tests they chose, so that's not promising either.

C) When the players are somewhere, calculate the past of anything they might be examined by them.

That would require enormous amounts of state or massive calculation. Calculating the past of quantum systems can be as complicated as approach A.

D) Read the players' mind and just give them what they want (why not? It's not outside the scope of a full simulation).

There are some coordination issues here (what if different players expect different things? or if player has a flaw in the original calculation?), but that seems manageable. Even more so if we are allowed to rewrite the players' mind. Of course, that means there'll never be a proof of the simulation since it will be prevented/rewritten immediately...

E) Don't bother with consistency, lie to the players all the time and hope they could rationalize everything. I'd have expected the world to be weirder and more inconsistent than it is in that case.


> 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.


This makes the assumption that the "player" is somehow a privileged entity whose interactions are deemed more important than those of other elements of the simulation. A sort of "The Matrix" style simulation.

But from what we can tell, we are not special. We are made of the same energy and matter as everything else and our awareness of the world doesn't seem to be unique either. If there is no privileged "player", then you cannot make the kinds of optimizations you're talking about because any given arrangement of matter and/or energy is potentially aware.


We have no basis for telling whether or not we are special. In fact, we have no basis for telling whether other people are "players" or "NPCs". If we are in a simulation, you have no basis for knowing if we are "made of the same energy and matter" or not, or if you're simulated by the same code, or if the simulation just feeds you sensory data to make it appear that way.


But unlike a game, the observers aren't limited to limited perspectives in our 'real' universe.

You may say, thousands are observing a game on twitch perhaps even if different camera angles of different players in a multiplayer game.

But, the observers of the real universe are of far greater magnitude and I often feel this game assets based reasoning fails to account the scale of our Universe due Earth Bias.


No, this concept does not fail to account for that. It explicitly accounts for it; things examined more closely are rendered with more fidelity.

The simulation would still be a complicated program beyond our ability to understand, but there are information-theoretic reasons to believe it's of a finite complexity, of a size that a more intelligent being might find perfectly manageable.

Human sensoriums are information-theoretically bounded to be quite a bit smaller than you may think. People often don't really "get" how information works. It doesn't matter than the particle accelerator has numbers on a screen that claim it's collecting petabytes of data per second... you aren't collecting petabytes of data per second. All you ever see is a tiny slice of that thing's output, bounded by the amount the screen can carry and you can perceive. A minimal simulation of the accelerator's output is a great deal smaller than the actual data it is collecting. The bare minimum information necessary to simulate your sensorium is not really all that much, on the order of something that could fit on a modern Wifi signal, and not ever necessarily the latest standards. While we have no idea how to write a program that could simulate it as if a universe was behind it for that cheap, that doesn't mean no entity in the multiverse does.

The game analogy is a bit deceptive in that it invites you to imagine it all works exactly like modern games, but you have to imagine something wildly more sophisticated, and while not necessarily "unbounded" in resources, certainly a great deal more blessed than any current computer cluster we have.


> But unlike a game, the observers aren't limited to limited perspectives in our 'real' universe.

How do you know?

How many "players" or "observers" are there? How do you know that?

How large a proportion of our universe do they observe?

The reality is that we do not know. We don't know if there's even a single "player" or "observer" over time, because for what we know there could be that only brief disconnected "slices" of time are ever simulated for single observers - we never directly observe the past and present at the same time; we only "know" the past from our memory in the present, and we have no way of knowing if that memory is an accurate representation of anything. Nor do we have a way of knowing if our sensory input is an accurate representation of anything.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: