Hacker News new | ask | show | jobs
by nmeofthestate 4442 days ago
A new game always comes with a planet at a random orbit - would be good to get rid of that, although I can see it makes understanding things easier, initially.

Also, the speed shouldn't affect the results - perhaps the simulation could always be done at the same resolution, separate from the animations.

1 comments

The simulation is always done with the same time resolution (time step). What the speed factor does is just change how many integration steps are taken between frames, so speed should indeed not affect the evolution.

If you have a reproducible case, let me know.

How about half of the high scores? When watching their replays I can't seem to get a reproducible result. Sometimes their 400MM score is crashing out as early as 10y.
I wrote about this issue a bit here:

http://www.stefanom.org/2000000-systems-played/

It's a combination of (a) people straight up exploiting the fact that the server trusts that the data sent from the client is correct, (b) some truncation error that happens when the system is saved for replay may lead to a different final outcome when replayed (the systems may be highly chaotic), or (c) a bug that I haven't been able to reproduce yet.

(a) is something I struggle with coming up with a good solution. People can just enter the Javascript console and mess with the internals (change points, multipliers, etc.). When the data is sent to the server, the server cannot re-run the entire integration, it is too computationally expensive (almost 4,000,000 games played!). So what I do is do some basic checks on the server, loop over & reject systems that are clearly fake, ban IPs that are obviously trying to exploit the high score table, and call it a day since I cannot be monitoring the high-score table all the time. As I wrote in another comment, they are all fake internet points anyway, so I'm not too concerned. If anyone has a better idea, my email is stefano.meschiari@gmail.com -- drop me a line.

(b) is a feature inherent to the N-body problem, so not much can be done on that front.

(c) I still haven't come across a system that I created on my testing environment (that I save with some extra debug information), that behaves differently when replayed.