|
From: <LN...@us...> - 2008-11-10 15:21:49
|
Revision: 47
http://dawnofinfinity.svn.sourceforge.net/dawnofinfinity/?rev=47&view=rev
Author: LNSU
Date: 2008-11-10 15:21:46 +0000 (Mon, 10 Nov 2008)
Log Message:
-----------
files uploaded by accident
Removed Paths:
-------------
.svnignore
README
TODO
md4-readme.txt
voip-readme.txt
Deleted: .svnignore
===================================================================
--- .svnignore 2008-11-10 15:20:58 UTC (rev 46)
+++ .svnignore 2008-11-10 15:21:46 UTC (rev 47)
@@ -1,2 +0,0 @@
-build
-Makefile.local
Deleted: README
===================================================================
--- README 2008-11-10 15:20:58 UTC (rev 46)
+++ README 2008-11-10 15:21:46 UTC (rev 47)
@@ -1,501 +0,0 @@
- ,---------------------------------------.
- | _ _ ____ |
- | (_)___ __ _ _ _ __ _| |_____|__ / |
- | | / _ \/ _` | || / _` | / / -_)|_ \ |
- | |_\___/\__, |\_,_\__,_|_\_\___|___/ |
- | |_| |
- | |
- `---------- http://ioquake3.org --------'
-
-The intent of this project is to provide a baseline Quake 3 which may be used
-for further development. Some of the major features currently implemented are:
-
- * SDL backend
- * OpenAL sound API support (multiple speaker support and better sound
- quality)
- * Full x86_64 support on Linux
- * MinGW compilation support on Windows and cross compilation support on Linux
- * AVI video capture of demos
- * Much improved console autocompletion
- * Persistent console history
- * Colorized terminal output
- * Optional Ogg Vorbis support
- * Much improved QVM tools
- * Support for various esoteric operating systems
- * cl_guid support
- * HTTP/FTP download redirection (using cURL)
- * Multiuser support on Windows systems (user specific game data
- is stored in "%APPDATA%\Quake3")
- * PNG support
- * Many, many bug fixes
-
-The map editor and associated compiling tools are not included. We suggest you
-use a modern copy from http://www.qeradiant.com/.
-
-The original id software readme that accompanied the Q3 source release has been
-renamed to id-readme.txt so as to prevent confusion. Please refer to the
-web-site for updated status.
-
-
---------------------------------------------- Compilation and installation -----
-
-For *nix
- 1. Change to the directory containing this readme.
- 2. Run 'make'.
-
-For Windows, using MinGW
- 1. Download and install MinGW and MSys from http://www.mingw.org/.
- 2. Open an MSys terminal, and follow the instructions for compiling on *nix.
-
-For Mac OS X, building a Universal Binary
- 1. Install MacOSX SDK packages from XCode. For maximum compatibility,
- install MacOSX10.4u.sdk and MacOSX10.3.9.sdk, and MacOSX10.2.8.sdk.
- 2. Change to the directory containing this README file.
- 3. Run './make-macosx-ub.sh'
- 4. Copy the resulting ioquake3.app in /build/release-darwin-ub to your
- /Applications/ioquake3 folder.
-
-Installation, for *nix
- 1. Set the COPYDIR variable in the shell to be where you installed Quake 3
- to. By default it will be /usr/local/games/quake3 if you haven't set it.
- This is the path as used by the original Linux Q3 installer and subsequent
- point releases.
- 2. Run 'make copyfiles'.
-
-It is also possible to cross compile for Windows under *nix using MinGW. A
-script is available to build a cross compilation environment from
-http://www.libsdl.org/extras/win32/cross/build-cross.sh. The gcc/binutils
-version numbers that the script downloads may need to be altered.
-Alternatively, your distribution may have mingw32 packages available. On
-debian/Ubuntu, these are mingw32, mingw32-runtime and mingw32-binutils. Cross
-compiling is simply a case of using './cross-make-mingw.sh' in place of 'make',
-though you may find you need to change the value of the variables in this
-script to match your environment.
-
-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
- BUILD_SERVER - build the 'ioq3ded' server binary
- BUILD_CLIENT - build the 'ioquake3' client binary
- BUILD_CLIENT_SMP - build the 'ioquake3-smp' client binary
- BUILD_GAME_SO - build the game shared libraries
- BUILD_GAME_QVM - build the game qvms
- BUILD_STANDALONE - build binaries suited for stand-alone games
- USE_OPENAL - use OpenAL where available
- USE_OPENAL_DLOPEN - link with OpenAL at runtime
- USE_CURL - use libcurl for http/ftp download support
- USE_CURL_DLOPEN - link with libcurl at runtime
- USE_CODEC_VORBIS - enable Ogg Vorbis support
- USE_LOCAL_HEADERS - use headers local to ioq3 instead of system ones
- COPYDIR - the target installation directory
-
-The defaults for these variables differ depending on the target platform.
-
-
------------------------------------------------------------------- Console -----
-
-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
-
- s_useOpenAL - use the OpenAL sound backend if available
- s_alPrecache - cache OpenAL sounds before use
- s_alGain - the value of AL_GAIN for each source
- s_alSources - the total number of sources (memory) to
- allocate
- s_alDopplerFactor - the value passed to alDopplerFactor
- s_alDopplerSpeed - the value passed to alDopplerVelocity
- s_alMinDistance - the value of AL_REFERENCE_DISTANCE for
- each source
- s_alMaxDistance - the maximum distance before sounds start
- to become inaudible.
- s_alRolloff - the value of AL_ROLLOFF_FACTOR for each
- source
- s_alGraceDistance - after having passed MaxDistance, length
- until sounds are completely inaudible
- s_alDriver - which OpenAL library to use
- s_alDevice - which OpenAL device to use
- s_alAvailableDevices - list of available OpenAL devices
-
- s_sdlBits - SDL bit resolution
- s_sdlSpeed - SDL sample rate
- s_sdlChannels - SDL number of channels
- s_sdlDevSamps - SDL DMA buffer size override
- s_sdlMixSamps - SDL mix buffer size override
-
- com_ansiColor - enable use of ANSI escape codes in the tty
- com_altivec - enable use of altivec on PowerPC systems
- com_standalone - Run in standalone mode
- com_maxfpsUnfocused - Maximum frames per second when unfocused
- com_maxfpsMinimized - Maximum frames per second when minimized
- s_backend - read only, indicates the current sound
- backend
- s_muteWhenMinimized - mute sound when minimized
- in_joystickNo - select which joystick to use
- r_ext_texture_filter_anisotropic - anisotropic texture filtering
- cl_guidServerUniq - makes cl_guid unique for each server
- cl_cURLLib - filename of cURL library to load
- sv_dlURL - the base of the HTTP or FTP site that
- holds custom pk3 files for your server
-
- net_ip6 - IPv6 address to bind to
- net_port6 - port to bind to using the ipv6 address
- net_enabled - enable networking, bitmask. Add up
- number for option to enable it:
- enable ipv4 networking: 1
- enable ipv6 networking: 2
- prioritise ipv6 over ipv4: 4
- disable multicast support: 8
- net_mcast6addr - multicast address to use for scanning for
- ipv6 servers on the local network
- net_mcastiface - outgoing interface to use for scan
-
- r_zProj - distance of observer camera to projection
- plane in quake3 standard units
- r_greyscale - render black and white images
- r_stereoEnabled - enable stereo rendering for techniques
- like shutter glasses (untested)
- r_anaglyphMode - Enable rendering of anaglyph images
- red-cyan glasses: 1
- red-blue: 2
- red-green: 3
- To swap the colors for left and right eye
- just add 3 to the value for the wanted
- color combination. For red-blue and
- red-green you probably want to enable
- r_greyscale
- r_stereoSeparation - Control eye separation. Resulting
- separation is r_zProj divided by this
- value in quake3 standard units.
- See also
- http://wiki.ioquake3.org/Stereo_Rendering
- for more information
- r_sdlDriver - read only, indicates the SDL driver
- backend being used
-
-New commands
- video [filename] - start video capture (use with demo command)
- stopvideo - stop video capture
-
- print - print out the contents of a cvar
-
- banaddr <range> - ban an ip address range from joining a game on this
- server, valid <range> is either playernum or CIDR
- notation address range.
- exceptaddr <range> - exempt an ip address range from a ban.
- bandel <num> - delete ban <num>
- exceptdel <num> - delete exception <num>
- listbans - list all currently active bans and exceptions
- rehashbans - reload the banlist from serverbans.dat
- flushbans - delete all bans
-
------------------------------------------------------------- Miscellaneous -----
-
-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
-
-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
- put into a pk3 file. A pk3 file is just a zip file, so any compression tool
- that can create such files will work. The shared libraries should already be
- in the correct place. Use the instructions above to use them.
-
- Please bear in mind that you will not be able to play online using the demo
- data, nor is it something that we like to spend much time maintaining or
- supporting.
-
-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
- every instance of int to intptr_t in the declaration of the syscall function
- pointer and the dllEntry function. Also find the vmMain function for each
- module (usually in cg_main.c g_main.c etc.) and similarly replace the return
- value in the prototype with intptr_t (arg0, arg1, ...stay int).
-
- Add the following code snippet to q_shared.h:
-
- #ifdef Q3_VM
- typedef int intptr_t;
- #else
- #include <stdint.h>
- #endif
-
- 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
- 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
- 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
- and authentication server checks. In addition to being a straightforward Q3
- client, ioquake3 also purports to be a reliable and stable code base on which
- to base your game project.
-
- However, before you start compiling your own version of ioquake3, you have to
- ask yourself: Have we changed or will we need to change anything of importance
- in the engine?
-
- If your answer to this question is "no", it probably makes no sense to build
- your own binaries. Instead, you can just use the pre-built binaries on the
- website. Just make sure the game is called with:
-
- +set com_standalone 1 +set fs_game <yourgamedir>
-
- in any links/scripts you install for your users to start the game. Note that
- the com_standalone setting is rendered ineffective, if the binary detects pk3
- files in the directory "baseq3", so you cannot use that one as game dir.
-
- 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
- the PRODUCT_NAME and subsequent #defines in qcommon/q_shared.h with
- information appropriate for your project.
-
- While a lot of work has been put into ioquake3 that you can benefit from free
- of charge, it does not mean that you have no obligations to fulfil. Please be
- aware that as soon as you start distributing your game with an engine based on
- our sources we expect you to fully comply with the requirements as stated in
- the GPL. That includes making sources and modifications you made to the
- ioquake3 engine as well as the game-code used to compile the .qvm files for
- the game logic freely available to everyone. Furthermore, note that the "QIIIA
- Game Source License" prohibits distribution of mods that are intended to
- operate on a version of Q3 not sanctioned by id software:
-
- "with this Agreement, ID grants to you the non-exclusive and limited right
- to distribute copies of the Software ... for operation only with the full
- version of the software game QUAKE III ARENA"
-
- This means that if you're creating a standalone game, you cannot use said
- license on any portion of the product. As the only other license this code has
- been released under is the GPL, this is the only option.
-
- This does NOT mean that you cannot market this game commercially. The GPL does
- not prohibit commercial exploitation and all assets (e.g. textures, sounds,
- maps) created by yourself are your property and can be sold like every other
- game you find in stores.
-
-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
- sets cl_guid, but only if Punkbuster is enabled on the client.
-
- If cl_guidServerUniq is non-zero (the default), then this value is also
- pseudo-unique for each server a client connects to (based on IP:PORT of
- the server).
-
- The purpose of cl_guid is to add an identifier for each player on
- 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
-
-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
- 2 - do not use HTTP/FTP downloads
- 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.
-
- SDL's "Dead Key" behaviour makes the hard-coded toggleConsole binds ~ and `
- annoying to use on many non-US keyboards. In response, an additional
- toggleConsole bind has been added on the key combination Shift-Esc.
-
-Mouse Input On Windows
- ioq3 uses SDL to abstract away as much as possible from platform specific
- implementation details. Unfortunately, SDL 1.2 suffers from a number of bugs
- and limitations with respect to mouse input on the Windows platform. We
- provide a patch against the SDL subversion 1.2 branch which fixes the
- following problems:
-
- * DirectX (and thus DirectInput) driver not functional when using an
- OpenGL SDL_Surface.
-
- * DirectX (and thus DirectInput) driver not functional in windowed mode.
-
- * Mouse buttons 4-7 unusable with the DirectX driver due to DirectInput 5
- not exposing the required functionality. Use DirectInput 7 instead.
-
- * Low quality mouse input data when using the windib driver due to use of
- WM_MOUSEMOVE events. Use GetCursorPos API call instead.
-
- The patch can be found in misc/sdl-win32-mouse-fixes.diff.
-
-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
- Quake 3 client or earlier versions of ioquake3.
-
- Recent versions of GtkRadiant and q3map2 support PNG images without
- modification. However GtkRadiant is not aware that PNG textures are supported
- by ioquake3. To change this behaviour open the file 'q3.game' in the 'games'
- directory of the GtkRadiant base directory with an editor and change the
- line:
-
- texturetypes="tga jpg"
-
- to
-
- texturetypes="tga jpg png"
-
- Restart GtkRadiant and PNG textures are now available.
-
-
-------------------------------------------------------------- Contributing -----
-
-Please send all patches to bugzilla (https://bugzilla.icculus.org), or join the
-mailing list (qua...@ic...) and submit your patch there. The
-best case scenario is that you submit your patch to bugzilla, and then post the
-URL to the mailing list.
-
-The focus for ioq3 is to develop a stable base suitable for further development
-and provide players with the same Quake 3 experience they've had for years. As
-such ioq3 does not have any significant graphical enhancements and none are
-planned at this time. However, improved graphics and sound patches will be
-accepted as long as they are entirely optional, do not require new media and
-are off by default.
-
-
---------------------------------------------- Building Official Installers -----
-
-We need help getting automated installers on all the platforms that ioquake3
-supports. We don't neccesarily care about all the installers being identical,
-but we have some general guidelines:
-
- * Please include the id patch pk3s in your installer, which are available
- from http://ioquake3.org/patch-data/ subject to agreement to the id
- EULA. Your installer shall also ask the user to agree to this EULA (which
- is in the /web/include directory for your convenience) and subsequently
- refuse to continue the installation of the patch pk3s and pak0.pk3 if they
- do not.
-
- * Please don't require pak0.pk3, since not everyone using the engine
- plans on playing Quake 3 Arena on it. It's fine to (optionally) assist the
- user in copying the file or tell them how.
-
- * It is fine to just install the binaries without requiring id EULA agreement,
- providing pak0.pk3 and the patch pk3s are not refered to or included in the
- installer.
-
- * Please include at least an SDL so/dylib/dll on every platform.
-
- * Please include an OpenAL so/dylib/dll, since every platform should be using
- it by now.
-
- * Please contact the mailing list when you've made your installer.
-
- * Please be prepared to alter your installer on the whim of the maintainers.
-
- * Your installer will be mirrored to an "official" directory, thus making it
- a done deal.
-
------------------------------------------------------------------- Credits -----
-
-Maintainers
- Ludwig Nussel <lud...@su...>
- Thilo Schulz <ar...@at...>
- Tim Angus <ti...@ng...>
- Tony J. White <tj...@tj...>
- Zachary J. Slater <za...@io...>
-
-Significant contributions from
- Ryan C. Gordon <ic...@ic...>
- Andreas Kohn <an...@sy...>
- Joerg Dietrich <Die...@t-...>
- Stuart Dalton <ba...@gm...>
- Vincent S. Cojot <vincent at cojot dot name>
- optical <al...@ri...>
- Aaron Gyes <floam at sh dot nu>
Deleted: TODO
===================================================================
--- TODO 2008-11-10 15:20:58 UTC (rev 46)
+++ TODO 2008-11-10 15:21:46 UTC (rev 47)
@@ -1 +0,0 @@
-http://wiki.ioquake3.org/Ioquake3_Road_Map
Deleted: md4-readme.txt
===================================================================
--- md4-readme.txt 2008-11-10 15:20:58 UTC (rev 46)
+++ md4-readme.txt 2008-11-10 15:21:46 UTC (rev 47)
@@ -1,54 +0,0 @@
-##########################################################
-# Info about the MD4 format supported by the ioQ3 engine #
-##########################################################
-
-All models included with the original version of Quake3 from id soft are in
-the MD3 format. Animations in this format are realized by saving the position
-of every vertex in each frame which can make these files pretty large.
-
-ID started work on a newer format, the MD4 format which they never finished.
-This format uses a skeleton with all vertices "attached" to their bones.
-Because only the position of the bones must be stored for each frame and the
-number of bones is not very high this format is more efficient when
-doing animations.
-
-Raven software "finished" this format originally started by ID and included
-it in their game EliteForce. They called their model format "MDR" which is
-the name I have used throughout the sourcecode and I will continue using in
-this readme. Since the code on how to handle those MDR files was released
-under a GPL licence a long time ago, I was able to implement this format for
-Quake3 and do some efficiency improvements.
-To enable the support for this model format, go to qcommon/qfiles.h,
-remove the comment slashes for #define RAVENMDR and then compile the engine.
-
-Including finished MDR models in your projects is easy: just load the model
-files in your cgame code as you would normally load an MD3 model. The engine
-will expect the models to have a ".mdr" suffix.
-The rest is pretty much the same: Selecting the current animation frame,
-adding a skin to the model, etc..
-You can check out the original eliteforce game sourcecode if you want to
-have examples on using the md4s. The source can be got at:
-http://eliteforce2.filefront.com/
-You can also get reference MDR files there, just go to the model/skin
-section there and pick something to download.
-
-Now here comes the tricky part:
-Creating files with this format. There are tools to create these kinds of
-MDR files, like a plugin for Milkshape.
-
-A pretty good overview about MDR file creation is available at
-http://synapse.vgfort.com/
-You can find some tools for creating MDR files there.
-
-On a sidenote:
-There is an independent implementation of the MD4 file format available
-here:
-http://gongo.quakedev.com/
-At this time, ioquake3 has no support for these models though that may
-change in the future. Nevertheless, he has got a tool for skeletal
-animations that can possibly be hooked into the MDR format with some
-modifications.
-
-
-Good luck!
- - Thilo Schulz
Deleted: voip-readme.txt
===================================================================
--- voip-readme.txt 2008-11-10 15:20:58 UTC (rev 46)
+++ voip-readme.txt 2008-11-10 15:21:46 UTC (rev 47)
@@ -1,199 +0,0 @@
-ioquake3 VoIP support documentation.
-Last updated 6/25/2008 by Ryan C. Gordon.
-
-There are two ways to use VoIP in ioquake3. You can either use Mumble as an
- external program, for which ioq3 now supplies some basic hooks, or you can
- use the new built-in VoIP support.
-
-Mumble is here: http://mumble.sourceforge.net/ ... ioquake3 can supply it
- with your in-game position, but everything else is whatever features Mumble
- offers outside of the game. To use it, start Mumble before you start ioq3,
- and run the game with +set cl_useMumble 1. This should work on at least
- Linux, Mac OS X, and Windows, and probably other platforms Mumble supports
- in the future.
-
-The built-in stuff offers tighter in-game integration, works on any platform
- that ioquake3 supports, and doesn't require anything more than a recent build
- of the game. The rest of this document is concerned with the built-in VoIP
- support.
-
-
-Quick start for servers:
- - run a recent build of ioquake3.
- - Make sure your network settings are set to broadband.
-
-Quick start for clients:
- - run a recent build of ioquake3.
- - Make sure your network settings are set to broadband.
- - +set snd_useOpenAL 1
- - \bind q "+voiprecord"
- - Hook up a microphone, connect to a VoIP-supporting server.
- - hold down 'q' key and talk.
-
-
-Cvars you can set:
-
-sv_voip: set to "1" (the default) to enable server-side VoIP support. Set to
- "0" to disable. Without this, all VoIP packets are refused by the
- server, which means no one gets to use in-game VoIP.
-
-cl_voip: set to "1" (the default) to enable client-side VoIP support. Set to "0"
- to disable. Without this, you will neither be able to transmit voice nor
- hear other people.
-
-s_alCapture: set to "1" (the default) to have the audio layer open an OpenAL
- capture device. Without this set on sound startup, you'll never
- get bits from the microphone. This means you won't transmit, but
- you can still hear other people.
-
-cl_voipSendTarget: a string: "all" to broadcast to everyone, "none" to send
- to no one, "attacker" to send to the last person that hit
- you, "crosshair" to send to the people currently in your
- crosshair, or a comma-separated list of client numbers, like
- "0,7,2,23" ... an empty string is treated like "all". This
- is reset to "all" when connecting to a new server.
- Presumably mods will manage this cvar, not people, but
- keybind could be useful for the general cases. To send to
- just your team, or the opposing team, or a buddy list, you
- have to set a list of numbers.
-
-cl_voipUseVAD: set to "1" to automatically send audio when the game thinks you
- are talking, "0" (the default) to require the user to manually
- start transmitting, presumably with a keybind.
-
-cl_voipVADThreshold: only used if cl_voipUseVAD is "1" ... a value between
- 0.0 and 1.0 that signifies the volume of recorded audio
- that the game considers to be speech. You can use this
- to trim out breathing or perhaps the sound of your
- fingers tapping the keyboard and only transmit audio
- louder than that. You will have to experiment to find the
- value that works best for your hardware and play style.
- The default is "0.25", with "0.0" being silence and "1.0"
- being pretty-darn-loud.
-
-cl_voipSend: when set to "1", the game will capture audio from the microphone
- and transmit it, when "0", the game will not. The game can
- optimize for the "0" case (perhaps turning off audio recording).
- Lots of things set this on and off, including cl_voipUseVAD, so
- you probably should not touch this directly without knowing what
- you're doing, but perhaps mods can make use of it.
-
-cl_voipGainDuringCapture: This is the volume ("gain") of audio coming out of
- your speakers while you are recording sound for
- transmission. This is a value between 0.0 and 1.0,
- zero being silence and one being no reduction in
- volume. This prevents audio feedback and echo and
- such, but if you're listening in headphones that
- your mic won't pick up, you don't need to turn down
- the gain. Default is 0.2 (20% of normal volume). You
- ABSOLUTELY want to make your speakers quiet when you
- record, if the microphone might pick it up!
-
-cl_voipShowMeter: Set to "1" (the default) to show a volume meter as you are
- recording from the microphone, so you can see how well the
- game can "hear" you. Set to "0" to disable the display of
- the meter.
-
-cl_voipCaptureMult: Multiply recorded audio by this value after denoising.
- Defaults to 2.0 to _double_ the volume of your voice.
- This is to make you more audible if denoising eats away
- too much data. Set this to 1.0 to get no change, less to
- be quieter.
-
-
-
-Console commands:
-
-voip ignore <clientnum>
- Turn off incoming voice from player number <clientnum>. This will refuse to
- play any incoming audio from that player, and instruct the server to stop
- sending it, to save bandwidth. Use unignore to reenable. This is reset to
- unignored when (re)connecting to a server.
-
-voip gain unignore <clientnum>
- Turn on incoming voice from player number <clientnum>. This will start
- playing audio from this player again if you've previously done a "voip
- ignore", and instruct the server to start sending her voice packets to
- you again.
-
-voip gain muteall
- Turn off all incoming voice. This will refuse to play any incoming audio,
- and instruct the server to stop sending it, to save bandwidth. Use
- unmuteall to reenable. This is reset to unmuted when (re)connecting to
- a server.
-
-voip gain unmuteall
- Turn on incoming voice. This will start playing audio again if you've
- previously done a "voip muteall", and instruct the server to start
- sending voice packets to you again.
-
-voip gain <clientnum> <gain>
- Sets the volume ("gain") for player number <clientnum> to <gain> ...
- A gain of 0.0 is silence, and 2.0 doubles the volume. Use this if someone
- is too quiet or too loud.
-
-
-
-
-Actions:
-
-+voiprecord: The action you should bind to a key to record. This basically
- toggles cl_voipSend on and off. You don't need this if you're
- using cl_voipUseVAD, since that'll just record all the time and
- decide what parts of the recording are worth sending.
-
-
-
-More detailed/technical info:
-
-By default, all of this is enabled. You can build with or without VoIP
- support explicitly with USE_VOIP=[1|0] on the make command line.
-
-You currently must use OpenAL to speak, as we have ALC_EXT_capture support
- in place to pull data from the microphone. If you are using the SDL backend,
- you can still hear people, but not speak.
-
-There is no in-game UI to speak of: we encourage mods to add some. Largely
- they will just need to set cvars and run console commands for choosing
- voice targets and ignoring people, etc.
-
-This requires patched builds to be useful, but remains network compatible with
- legacy quake3 clients and servers. Clients and servers both report in their
- info strings whether they support VoIP, and won't send VoIP data to those not
- reporting support. If a stray VoIP packet makes it to a legacy build, it will
- be ignored without incident.
-
-VoIP packets are saved in demo files! You will be able to playback what you
- heard and what you said on VoIP-compatible clients. Legacy clients can also
- play demo files with VoIP packets in them, but just won't play the voice
- track. For VoIP-supported builds, it's nice to have a record of the
- trash-talk.
-
-Data is processed using the Speex narrowband codec, and is cross-platform.
- Bigendian and littleendian systems can speak to each other, as can 32 and
- 64-bit platforms.
-
-Bandwidth: VoIP data is broken up into 20 millisecond frames (this is a Speex
- requirement), and we try to push up to 12 Speex frames in one UDP packet
- (about a quarter of a second of audio)...we're using the narrowband codec:
- 8000Hz sample rate. In practice, a client should send about 2 kilobytes per
- second more when speaking, spread over about four bursts per second, plus a
- few bytes of state information. For comparison, this is less than the server
- sends when downloading files to the client without an http redirect. The
- server needs to rebroadcast the packet to all clients that should receive it
- (which may be less than the total connected players), so servers should
- assume they'll need to push (number of players speaking at once times number
- of people that should hear it) * 2 kilobytes per second. It shouldn't be a
- problem for any client or server on a broadband connection, although it may
- be painful for dialup users (but then again, everything is. They can just
- disable the cvar). The game will refuse to enable VoIP support if your have
- your network settings lower than "Cable/xDSL/LAN", just in case.
-
-The initial VoIP work was done by Ryan C. Gordon <ic...@ic...>, and
- he can be contacted with technical questions, if the ioq3 mailing list or
- forums aren't helpful.
-
-// end of voip-README.txt ...
-
-
-
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|