• 0 Posts
  • 67 Comments
Joined 5 months ago
cake
Cake day: June 6th, 2024

help-circle




  • The reason you do stuff in a venv is to isolate that environment from other python projects on your system, so one Python project doesn’t break another. I use Docker for similar reasons for a lot of non-Python projects.

    A lot of Python projects involve specific versions of libraries, because things break. I’ve had similar issues with non-Python projects. I’m not sure I’d say Python is particularly worse about it.

    There are tools in place that can make the sharing of Python projects incredibly easy and portable and consistent, but I only ever see the best maintained projects using them unfortunately.






  • I don’t believe everything on the internet is a lie (although of course I don’t believe everything on the internet is true either). You have to read it and judge for yourself.

    In the case of getting medical advice, there is an inherent bias to finding anecdotes on the internet. The people who post are going to be the people who have something to say. That’s going to be either people who had a life changing positive experience, or who have something to complain about. The middle-ground experience is underrepresented.

    However, there is value in anecdotes. The doctor can tell you high likely a given side effect might be, but people on the internet might have a better description of what that experience is like.

    I try to take in as much information as I can when I am making an informed decision, including things like asking my doctor, finding anecdotes on the internet, and finding actual scientific papers.






  • So here’s the thing that confuses me about your use of the word “deterministic”: even if you have balls phasing through collision objects, the game will still be deterministic in the sense that the same initial conditions for the ball will result in the same final location of the ball.

    Ways that it can become non-deterministic are usually either intentional randomness, race conditions from multithreading, or using a variable time delta for your update cycle, such that the time delta is dependent on the operating system, physical device, etc.

    As long as you aren’t doing any of those things, the game will still be “deterministic”.


  • A few ideas:

    1. Instead of doing only one “update” per frame, do multiple smaller updates per frame. This doesn’t completely solve the issue but it does decrease the threshold of how small an object can be before this becomes a problem.
    2. Compute a region between the before and after locations, and detect if the collision object intersects that region. Then if there is an intersection you have to compute where the object would have intersected it, which is going to be a bit more complicated, depending on the shape of the bounding regions you are using.
    3. Just ignore the problem. Many games have this bug, but design their game so it only becomes noticeable in rare edge cases.

    I’m not sure what you mean about decimal point handling - that’s always going on (unless you are trying to work with purely integer variable? Even then, there’s rounding involved whenever you need to divide…)

    I’m also not sure what you mean by the engine becoming “nondeterministic”.