3 ways to Implement network programming?

I understand like this. If I am wrong or lost something, plz direct.

So there are 3 ways to implement network programming.

  1. Authoritative way
    Server is 3rd place and existence that see all process and direct all process to clients.
    All gamers connects to main game server like blizzard’s bettle.net

  2. Local-Authoritative way
    This is p2p(player-player) way and 1 become local server and judge.
    All authoritative way has some class or pool concept to which participating player get into.

  3. Local-Non-Authoritative way
    This is also p2p way and all has it’s own variables and also has another player’s variables. If there are few numbers of participating player (2 players best), script like var player1doing : boolean; , var player2doing : boolean; ,

There’s four main ways to build your networking, you got it sort of right but to be more specific:

Authoritative Server

A separate non-player instance of the game or a separate software running that has total control over the world, the client are in general pretty dumb and do a lot of interpolation/extrapolation to render things pretty.

Master Client

This is what a lot of XBOX and PS3 games does, one of the connecting clients becomes the server that synchronizes everything for itself plus all other clients. It becomes authoritative over the game state, but on consoles the problem with cheating isn’t as big because you can’t (or at least it’s very hard) modify the software.

Authoritative Clients

This is when all clients are authoritative over their own positions and just send their current state to the server, the server fully trusts the clients and just relays the state to all other players.

Peer-to-Peer

This is very close to the authoritative clients way, but all clients communicate with each other instead of through a server.

ya fholm is correct… and never use Authoritative clients for games it is like inviting the player to hack it…any noob who can use cheat engine can hack the game, that simple

I wouldn’t count that out, you can implement verification on all clients so that every player verifies every other players commands, etc. which would disable cheating unless every client runs the same cheat.

Also a lot of turn based games like Civilization, etc. runs authoritative clients.