Making computer simulations is my number one hobby and some of the things I've seen have lead me to believe that reality can't really be distinguished from a simulation.
If it were a "computer" simulation, it would have to be far different than the computers we use though.
I have had a go at simulating evolution, the big bang, the formation of a planet and a galaxy, and I've tried to make programs that can "learn", but the limiting factor is the same thing every time -
Computers aren't infinite. They can only use numbers that are so high and can only store so much data at a time.
All of these things I have tried to simulate are based on a starting point and then some set of rules that is iterated over and over to get to an outcome. In reality the rules could be thought of as all the laws we know of such as physics, gravity, electromagnetism, etc, and they are applied to everything in the universe, which gives a result, then the rules are applied to that result again and again infinitely.
The problem with a computer is it needs a "step" factor (such as time. see the
three body problem). In the real world there isn't a number of times that the rules are applied per second. But with a computer there must be. Also the end result is what you get after an infinite number of iterations. Computers can only apply a rule a finite number of times. So everything you try to simulate in the real world is an approximation at best. Your results might be accurate on a small scale, but multiply that small error by billions of years and you end up with a stagnant simulation.
If you had a computer that could work with infinity, I feel like you could definitely create a universe. And it might not even be as hard as it sounds! You don't have to design animals and plants and planets one by one. You just need a set of rules that can be iterated infinitely. If the results from your rules don't ever create a state that was reached at a previous time, your simulation will have infinite complexity. Even in the most complex computer simulation, it will always reach a state that was reached previously if enough time passes, because there are a finite number of states it can be in.