![]() This divide is very interesting for more than one reason. Both the engine and the code parts are run on the server as well as on the client. ![]() The engine part contains the operating system specific code (graphics, sound, input, network), the renderer, the bot library, and some other things like the specifics of the on-the-wire network protocol. It defines how different objects in the game interact with one another: things like what happens when a rocket hits a player or what happens when a player’s health drops below zero. The game part contains the rules of the game. Quake 3’s code is divided into two main parts: the engine part and the game part. The mechanism, called client prediction and first introduced in QuakeWorld in 1996, is one of the reasons a fast-paced multiplayer game like Quake III Arena could comfortably be played over high-latency dial-up modem connections that were popular at the time of the game’s release.Īs a special case, when the game is played in single-player mode (against bots), the client and the server are running on the same machine, in the same process, but the principles of operation remain the same. In order to mitigate the effects of network latency, parts of the simulation pertaining to the local player’s movements are also performed client-side. Even though the server is the authority on what happens in the game, the client is not a “dumb” one. The server, located on the local network or somewhere on the Internet, runs the simulation and sends the state of the world to the client, where it is rendered for the player to see. The client, running on the player’s machine, is responsible for sampling input (keyboard, mouse) from the player and sending it to the server. Quake 3 works in a client-server model: all the players participating in a match are connected to the same server. In addition to helping with understanding the protocol, the proxy might also be useful for experimentation, as it provides the ability to simulate network latency and packet loss. A from-scratch implementation of the protocol is released as a companion to this text: a proxy that parses all the messages exchanged between the server and the client, optionally rewriting some of the packets to provide a proof-of-concept aimbot functionality. Companion softwareĮven though we try to provide enough information to implement the network protocol, sometimes code is easier to understand than a natural language description of what it does. Along the way we describe some elegant features of the engine, like the event system and the separation of the engine code from the game logic using virtual machines. We go over the network component of the game’s engine, from the general principles of operation down to the actual bits of the on-the-wire protocol. The game’s source code was released under the terms of GNU General Public License in August 2005. Quake III Arena is a networked multiplayer first-person shooter developed by id Software and released in December 1999.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |