Lockstep and pathfinding

Started by
3 comments, last by xiongyouyi 11 years, 9 months ago
We are making a RTS game that use lockstep, can we use a middleware for pathfinding(NavMesh)? How to integrate? Thanks!
Advertisement
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.
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 };
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.
Any suggestions about unit tracing? Thanks a lot!

This topic is closed to new replies.

Advertisement