My point is, even if someone is hosting, it is a lock step peer to peer system. Every command goes from every player to every player. Even if someone is hosting it is still their machine, not a dedicated server. Therefore it doesn’t matter who is controlling the AI, because the time to send a command is limited by the slowest machine. You can even split it, so each peer controls x amount of AI. Hoever, if there is no host failover, i.e if the host leaves the game it ends, then it makes sense for the host to control the AI.
A command is sent to each client so that every client has the same simulation. Each client handles their own AI, their own movements, etc. The simulation MUST be the same on each machine, spreading out the AI processing to each machine to “ease” the load does exactly the opposite. Your goal is to reduce traffic, not add to it. You defeat the purpose of the lockstep system by removing the client centric simulation.
By AI i assumed he meant units not controlled by a player. For these units it does not matter who simulates them, their action commands will still need to be sent to every player in order for lock step to occur.
For instance, in a co-opp game with computer controlled enemy units any of the connected players could, in theory, run the simulation and send the actions for x number of computer controlled units in order to produce the processing load for a single player. This will not increase the bandwidth requirement as all players will need to get the command before it executes anyway so it does not matter where it originates.
I see what you are getting at. I still suggest running AI on each client, just make sure that it will always make the same decision based on the input (as with any pathfinding AI / targeting AI). If you do it via a master client, it will still increase network traffic (the AI needs to send commands), the goal is to reduce it.
Yeah, I think I largely agree actually. Running the same AI on every client means that you can get away without its network traffic (although if it is the AI in place of a player you will need to be able to cope with the network traffic if a player was playing anyway), and can cope with a player leaving the game easier (you will not need to force the handover of its AI to another player).