
| Networking: Division of Labor | Home |
A networked simulation should be designed in layers, each performing a specific task. The most logical and convenient division of labor is three-fold:
The network layer manages the physical link between hosts in the session It hides the details of network protocols, packet formats, and addresses from the upper layers. It provides the following services to the modeling engine:
![]() |
|
The modeling layer is the most important part of the software, because it drives and enforces all of the gameplay logic. In addition, it must keep the simulation consistent across hosts in the network session:
![]() |
|
A simulation without any interface is pretty boring. Most games let the user observe the world from a fixed point, or interact with it using an agent. The user interface reads from the modeling layer and displays all or some of it to the user, filling the screen with fancy graphics and the speakers with whizzy sound effects:
![]() |
|
By enforcing this design, each part of the software can be improved or exchanged easily. The 3D graphics engine for your first person shooter can be used to make even battleship interesting, or you can implement Tetris on top of the same networking library you used for a space exploration game.
| Copyright (c) 1999-2003 Matt Slot and Ambrosia Software, Inc. |