[quake3-commits] r1951 - trunk

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Wed Apr 27 12:04:24 EDT 2011


Author: thilo
Date: 2011-04-27 12:04:23 -0400 (Wed, 27 Apr 2011)
New Revision: 1951

Modified:
   trunk/README
Log:
- Change the layout of the README and split "misc" section into a part for end users, and a part for developers
- Update the readme for rev. 1950


Modified: trunk/README
===================================================================
--- trunk/README	2011-04-27 16:03:35 UTC (rev 1950)
+++ trunk/README	2011-04-27 16:04:23 UTC (rev 1951)
@@ -214,9 +214,15 @@
                                       ipv6 servers on the local network
   net_mcastiface                    - outgoing interface to use for scan
 
-  protocol                          - Allow changing protocol version
+  oldprotocol                       - when encountering a server/client that
+                                      only supports the version configured in
+                                      this cvar, ioquake3 will use the old and
+                                      less secure protocol from quake3 1.32c.
                                       (startup only)
 
+  protocol                          - Allow changing protocol version that is
+                                      sent to the server (startup only)
+
   r_allowResize                     - make window resizable (SDL only)
   r_ext_texture_filter_anisotropic  - anisotropic texture filtering
   r_zProj                           - distance of observer camera to projection
@@ -277,8 +283,9 @@
 
   which <filename/path>   - print out the path on disk to a loaded item
 
------------------------------------------------------------- Miscellaneous -----
 
+--------------------------------------------------------- README for Users -----
+
 Using shared libraries instead of qvm
   To force Q3 to use shared libraries instead of qvms run it with the following
   parameters: +set sv_pure 0 +set vm_cgame 0 +set vm_game 0 +set vm_ui 0
@@ -305,6 +312,109 @@
   In this case you can always revert back to the old behaviour by setting the
   cvar com_busyWait to 1.
 
