Revision 122575480 of "R1Q2" on enwiki{{Cleanup|date=June 2006}}
{{advert}}
'''''R1Q2''''' is a [[game engine]] modification of [[id Software]]'s [[open source]] ''[[Quake II]]'' computer game. R1Q2 is developed by ''[http://www.r1ch.net/ R1CH]'' 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.
==History==
R1Q2 development began the night of the Quake II source code released in 2001 - the name ''R1Q2'' comes from a combination of the developers nickname 'R1CH' and 'Q2' (short for Quake II). R1CH at the time was the maintainer of the [http://www.planetgloom.com/ Gloom] Quake II modification and had run into various bugs and other shortcomings within the previously closed source Quake II engine that he wished to fix. Initially, R1Q2 started out as a bugfix-only modification of the engine but soon evolved into adding new features, most of them for the server portion of the game as R1CH ran several Quake II servers at the time.
From 2001 through 2004, development continued and although no official release was made, many members of the Gloom community had received [[beta software|beta versions]] from R1CH and had begun circulating it. During the [[QuakeCon]] 2004 computer gaming event R1CH released the first official version of R1Q2, build number 1. It soon become one of the most widely used<ref name="stats">http://www.r1ch.net/forum/index.php?topic=1093.0</ref> modifications for Quake II servers due to the security and stability fixes and additional features that made server administration easier. The following year, R1Q2 was selected as the official client and server for the 'Retro Quake II tournament' at [[QuakeCon]] 2005. R1Q2 continues to be developed, now up to build number 6557 as of June 2006.
==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</ref><ref name="bugtraq2">http://www.securityfocus.com/bid/4744</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 the [[HTTP]] protocol 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].
==External links==
*[http://www.r1ch.net/stuff/r1q2/ R1Q2 website]
*[http://www.r1ch.net/forum/index.php?board=8.0 R1Q2 forum]
*[http://www.quakedev.com/forums/index.php?topic=53.0 List of vulnerabilities in Quake II 3.20 (Server) by R1CH]
*[http://www.quakedev.com/forums/index.php?topic=18.0 Mod Authoring Best Practices by R1CH]
==References==
<references />
[[Category:Quake]]All content in the above text box is licensed under the Creative Commons Attribution-ShareAlike license Version 4 and was originally sourced from https://en.wikipedia.org/w/index.php?oldid=122575480.
![]() ![]() This site is not affiliated with or endorsed in any way by the Wikimedia Foundation or any of its affiliates. In fact, we fucking despise them.
|