Just want to note first I know there are lots of topics on this. I've bought books, read tons of posts here, but still stuck on a few topics from a conceptual level. One of them is concerning how larger online games manage path finding server side when there are lots of actors.
My problem isn't necessarily how to program the path finding when it comes to move NPC from position1 to position2 that's pretty straight forward but if the goal is to have as little to no physics done as possible on the server side I'm stuck on: How do larger games manage pathfinding for lets say NPC's chasing players?
We know the following:
- Mobs will only chase x distance
- While not chasing players the mobs normally have a predefined path to follow so the server doesn't have to calculate that nonstop.
- If no players are around the calculations can stop and free that resource up.
Most of my server side code is easily managed without the need of running the client exe. Is it normal to lets say have a cluster of servers that does nothing but manage pathfinding for certain areas of the world? So for example the server exe would communicate to the client exe(sitting on a server) I need to move npc from current position (x,y,z) to the current player position of (x,y,z) calculate my path. The client does this, respond to the server.exe request, this is then shared with the player clients?
I guess the same could be said for players themselves. If we need to validate their movements are accurate we need to know that they were able to move to x/y/z coordinates by checking it against a client somehow? The only other option I can think of is that somehow these companies are exporting their navmesh in some format that the server exe can look at and run calculations against.
I hope one of y'all out there smarter then me will be able to see where I'm getting hung up on.