+Using HTTP/FTP Download Support (Server)
+  You can enable redirected downloads on your server even if it's not
+  an ioquake3 server.  You simply need to use the 'sets' command to put
+  the sv_dlURL cvar into your SERVERINFO string and ensure sv_allowDownloads
+  is set to 1
+
+  sv_dlURL is the base of the URL that contains your custom .pk3 files
+  the client will append both fs_game and the filename to the end of
+  this value.  For example, if you have sv_dlURL set to
+  "http://ioquake3.org", fs_game is "baseq3", and the client is
+  missing "test.pk3", it will attempt to download from the URL
+  "http://ioquake3.org/baseq3/test.pk3"
+
+  sv_allowDownload's value is now a bitmask made up of the following
+  flags:
+    1 - ENABLE
+    4 - do not use UDP downloads
+    8 - do not ask the client to disconnect when using HTTP/FTP
+
+  Server operators who are concerned about potential "leeching" from their
+  HTTP servers from other ioquake3 servers can make use of the HTTP_REFERER
+  that ioquake3 sets which is "ioQ3://{SERVER_IP}:{SERVER_PORT}".  For,
+  example, Apache's mod_rewrite can restrict access based on HTTP_REFERER.
+
+Using HTTP/FTP Download Support (Client)
+  Simply setting cl_allowDownload to 1 will enable HTTP/FTP downloads
+  assuming ioquake3 was compiled with USE_CURL=1 (the default).
+  like sv_allowDownload, cl_allowDownload also uses a bitmask value
+  supporting the following flags:
+    1 - ENABLE
+    2 - do not use HTTP/FTP downloads
+    4 - do not use UDP downloads
+
+  When ioquake3 is built with USE_CURL_DLOPEN=1 (default on some platforms),
+  it will use the value of the cvar cl_cURLLib as the filename of the cURL
+  library to dynamically load.
+
+Multiuser Support on Windows systems
+  On Windows, all user specific files such as autogenerated configuration,
+  demos, videos, screenshots, and autodownloaded pk3s are now saved in a
+  directory specific to the user who is running ioquake3.
+
+  On NT-based such as Windows XP, this is usually a directory named:
+    "C:\Documents and Settings\%USERNAME%\Application Data\Quake3\"
+
+  Windows 95, Windows 98, and Windows ME will use a directory like:
+    "C:\Windows\Application Data\Quake3"
+  in single-user mode, or:
+    "C:\Windows\Profiles\%USERNAME%\Application Data\Quake3"
+  if multiple logins have been enabled.
+
+  In order to access this directory more easily, the installer may create a
+  Shortcut which has its target set to:
+    "%APPDATA%\Quake3\"
+  This Shortcut would work for all users on the system regardless of the
+  locale settings.  Unfortunately, this environment variable is only
+  present on Windows NT based systems.
+
+  You can revert to the old single-user behaviour by setting the fs_homepath
+  cvar to the directory where ioquake3 is installed.  For example:
+    ioquake3.exe +set fs_homepath "c:\ioquake3"
+  Note that this cvar MUST be set as a command line parameter.
+
+SDL Keyboard Differences
+  ioquake3 clients have different keyboard behaviour compared to the original
+  Quake3 clients.
+
+    * "Caps Lock" and "Num Lock" can not be used as normal binds since they
+      do not send a KEYUP event until the key is pressed again.
+
+    * SDL > 1.2.9 does not support disabling dead key recognition. In order to
+      send dead key characters (e.g. ~, ', `, and ^), you must key a Space (or
+      sometimes the same character again) after the character to send it on
+      many international keyboard layouts.
+
+    * The SDL client supports many more keys than the original Quake3 client.
+      For example the keys: "Windows", "SysReq", "ScrollLock", and "Break".
+      For non-US keyboards, all of the so called "World" keys are now supported
+      as well as F13, F14, F15, and the country-specific mode/meta keys.
+
+  On many international layouts the default console toggle keys are also dead
+  keys, meaning that dropping the console potentially results in
+  unintentionally initiating the keying of a dead key. Futhermore SDL 1.2's
+  dead key support is broken by design and Q3 doesn't support non-ASCII text
+  entry, so the chances are you won't get the correct character anyway.
+
+  If you use such a keyboard layout, you can set the cvar cl_consoleKeys. This
+  is a space delimited list of key names that will toggle the console. The key
+  names are the usual Q3 names e.g. "~", "`", "c", "BACKSPACE", "PAUSE",
+  "WINDOWS" etc. It's also possible to use ASCII characters, by hexadecimal
+  number. Some example values for cl_consoleKeys:
+
+    "~ ` 0x7e 0x60"           Toggle on ~ or ` (the default)
+    "WINDOWS"                 Toggle on the Windows key
+    "c"                       Toggle on the c key
+    "0x43"                    Toggle on the C character (Shift-c)
+    "PAUSE F1 PGUP"           Toggle on the Pause, F1 or Page Up keys
+
+  Note that when you elect a set of console keys or characters, they cannot
+  then be used for binding, nor will they generate characters when entering
+  text. Also, in addition to the nominated console keys, Shift-ESC is hard
+  coded to always toggle the console.
+
 QuakeLive mouse acceleration (patch and this text written by TTimo from id)
   I've been using an experimental mouse acceleration code for a while, and
   decided to make it available to everyone. Don't be too worried if you don't
@@ -350,6 +460,9 @@
   If you try the new acceleration code and start using it, I'd be very
   interested by your feedback.
 
+
+---------------------------------------------------- README for Developers -----
+
 64bit mods
   If you wish to compile external mods as shared libraries on a 64bit platform,
   and the mod source is derived from the id Q3 SDK, you will need to modify the
@@ -406,7 +519,7 @@
   
     +set com_homepath <homedirname>
   
-  to the command line. Then you can control which kind of messages to send to
+  to the command line. You can also control which kind of messages to send to
   the master server:
   
     +set sv_heartbeat <heartbeat> +set sv_flatline <flatline>
@@ -456,6 +569,36 @@
   maps) created by yourself are your property and can be sold like every other
   game you find in stores.
 
+Network protocols
+  There are now two cvars that give you some degree of freedom over the reported
+  protocol versions between clients and servers: "protocol" and "oldprotocol".
+  The reason for this is that some standalone games increased the protocol
+  number even though nothing really changed in their protocol and the ioquake3
+  engine is still fully compatible.
+
+  In order to fix a vulnerability in the network protocol as outlined in
+  
+    http://aluigi.altervista.org/papers/q3noclient.txt
+    
+  a new network protocol was introduced that defends against such attacks.
+  Unfortunately, this protocol will be incompatible to the original quake3 1.32c
+  which is the latest official release from id.
+  Luckily, ioquake3 has backwards compatibility, on the client as well as on the
+  server. This means ioquake3 players can play on old servers just as ioquake3
+  servers are able to service old clients.
+
+  The cvar "protocol" denotes the protocol version for the new hardened
+  protocol, whereas the "oldprotocol" cvar denotes the protocol version for the
+  legacy protocol.
+  If the value for "oldprotocol" and "protocol" is identical, then the legacy
+  protocol is always used. If oldprotocol is set to 0, then support for the
+  legacy protocol is disabled.
+  
+  Mods that use a standalone engine obviously do not require dual protocol
+  support, and it is turned off if the engine is compiled with STANDALONE per
+  default. You can enable it in q_shared.h if desired by defining
+  PROTOCOL_SUPPORT_OLD.
+
 cl_guid Support
   cl_guid is a cvar which is part of the client's USERINFO string.  Its value
   is a 32 character string made up of [a-f] and [0-9] characters.  This
@@ -474,109 +617,6 @@
        than just name
     2) granting some weak admin rights to players without requiring passwords
 
-Using HTTP/FTP Download Support (Server)
-  You can enable redirected downloads on your server even if it's not
-  an ioquake3 server.  You simply need to use the 'sets' command to put
-  the sv_dlURL cvar into your SERVERINFO string and ensure sv_allowDownloads
-  is set to 1
-
-  sv_dlURL is the base of the URL that contains your custom .pk3 files
-  the client will append both fs_game and the filename to the end of
-  this value.  For example, if you have sv_dlURL set to
-  "http://ioquake3.org", fs_game is "baseq3", and the client is
-  missing "test.pk3", it will attempt to download from the URL
-  "http://ioquake3.org/baseq3/test.pk3"
-
-  sv_allowDownload's value is now a bitmask made up of the following
-  flags:
-    1 - ENABLE
-    4 - do not use UDP downloads
-    8 - do not ask the client to disconnect when using HTTP/FTP
-
-  Server operators who are concerned about potential "leeching" from their
-  HTTP servers from other ioquake3 servers can make use of the HTTP_REFERER
-  that ioquake3 sets which is "ioQ3://{SERVER_IP}:{SERVER_PORT}".  For,
-  example, Apache's mod_rewrite can restrict access based on HTTP_REFERER.
-
-Using HTTP/FTP Download Support (Client)
-  Simply setting cl_allowDownload to 1 will enable HTTP/FTP downloads
-  assuming ioquake3 was compiled with USE_CURL=1 (the default).
-  like sv_allowDownload, cl_allowDownload also uses a bitmask value
-  supporting the following flags:
-    1 - ENABLE
-    2 - do not use HTTP/FTP downloads
-    4 - do not use UDP downloads
-
-  When ioquake3 is built with USE_CURL_DLOPEN=1 (default on some platforms),
-  it will use the value of the cvar cl_cURLLib as the filename of the cURL
-  library to dynamically load.
-
-Multiuser Support on Windows systems
-  On Windows, all user specific files such as autogenerated configuration,
-  demos, videos, screenshots, and autodownloaded pk3s are now saved in a
-  directory specific to the user who is running ioquake3.
-
-  On NT-based such as Windows XP, this is usually a directory named:
-    "C:\Documents and Settings\%USERNAME%\Application Data\Quake3\"
-
-  Windows 95, Windows 98, and Windows ME will use a directory like:
-    "C:\Windows\Application Data\Quake3"
-  in single-user mode, or:
-    "C:\Windows\Profiles\%USERNAME%\Application Data\Quake3"
-  if multiple logins have been enabled.
-
-  In order to access this directory more easily, the installer may create a
-  Shortcut which has its target set to:
-    "%APPDATA%\Quake3\"
-  This Shortcut would work for all users on the system regardless of the
-  locale settings.  Unfortunately, this environment variable is only
-  present on Windows NT based systems.
-
-  You can revert to the old single-user behaviour by setting the fs_homepath
-  cvar to the directory where ioquake3 is installed.  For example:
-    ioquake3.exe +set fs_homepath "c:\ioquake3"
-  Note that this cvar MUST be set as a command line parameter.
-
-SDL Keyboard Differences
-  ioquake3 clients have different keyboard behaviour compared to the original
-  Quake3 clients.
-
-    * "Caps Lock" and "Num Lock" can not be used as normal binds since they
-      do not send a KEYUP event until the key is pressed again.
-
-    * SDL > 1.2.9 does not support disabling dead key recognition. In order to
-      send dead key characters (e.g. ~, ', `, and ^), you must key a Space (or
-      sometimes the same character again) after the character to send it on
-      many international keyboard layouts.
-
-    * The SDL client supports many more keys than the original Quake3 client.
-      For example the keys: "Windows", "SysReq", "ScrollLock", and "Break".
-      For non-US keyboards, all of the so called "World" keys are now supported
-      as well as F13, F14, F15, and the country-specific mode/meta keys.
-
-  On many international layouts the default console toggle keys are also dead
-  keys, meaning that dropping the console potentially results in
-  unintentionally initiating the keying of a dead key. Futhermore SDL 1.2's
-  dead key support is broken by design and Q3 doesn't support non-ASCII text
-  entry, so the chances are you won't get the correct character anyway.
-
-  If you use such a keyboard layout, you can set the cvar cl_consoleKeys. This
-  is a space delimited list of key names that will toggle the console. The key
-  names are the usual Q3 names e.g. "~", "`", "c", "BACKSPACE", "PAUSE",
-  "WINDOWS" etc. It's also possible to use ASCII characters, by hexadecimal
-  number. Some example values for cl_consoleKeys:
-
-    "~ ` 0x7e 0x60"           Toggle on ~ or ` (the default)
-    "WINDOWS"                 Toggle on the Windows key
-    "c"                       Toggle on the c key
-    "0x43"                    Toggle on the C character (Shift-c)
-    "PAUSE F1 PGUP"           Toggle on the Pause, F1 or Page Up keys
-
-  Note that when you elect a set of console keys or characters, they cannot
-  then be used for binding, nor will they generate characters when entering
-  text. Also, in addition to the nominated console keys, Shift-ESC is hard
-  coded to always toggle the console.
-
 PNG support
   ioquake3 supports the use of PNG (Portable Network Graphic) images as
   textures. It should be noted that the use of such images in a map will



More information about the quake3-commits mailing list