Revision 211468126 of "R1Q2" on enwiki

{{Cleanup|date=June 2007}}
'''''R1Q2''''' is a [[game engine]] modification of [[id Software]]'s [[open source]] ''[[Quake II]]'' computer game. R1Q2 is developed by Richard Stanway and is presently the most widely used 3rd party engine modification on Quake II servers. The primary design goals are high speed, increased security and improved stability whilst not affecting compatibility.

==Main features==
'''Security and bug fixes'''
: R1Q2 was one of the first Quake II modifications to provide security fixes for various bugs<ref name="bugtraq">[http://www.securityfocus.com/archive/1/379603 SecurityFocus<!-- Bot generated title -->]</ref><ref name="bugtraq2">[http://www.securityfocus.com/bid/4744 id Software Quake II Server Remote Information Disclosure Vulnerability<!-- Bot generated title -->]</ref><ref name="server vulnerability listing">[http://www.quakedev.com/forums/index.php?topic=53.0 QuakeDev.com :: Forums :: List of vulnerabilities in Quake II 3.20 (Server) by R1CH<!-- Bot generated title -->]</ref> that were discovered prior to and after the source code release. Many server admins were eager to update their servers to prevent any malicious users from exploiting these bugs which led to R1Q2 becoming as popular as it is now for Quake II server usage.

'''New server-side network code'''
: During 2005, significant portions of the networking code were rewritten. The Quake II server previously had a fixed-length buffer into which all network messages for a client were placed - if too much data was added to this buffer, the client would be disconnected from the game server. R1Q2 changed this by allowing each individual network message such as a piece of chat text, an explosion, a muzzle flash, etc to be individually queued or optionally dropped by the server. This resulted in effectively eliminating the 'overflow' condition and allowing much higher levels of in-game activity without the risk of a player being disconnected. [[zlib]] compression was implemented to allow packets that exceeded the [[User datagram protocol|UDP]] frame size to be compressed and retransmitted instead of dropped.

: Further network code optimizations were made in the [[delta encoding]] of player state and entities by avoiding sending packets with values that were [[quantization|quantized]] to the same value as a previous update. In-game content downloading speed was also increased through the use of compression and an improved retransmission speed.

'''HTTP downloading'''
: The R1Q2 client supports fetching content using [[HTTP]] instead of UDP. Since HTTP operates over a reliable protocol, downloading is much quicker than with UDP and allows clients to fetch game content an order of magnitude faster. HTTP downloading also supports a 'filelist' which the server can supply which tells the client the name of any additional content that it may wish to download that it otherwise would not know about, for example high resolution textures.

A full list of features in R1Q2 can be found on the [http://www.r1ch.net/stuff/r1q2/ R1Q2 website].

==References==
<references />

==External links==
*[http://www.r1ch.net/stuff/r1q2/ R1Q2 website]

[[Category:Quake]]
[[Category:Free game engines]]

{{videogame-software-stub}}