Network Game - Why remote actors?

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • Network Game - Why remote actors?

      Hope you all are enjoying my random questions as I dive into different portions of this book and find I am missing something. Here's the newest one:

      In a networked game the main server logic creates all the actors and has all the proxy logics create remote actors. My question is why? The proxy logic has a null physics system and no control over AI. Essentially it is just putting up the game view and sending input back to the main server when the player pushes buttons.

      Aren't all those created actors a waste of memory and possibly processing time?
      Why doesn't the server logic just send out events to create the scene nodes (as with the new render component event) and events to manipulate their positions?
    • Hey Trinak,

      If you're going to send the lowest level units across the wire, you're basically moving into an OnLive scenario where you're doing the rendering on the server and sending the images to the client. You want to have what amounts to a read-only copy on the client so that the client has all the information necessary to render its scene, play audio, etc. instead of being forced to re-transmit that every frame. The amount of state data, and in turn the amount of changes to that state data, are dramatically smaller than the amount of data you're pushing to the renderer, audio system, etc.

      Try to think of it from a purely separate client/server perspective. You have a server that receives input, updates all the game state, and then tells the clients. It is acting as a neutral referee for the game. It's then the clients job to display that state to the users and relay their requests on to the server. This way there is only one entity in control to settle all discrepancies between clients. The only difference between this and what you described above, is that in GCC the server also has a client built in to it.

      Of course if you want to get complicated, what you'll start seeing is that the client side will actually run physics, AI, etc. in order to hide latency, and then it will correct that local state once it receives the authoritative state from the server.

      I would highly recommend reading this paper on how the networking in Tribes works. It seems to be the basis for quite a few modern games. Hopefully it can answer some of your questions :)
      pingz.com/wordpress/wp-content…ibes_networking_model.pdf

      Cheers,
      James