Search Unity

  1. Unity 6 Preview is now available. To find out what's new, have a look at our Unity 6 Preview blog post.
    Dismiss Notice
  2. Unity is excited to announce that we will be collaborating with TheXPlace for a summer game jam from June 13 - June 19. Learn more.
    Dismiss Notice

3 ways to Implement network programming?

Discussion in 'Multiplayer' started by leegod, Oct 10, 2011.

  1. leegod

    leegod

    Joined:
    May 5, 2010
    Posts:
    2,488
    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; ,,,
     
  2. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    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.
     
  3. flamy

    flamy

    Joined:
    Feb 7, 2011
    Posts:
    194
    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
     
  4. fholm

    fholm

    Joined:
    Aug 20, 2011
    Posts:
    2,052
    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.