148 THE GAME PRODUCTION HANDBOOK, 2/E
information must be completely tied into the client, and give the players the
feeling that they are absolutely in the moment of the gameplay with all of their
actions seemingly taking place immediately when they push a button. Simply put,
all of your game data, character data, billing data, worldspace data, and player
inputs are activating and propagating based on the messaging layer between the
client and server and the data management system (commonly a database). The
client is the player’s window into this new world, and it has to be smooth in its
rendering and message priority handling so that the world environment appears
seamless and immersive and the controls appear to give instant feedback to
actions in the game.
On the server side, you need to define how you are handing the game data.
For example, how is player data being distributed across the network? What is
the best way to send a minimum amount of data to the player in order to keep
the player status correctly updated in real time? Small data packages are key to
minimizing the amount of bandwidth used and preventing latency issues with the
server. Other things to consider include what types of messages you will send the
player and how often you will send them. You don’t want the memory buffer to
fill up with messages that are not truly important for the player.
Another important issue to address is how the game will deal with server
latency. Latency is basically a delay in the time that it takes a packet of data to
transmit from the player’s computer to the game’s server, and for the server to
transmit a packet of data back to the computer. A developer will want to design
the game systems so that the least amount of information needs to be transmit-
ted between the client and server. This ensures that message buffers do not
overfill and drop packets, and that other generally negative issues don’t influ-
ence the game experience. Server latency impacts the overall game design, so
keep this issue in mind when designing the animation systems and other areas
where the player may notice latency issues while playing.
It is helpful to agree on the subscription model in pre-production. Everything
is built around what this model is going to be so that the back-end hooks can be
built during production. This includes decisions about how to handle the account
tracking, player tracking, and user reports, and also what systems are needed to
provide the ability to tweak gameplay values easily. It is important to have these
systems running before you get any humans into the game, so that you can
resolves issues sooner instead of having them grow into bigger problems later on.
Without many repeated efforts to test the gameplay systems and streamline how
the game collects data, processes data, and presents data to the other teams (who
will react to it), you could easily create a situation you are ill equipped to resolve
in a timely fashion. Using bots to test these systems can provide months of useful
data toward towards resolving any issues that human players may encounter.
While there are some middleware options for MMO, there are limitations
to using them. Each product has strengths and weaknesses, so it is important