Improve github interperation of README.md

This commit is contained in:
Zack Middleton 2013-11-23 19:38:09 -06:00
parent fe09fb77b9
commit 94bffacdb2

151
README.md
View file

@ -39,7 +39,7 @@ renamed to id-readme.txt so as to prevent confusion. Please refer to the
web-site for updated status. web-site for updated status.
--------------------------------------------- Compilation and installation ----- # Compilation and installation
For *nix For *nix
1. Change to the directory containing this readme. 1. Change to the directory containing this readme.
@ -73,6 +73,7 @@ x86_64.
The following variables may be set, either on the command line or in The following variables may be set, either on the command line or in
Makefile.local: Makefile.local:
```
CFLAGS - use this for custom CFLAGS CFLAGS - use this for custom CFLAGS
V - set to show cc command line when building V - set to show cc command line when building
DEFAULT_BASEDIR - extra path to search for baseq3 and such DEFAULT_BASEDIR - extra path to search for baseq3 and such
@ -108,13 +109,16 @@ Makefile.local:
DEBUG_CFLAGS - C compiler flags to use for building debug version DEBUG_CFLAGS - C compiler flags to use for building debug version
COPYDIR - the target installation directory COPYDIR - the target installation directory
TEMPDIR - specify user defined directory for temp files TEMPDIR - specify user defined directory for temp files
```
The defaults for these variables differ depending on the target platform. The defaults for these variables differ depending on the target platform.
------------------------------------------------------------------ Console ----- # Console
New cvars ## New cvars
```
cl_autoRecordDemo - record a new demo on each map change cl_autoRecordDemo - record a new demo on each map change
cl_aviFrameRate - the framerate to use when capturing video cl_aviFrameRate - the framerate to use when capturing video
cl_aviMotionJpeg - use the mjpeg codec when capturing video cl_aviMotionJpeg - use the mjpeg codec when capturing video
@ -271,8 +275,11 @@ New cvars
cl_aviMotionJpeg is enabled cl_aviMotionJpeg is enabled
r_mode -2 - This new video mode automatically uses the r_mode -2 - This new video mode automatically uses the
desktop resolution. desktop resolution.
```
New commands ## New commands
```
video [filename] - start video capture (use with demo command) video [filename] - start video capture (use with demo command)
stopvideo - stop video capture stopvideo - stop video capture
stopmusic - stop background music stopmusic - stop background music
@ -307,15 +314,18 @@ New commands
all bots even if someone is named "allbots") all bots even if someone is named "allbots")
tell <client num> <msg> - send message to a single client (new to server) tell <client num> <msg> - send message to a single client (new to server)
```
--------------------------------------------------------- README for Users ----- # README for Users
## Using shared libraries instead of qvm
Using shared libraries instead of qvm
To force Q3 to use shared libraries instead of qvms run it with the following 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 parameters: `+set sv_pure 0 +set vm_cgame 0 +set vm_game 0 +set vm_ui 0`
## Using Demo Data Files
Using Demo Data Files
Copy demoq3/pak0.pk3 from the demo installer to your baseq3 directory. The Copy demoq3/pak0.pk3 from the demo installer to your baseq3 directory. The
qvm files in this pak0.pk3 will not work, so you have to use the native qvm files in this pak0.pk3 will not work, so you have to use the native
shared libraries or qvms from this project. To use the new qvms, they must be shared libraries or qvms from this project. To use the new qvms, they must be
@ -327,7 +337,8 @@ Using Demo Data Files
data, nor is it something that we like to spend much time maintaining or data, nor is it something that we like to spend much time maintaining or
supporting. supporting.
Help! Ioquake3 won't give me an fps of X anymore when setting com_maxfps! ## Help! Ioquake3 won't give me an fps of X anymore when setting com_maxfps!
Ioquake3 now uses the select() system call to wait for the rendering of the Ioquake3 now uses the select() system call to wait for the rendering of the
next frame when com_maxfps was hit. This will improve your CPU load next frame when com_maxfps was hit. This will improve your CPU load
considerably in these cases. However, not all systems may support a considerably in these cases. However, not all systems may support a
@ -337,7 +348,8 @@ Help! Ioquake3 won't give me an fps of X anymore when setting com_maxfps!
In this case you can always revert back to the old behaviour by setting the In this case you can always revert back to the old behaviour by setting the
cvar com_busyWait to 1. cvar com_busyWait to 1.
Using HTTP/FTP Download Support (Server) ## Using HTTP/FTP Download Support (Server)
You can enable redirected downloads on your server even if it's not 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 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 the sv_dlURL cvar into your SERVERINFO string and ensure sv_allowDownloads
@ -346,19 +358,20 @@ Using HTTP/FTP Download Support (Server)
sv_dlURL is the base of the URL that contains your custom .pk3 files 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 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 this value. For example, if you have sv_dlURL set to
"http://ioquake3.org", fs_game is "baseq3", and the client is `"http://ioquake3.org"`, fs_game is `"baseq3"`, and the client is
missing "test.pk3", it will attempt to download from the URL missing `"test.pk3"`, it will attempt to download from the URL
"http://ioquake3.org/baseq3/test.pk3" `"http://ioquake3.org/baseq3/test.pk3"`
sv_allowDownload's value is now a bitmask made up of the following sv_allowDownload's value is now a bitmask made up of the following
flags: flags:
1 - ENABLE
4 - do not use UDP downloads * 1 - ENABLE
8 - do not ask the client to disconnect when using HTTP/FTP * 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 Server operators who are concerned about potential "leeching" from their
HTTP servers from other ioquake3 servers can make use of the HTTP_REFERER HTTP servers from other ioquake3 servers can make use of the HTTP_REFERER
that ioquake3 sets which is "ioQ3://{SERVER_IP}:{SERVER_PORT}". For, that ioquake3 sets which is `"ioQ3://{SERVER_IP}:{SERVER_PORT}"`. For,
example, Apache's mod_rewrite can restrict access based on HTTP_REFERER. example, Apache's mod_rewrite can restrict access based on HTTP_REFERER.
On a sidenote, downloading via UDP has been improved and yields higher data On a sidenote, downloading via UDP has been improved and yields higher data
@ -366,46 +379,58 @@ Using HTTP/FTP Download Support (Server)
cvar sv_dlRate. Due to system-specific limits the download rate is capped cvar sv_dlRate. Due to system-specific limits the download rate is capped
at about 1 Mbyte/s per client, so curl downloading may still be faster. at about 1 Mbyte/s per client, so curl downloading may still be faster.
Using HTTP/FTP Download Support (Client) ## Using HTTP/FTP Download Support (Client)
Simply setting cl_allowDownload to 1 will enable HTTP/FTP downloads Simply setting cl_allowDownload to 1 will enable HTTP/FTP downloads
assuming ioquake3 was compiled with USE_CURL=1 (the default). assuming ioquake3 was compiled with USE_CURL=1 (the default).
like sv_allowDownload, cl_allowDownload also uses a bitmask value like sv_allowDownload, cl_allowDownload also uses a bitmask value
supporting the following flags: supporting the following flags:
1 - ENABLE
2 - do not use HTTP/FTP downloads * 1 - ENABLE
4 - do not use UDP downloads * 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), 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 it will use the value of the cvar cl_cURLLib as the filename of the cURL
library to dynamically load. library to dynamically load.
Multiuser Support on Windows systems ## Multiuser Support on Windows systems
On Windows, all user specific files such as autogenerated configuration, On Windows, all user specific files such as autogenerated configuration,
demos, videos, screenshots, and autodownloaded pk3s are now saved in a demos, videos, screenshots, and autodownloaded pk3s are now saved in a
directory specific to the user who is running ioquake3. directory specific to the user who is running ioquake3.
On NT-based such as Windows XP, this is usually a directory named: On NT-based such as Windows XP, this is usually a directory named:
"C:\Documents and Settings\%USERNAME%\Application Data\Quake3\"
C:\Documents and Settings\%USERNAME%\Application Data\Quake3\
Windows 95, Windows 98, and Windows ME will use a directory like: Windows 95, Windows 98, and Windows ME will use a directory like:
"C:\Windows\Application Data\Quake3"
C:\Windows\Application Data\Quake3
in single-user mode, or: in single-user mode, or:
"C:\Windows\Profiles\%USERNAME%\Application Data\Quake3"
C:\Windows\Profiles\%USERNAME%\Application Data\Quake3
if multiple logins have been enabled. if multiple logins have been enabled.
In order to access this directory more easily, the installer may create a In order to access this directory more easily, the installer may create a
Shortcut which has its target set to: Shortcut which has its target set to:
"%APPDATA%\Quake3\"
%APPDATA%\Quake3\
This Shortcut would work for all users on the system regardless of the This Shortcut would work for all users on the system regardless of the
locale settings. Unfortunately, this environment variable is only locale settings. Unfortunately, this environment variable is only
present on Windows NT based systems. present on Windows NT based systems.
You can revert to the old single-user behaviour by setting the fs_homepath You can revert to the old single-user behaviour by setting the fs_homepath
cvar to the directory where ioquake3 is installed. For example: cvar to the directory where ioquake3 is installed. For example:
ioquake3.exe +set fs_homepath "c:\ioquake3" ioquake3.exe +set fs_homepath "c:\ioquake3"
Note that this cvar MUST be set as a command line parameter. Note that this cvar MUST be set as a command line parameter.
SDL Keyboard Differences ## SDL Keyboard Differences
ioquake3 clients have different keyboard behaviour compared to the original ioquake3 clients have different keyboard behaviour compared to the original
Quake3 clients. Quake3 clients.
@ -445,7 +470,9 @@ SDL Keyboard Differences
text. Also, in addition to the nominated console keys, Shift-ESC is hard text. Also, in addition to the nominated console keys, Shift-ESC is hard
coded to always toggle the console. coded to always toggle the console.
QuakeLive mouse acceleration (patch and this text written by TTimo from id) ## 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 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 decided to make it available to everyone. Don't be too worried if you don't
understand the explanations below, this is mostly intended for advanced understand the explanations below, this is mostly intended for advanced
@ -491,15 +518,17 @@ QuakeLive mouse acceleration (patch and this text written by TTimo from id)
interested by your feedback. interested by your feedback.
---------------------------------------------------- README for Developers ----- # README for Developers
## pk3dir
pk3dir
ioquake3 has a useful new feature for mappers. Paths in a game directory with ioquake3 has a useful new feature for mappers. Paths in a game directory with
the extension ".pk3dir" are treated like pk3 files. This means you can keep the extension ".pk3dir" are treated like pk3 files. This means you can keep
all files specific to your map in one directory tree and easily zip this all files specific to your map in one directory tree and easily zip this
folder for distribution. folder for distribution.
64bit mods ## 64bit mods
If you wish to compile external mods as shared libraries on a 64bit platform, 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 and the mod source is derived from the id Q3 SDK, you will need to modify the
interface code a little. Open the files ending in _syscalls.c and change interface code a little. Open the files ending in _syscalls.c and change
@ -519,14 +548,16 @@ pk3dir
Note if you simply wish to run mods on a 64bit platform you do not need to Note if you simply wish to run mods on a 64bit platform you do not need to
recompile anything since by default Q3 uses a virtual machine system. recompile anything since by default Q3 uses a virtual machine system.
Creating mods compatible with Q3 1.32b ## Creating mods compatible with Q3 1.32b
If you're using this package to create mods for the last official release of If you're using this package to create mods for the last official release of
Q3, it is necessary to pass the commandline option '-vq3' to your invocation Q3, it is necessary to pass the commandline option '-vq3' to your invocation
of q3asm. This is because by default q3asm outputs an updated qvm format that of q3asm. This is because by default q3asm outputs an updated qvm format that
is necessary to fix a bug involving the optimizing pass of the x86 vm JIT is necessary to fix a bug involving the optimizing pass of the x86 vm JIT
compiler. compiler.
Creating standalone games ## Creating standalone games
Have you finished the daunting task of removing all dependencies on the Q3 Have you finished the daunting task of removing all dependencies on the Q3
game data? You probably now want to give your users the opportunity to play game data? You probably now want to give your users the opportunity to play
the game without owning a copy of Q3, which consequently means removing cd-key the game without owning a copy of Q3, which consequently means removing cd-key
@ -568,7 +599,6 @@ Creating standalone games
+set com_basegame basefoo +set com_homepath .foo +set com_basegame basefoo +set com_homepath .foo
+set com_gamename foo +set com_gamename foo
If you really changed parts that would make vanilla ioquake3 incompatible with If you really changed parts that would make vanilla ioquake3 incompatible with
your mod, we have included another way to conveniently build a stand-alone your mod, we have included another way to conveniently build a stand-alone
binary. Just run make with the option BUILD_STANDALONE=1. Don't forget to edit binary. Just run make with the option BUILD_STANDALONE=1. Don't forget to edit
@ -598,7 +628,7 @@ Creating standalone games
maps) created by yourself are your property and can be sold like every other maps) created by yourself are your property and can be sold like every other
game you find in stores. game you find in stores.
Network protocols ## Network protocols
There are now two cvars that give you some degree of freedom over the reported There are now two cvars that give you some degree of freedom over the reported
protocol versions between clients and servers: "com_protocol" and protocol versions between clients and servers: "com_protocol" and
"com_legacyprotocol". "com_legacyprotocol".
@ -627,7 +657,7 @@ Network protocols
game you can still enable it in q_shared.h by defining game you can still enable it in q_shared.h by defining
LEGACY_PROTOCOL. LEGACY_PROTOCOL.
cl_guid Support ## cl_guid Support
cl_guid is a cvar which is part of the client's USERINFO string. Its value 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 is a 32 character string made up of [a-f] and [0-9] characters. This
value is pseudo-unique for every player. Id's Quake 3 Arena client also value is pseudo-unique for every player. Id's Quake 3 Arena client also
@ -641,11 +671,12 @@ cl_guid Support
a server. This value can be reset by the client at any time so it's not a server. This value can be reset by the client at any time so it's not
useful for blocking access. However, it can have at least two uses in useful for blocking access. However, it can have at least two uses in
your mod's game code: your mod's game code:
1) improve logging to allow statistical tools to index players by more
than just name
2) granting some weak admin rights to players without requiring passwords
PNG support 1. improve logging to allow statistical tools to index players by more
than just name
2. granting some weak admin rights to players without requiring passwords
## PNG support
ioquake3 supports the use of PNG (Portable Network Graphic) images as 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 textures. It should be noted that the use of such images in a map will
result in missing placeholder textures where the map is used with the id result in missing placeholder textures where the map is used with the id
@ -665,7 +696,8 @@ PNG support
Restart GtkRadiant and PNG textures are now available. Restart GtkRadiant and PNG textures are now available.
Building with MinGW for pre Windows XP ## Building with MinGW for pre Windows XP
IPv6 support requires a header named "wspiapi.h" to abstract away from IPv6 support requires a header named "wspiapi.h" to abstract away from
differences in earlier versions of Windows' IPv6 stack. There is no MinGW differences in earlier versions of Windows' IPv6 stack. There is no MinGW
equivalent of this header and the Microsoft version is obviously not equivalent of this header and the Microsoft version is obviously not
@ -674,7 +706,7 @@ Building with MinGW for pre Windows XP
directory, this restriction is lifted. directory, this restriction is lifted.
------------------------------------------------------------- Contributing ----- # Contributing
Please send all patches to bugzilla (https://bugzilla.icculus.org), or join the Please send all patches to bugzilla (https://bugzilla.icculus.org), or join the
mailing list (http://lists.ioquake.org/listinfo.cgi/ioquake3-ioquake.org) and mailing list (http://lists.ioquake.org/listinfo.cgi/ioquake3-ioquake.org) and
@ -689,7 +721,7 @@ accepted as long as they are entirely optional, do not require new media and
are off by default. are off by default.
--------------------------------------------- Building Official Installers ----- # Building Official Installers
We need help getting automated installers on all the platforms that ioquake3 We need help getting automated installers on all the platforms that ioquake3
supports. We don't necessarily care about all the installers being identical, supports. We don't necessarily care about all the installers being identical,
@ -722,25 +754,28 @@ but we have some general guidelines:
* Your installer will be mirrored to an "official" directory, thus making it * Your installer will be mirrored to an "official" directory, thus making it
a done deal. a done deal.
------------------------------------------------------------------ Credits -----
# Credits
Maintainers Maintainers
James Canete <use.less01@gmail.com>
Ludwig Nussel <ludwig.nussel@suse.de> * James Canete <use.less01@gmail.com>
Thilo Schulz <arny@ats.s.bawue.de> * Ludwig Nussel <ludwig.nussel@suse.de>
Tim Angus <tim@ngus.net> * Thilo Schulz <arny@ats.s.bawue.de>
Tony J. White <tjw@tjw.org> * Tim Angus <tim@ngus.net>
Zachary J. Slater <zachary@ioquake.org> * Tony J. White <tjw@tjw.org>
Zack Middleton <zturtleman@gmail.com> * Zachary J. Slater <zachary@ioquake.org>
* Zack Middleton <zturtleman@gmail.com>
Significant contributions from Significant contributions from
Ryan C. Gordon <icculus@icculus.org>
Andreas Kohn <andreas@syndrom23.de> * Ryan C. Gordon <icculus@icculus.org>
Joerg Dietrich <Dietrich_Joerg@t-online.de> * Andreas Kohn <andreas@syndrom23.de>
Stuart Dalton <badcdev@gmail.com> * Joerg Dietrich <Dietrich_Joerg@t-online.de>
Vincent S. Cojot <vincent at cojot dot name> * Stuart Dalton <badcdev@gmail.com>
optical <alex@rigbo.se> * Vincent S. Cojot <vincent at cojot dot name>
Aaron Gyes <floam@aaron.gy> * optical <alex@rigbo.se>
* Aaron Gyes <floam@aaron.gy>
[![githalytics.com alpha](https://cruel-carlota.pagodabox.com/f88af076b5015c62b699968f6772c3a5 "githalytics.com")](http://githalytics.com/ioquake/ioq3) [![githalytics.com alpha](https://cruel-carlota.pagodabox.com/f88af076b5015c62b699968f6772c3a5 "githalytics.com")](http://githalytics.com/ioquake/ioq3)