Skip to main content
gamedev.net
🔒 Locked

Lockstep and pathfinding

Started by xiongyouyi 3 replies 2.6k views
Original Post
xiongyouyi
xiongyouyi
We are making a RTS game that use lockstep, can we use a middleware for pathfinding(NavMesh)? How to integrate? Thanks!
Hodgman
Hodgman
Yes, you just need to make sure that the middleware is deterministic, i.e. if every client sends identical inputs to the middleware, then it will generate the same outputs for each client.
hplus0603
hplus0603
If the library is deterministic, then yes, you can use it for lockstep networking.

If it's not deterministic for whatever reason (floating-point rounding across Intel/AMD without the right control bits, use of rand() or other static state, etc) then you'll have to decide on one particular node making each particular path planning, and sending that path as "control data" to all the other nodes. That can still be lock-step. Instead of sending "user sent unit A to location B," you send "user set unit A to walk across the path P," which everyone can follow deterministically.


enum Bool { True, False, FileNotFound };
xiongyouyi
xiongyouyi
Thanks! There are two main thread in our project, lockstep thread and mainthread, now pathfinding running in lockstep thread. If i move the pathfinding from lockstep thread to mainthread, sending path as lockstep input, i worry about the pathfinding in unit tracing, because the unit tracing need send path frequently, there will be large data.
xiongyouyi
xiongyouyi
Any suggestions about unit tracing? Thanks a lot!

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.