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.
--------------------------------------------- Compilation and installation -----
# Compilation and installation
For *nix
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
Makefile.local:
```
CFLAGS - use this for custom CFLAGS
V - set to show cc command line when building
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
COPYDIR - the target installation directory
TEMPDIR - specify user defined directory for temp files
```
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_aviFrameRate - the framerate to use when capturing video
cl_aviMotionJpeg - use the mjpeg codec when capturing video
@ -271,8 +275,11 @@ New cvars
cl_aviMotionJpeg is enabled
r_mode -2 - This new video mode automatically uses the
desktop resolution.
```
New commands
## New commands
```
video [filename] - start video capture (use with demo command)
stopvideo - stop video capture
stopmusic - stop background music
@ -307,15 +314,18 @@ New commands
all bots even if someone is named "allbots")
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
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
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
@ -327,7 +337,8 @@ Using Demo Data Files
data, nor is it something that we like to spend much time maintaining or
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
next frame when com_maxfps was hit. This will improve your CPU load
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
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
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
@ -346,19 +358,20 @@ Using HTTP/FTP Download Support (Server)
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"
`"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
* 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,
that ioquake3 sets which is `"ioQ3://{SERVER_IP}:{SERVER_PORT}"`. For,
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
@ -366,46 +379,58 @@ Using HTTP/FTP Download Support (Server)
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.
Using HTTP/FTP Download Support (Client)
## 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
* 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
## 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\"
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"
C:\Windows\Application Data\Quake3
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.
In order to access this directory more easily, the installer may create a
Shortcut which has its target set to:
"%APPDATA%\Quake3\"
%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
## SDL Keyboard Differences
ioquake3 clients have different keyboard behaviour compared to the original
Quake3 clients.
@ -445,7 +470,9 @@ SDL Keyboard Differences
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)
## 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
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.
---------------------------------------------------- README for Developers -----
# README for Developers
## pk3dir
pk3dir
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
all files specific to your map in one directory tree and easily zip this
folder for distribution.
64bit mods
## 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
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
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
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
is necessary to fix a bug involving the optimizing pass of the x86 vm JIT
compiler.
Creating standalone games
## Creating standalone games
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
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_gamename foo
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
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
game you find in stores.
Network protocols
## Network protocols
There are now two cvars that give you some degree of freedom over the reported
protocol versions between clients and servers: "com_protocol" and
"com_legacyprotocol".
@ -627,7 +657,7 @@ Network protocols
game you can still enable it in q_shared.h by defining
LEGACY_PROTOCOL.
cl_guid Support
## 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
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
useful for blocking access. However, it can have at least two uses in
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
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
@ -665,7 +696,8 @@ PNG support
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
differences in earlier versions of Windows' IPv6 stack. There is no MinGW
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.
------------------------------------------------------------- Contributing -----
# Contributing
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
@ -689,7 +721,7 @@ accepted as long as they are entirely optional, do not require new media and
are off by default.
--------------------------------------------- Building Official Installers -----
# Building Official Installers
We need help getting automated installers on all the platforms that ioquake3
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
a done deal.
------------------------------------------------------------------ Credits -----
# Credits
Maintainers
James Canete <use.less01@gmail.com>
Ludwig Nussel <ludwig.nussel@suse.de>
Thilo Schulz <arny@ats.s.bawue.de>
Tim Angus <tim@ngus.net>
Tony J. White <tjw@tjw.org>
Zachary J. Slater <zachary@ioquake.org>
Zack Middleton <zturtleman@gmail.com>
* James Canete <use.less01@gmail.com>
* Ludwig Nussel <ludwig.nussel@suse.de>
* Thilo Schulz <arny@ats.s.bawue.de>
* Tim Angus <tim@ngus.net>
* Tony J. White <tjw@tjw.org>
* Zachary J. Slater <zachary@ioquake.org>
* Zack Middleton <zturtleman@gmail.com>
Significant contributions from
Ryan C. Gordon <icculus@icculus.org>
Andreas Kohn <andreas@syndrom23.de>
Joerg Dietrich <Dietrich_Joerg@t-online.de>
Stuart Dalton <badcdev@gmail.com>
Vincent S. Cojot <vincent at cojot dot name>
optical <alex@rigbo.se>
Aaron Gyes <floam@aaron.gy>
* Ryan C. Gordon <icculus@icculus.org>
* Andreas Kohn <andreas@syndrom23.de>
* Joerg Dietrich <Dietrich_Joerg@t-online.de>
* Stuart Dalton <badcdev@gmail.com>
* Vincent S. Cojot <vincent at cojot dot name>
* 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)