Making roblox's engine deterministic somehow?

An issue I’m having with the Roblox engine is that it isn’t deterministic, and there is no clear way to make it deterministic on the client. I’m not worried about client-to-server replication, so ChuckyNoid isn’t an option I can use.

What can I do with Roblox’s engine to make it deterministic so that I don’t have to implement a different physics engine altogether, such as Bullet engine?

I’m only asking to be pointed in the right direction, and not looking for a full solution, if there is one

1 Like

isn’t it already, infact, in real life, if you were in a space such as a flat plane with no wind force or ANYTHING and you lined up a ball Atom . by. atom. and you did that twice, it will have same result (well you would be dead but li

Authentic determinism (even on the client) is not possible to my knowledge due to differences in floating point implementations between different hardware, replication desyncs, network ownership, etc. Many reasons why.

This thread has some nice information on a potential solution.

Local games, (a popular example being Trackmania, one other being Rocket League, which uses Bullet engine) do indeed have perfectly deterministic physics, and, as I said, Bullet physics are deterministic; but i’m not sure how implentation with Roblox would go. Network ownership and replication have nothing to do with a local deterministic physics engine, as it is local and requires no networking or replication. Different hardware can impact a physics engine, but as long as the physics are ran at a constant speed (Hz) I don’t see any problem with hardware.

I’ve already read through that thread as well, and Chickynoid is mainly made for first person shooters across client-server boundries, and is only deterministic through implementing it’s OWN character physics, which seems to be the only way to achieve perfectly consistent results. This solution doesn’t work for vehicles. It still seems like I’d have to implement my own physics engine to do that.

Thanks for the reply

1 Like

Roblox physics are deterministic if you set Workspace.PhysicsSteppingMethod to Fixed and don’t overload the physics engine to the point where it begins to throttle (simulating in slow-motion).

1 Like

Bullet physics are deterministic; but i’m not sure how implentation with Roblox would go

Assuming the math is consistent, and you don’t use ROBLOX’s native physics engine, the bullet path should always be the same

Network ownership and replication have nothing to do with a local deterministic physics engine

Of course, I was talking in the general (sorry for the vageueness), neither of those affect the client

Different hardware can impact a physics engine, but as long as the physics are ran at a constant speed (Hz) I don’t see any problem with hardware.

@Kizylle explains this in detail in the other thread, but I think really the only issue with something of this nature would be hardware that doesn’t comply to IEEE 754 which is the standard for float representation. Most definitely not an issue you’ll have to worry about on ROBLOX, lol

Interesting, i’ll try that out

So basically if you’re on a computer made in the stone age, deterministic physics can be affected. Not something i actually knew!

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.