🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Implementing pathfinding... server or client?

Started by
1 comment, last by wodinoneeye 9 years, 6 months ago

There's a server/client RTS engine called ORTS. In one of their documents, "On the Development of a Free RTS Engine", they mention basic gameplay tasks, like pathfinding, are implemented client-side ("Low Level AI Components" section of the document linked below).

This sounds like a good idea because it offloads pathfinding (a potentially expensive task) to the client, leaving the server free to take care of other tasks. However, wouldn't this give an unfair advantage to clients with a faster CPU?

One option is to force pathfinding to take a max number of frames on all clients. But wouldn't this take away part of the advantage of using a server/client architecture (not waiting on the slowest client)?

ORTS doc: https://webdocs.cs.ualberta.ca/~furtak/pub/ORTS-GAMEON_NA_05.pdf

Advertisement

There's a server/client RTS engine called ORTS. In one of their documents, "On the Development of a Free RTS Engine", they mention basic gameplay tasks, like pathfinding, are implemented client-side ("Low Level AI Components" section of the document linked below).

This sounds like a good idea because it offloads pathfinding (a potentially expensive task) to the client, leaving the server free to take care of other tasks. However, wouldn't this give an unfair advantage to clients with a faster CPU?

One option is to force pathfinding to take a max number of frames on all clients. But wouldn't this take away part of the advantage of using a server/client architecture (not waiting on the slowest client)?

ORTS doc: https://webdocs.cs.ualberta.ca/~furtak/pub/ORTS-GAMEON_NA_05.pdf

most RTS games use a lockstep model so it wouldn't matter (if a player falls behind the game pauses to wait for him to catch up), even if you use a client server architecture you probably want to use lockstep for RTS games to allow for massive armies (the amount of bandwidth required can grow quite rapidly otherwise)

[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!

From a game perspective if the AI load is significant enough to want to offload it to the client (AND the client target isnt the limiting factor -- being a rather dumb or unwieldy to program smartphone for example) that could be good (Ive looked at something like that for MMORPG NPC control - where the AI is magnitude more so offloading probably would be VERY neccessary).

A factor for a proper game is that the server still is going to VERIFY the validity of the path (the actions following the path requires) - which would be a much smaller processing task.

--------------------------------------------[size="1"]Ratings are Opinion, not Fact

This topic is closed to new replies.

Advertisement