This is the official Quake2World Online Manual.
Quake2World is a Free, standalone first person shooter video game. Our goal is to bring the fun and excitement of straightforward old-school death-match gaming to a more contemporary platform, and perhaps to a new generation of gamers. Quake2World is multiplayer-only. There is no single-player or offline gameplay mode. If you have no Internet and no friends, Quake2World might not be for you.
Quake2World has a trim but solid feature set. It's better to do a few things really well than to do a hundred things poorly.
Quake2World system requirements are relatively modest when running with low-quality settings, however we recommend a fairly modern machine in order to enjoy effects like per-pixel lighting.
Base system requirements
Recommended system requirements
Quake2World is under development, and moves quickly. Some of the game data has been borrowed from other projects, and is in placeholder status. You should only install Quake2World if you wish to preview or contribute to the project.
To install Quake2World, follow the instructions for your operating system below.
Update.bat.Ensure you have the following dependencies:
subversion, gcc, autoconf, automake, libcurl, libsdl, libsdl-image, libtool
On Ubuntu 8.10, simply run:
sudo apt-get install subversion autoconf automake libtool libcurl4-openssl-dev libsdl-image1.2-dev libsdl-mixer1.2-dev
Compile the source code and install the binaries:
svn co svn://jdolan.dyndns.org/quake2world/trunk ~/quake2world
cd ~/quake2world
autoreconf -i
./configure
make && sudo make install rsync-data
Run quake2world
Install Darwin Ports, including the latest Xcode tools. Be sure to add /opt/local/bin to your $PATH.
Run the following commands from a Terminal: Applications->Utilities->Terminal.app
sudo port -d selfupdate
sudo port install autoconf automake glut libtool libsdl_image libsdl_mixer
Follow the Linux commands listed above, but run ./configure with these options:
./configure CPPFLAGS="-I/usr/X11/include/ -I/opt/local/include/" LDFLAGS=-L/usr/X11/lib --prefix=/opt/local/
Ensure the game data directory exists:
sudo mkdir -p /opt/local/share
Start X11: Applications->Utilities->X11.app
Run quake2world
Ensure you have the following dependencies, you can install them via ports or pkg_add:
subversion, gmake, automake, autoconf, sdl, sdl-image, libcurl, sdl-mixer
Make sure to set the following environment variables:
export AUTOCONF_VERSION=2.61
export AUTOMAKE_VERSION=1.9
Compile the source code and install the binaries:
svn co svn://jdolan.dyndns.org/quake2world/trunk ~/quake2world
cd ~/quake2world
autoreconf -i
./configure CFLAGS=-I/usr/local/include
gmake && gmake install rsync-data
The following steps need to be performed as root.
Checkout the overlay:
mkdir -p /usr/local/portage; cd /usr/local/portage; svn co svn://jdolan.dyndns.org/quake2world/trunk/gentoo/quake2world-overlay
Add the overlay to your make.conf:
echo 'PORTDIR_OVERLAY="${PORTDIR_OVERLAY} /usr/portage/local/quake2world-overlay"' >> /etc/make.conf
Emerge quake2world:
emerge -av quake2world
This is a little more complex, but easier to maintain, especially if you use multiple overlays. The following steps need to be performed as root.
Install layman, if it's not installed:
emerge layman -av
Configure portage to use layman overlays:
echo "source /usr/portage/local/layman/make.conf" >> /etc/make.conf
Add the quake2world layman source:
nano /etc/layman/layman.cfg
...
overlays = http://www.gentoo.org/proj/en/overlays/layman-global.txt
http://jdolan.dyndns.org/svn/quake2world/trunk/gentoo/quake2world-layman-list.xml
...
nocheck : yes
...
Add the quake2world overlay:
layman -a quake2world
Install quake2word:
emerge -av quake2world
Quake2World follows a rolling release development model. You should ensure that your copy of Quake2World is up to date on a regular basis. Follow the instructions for your operating system below.
Update.bat periodically to ensure you have the latest binaries and game data.Update your working copy of the source code, recompile it, and refresh your game data.
cd ~/quake2world
svn up
make && sudo make install rsync-data
Update your working copy of the source code, recompile it, and refresh your game data.
cd ~/quake2world
svn up
make && sudo make install rsync-data
Update data:
/usr/games/bin/quake2world-update-data
Update code:
cd /usr/local/portage/quake2world-overlay; svn up; emerge -av quake2world
Update data:
/usr/games/bin/quake2world-update-data
Update code:
layman -S; emerge -av quake2world
Upon starting the game, you're presented with a console. There you may enter commands to view levels offline, connect to servers, change your player's name and model, customize your controls, etc. See Client Configuration and the related sub-pages for a full list of console variables and commands.
To gain your bearings, try viewing a level offline. Type map torn to spawn into cardo's level Torn Glory. By default, the w a s d keys will control your players movement, and your mouse will control your aim. The Levels section contains a full listing of maps available for offline viewing and online play.
Quake2World strongly adheres to the philosophy of sane defaults, i.e. it should just work out of the box. Inexperienced players may find that the stock configuration suits them perfectly, while veterans will want to tweak key bindings and advanced preferences. Of course, there are a some settings that you'll need to adjust to suit your computer.
Just like QuakeWorld, Quake2World does not have an in-game menu system. The game is configured via a plain text file. Several alternative configurations are provided with the game. You can find them in the quake2world/default/configs directory.
Userinfo Variables
0 through 3 are valid. Defaults to 0 (unfiltered).6000 through 25000 are valid. Defaults to 10000.Remote Console Variables
Benchmarking Variables
1 for benchmarking. Defaults to 0.General Variables
0 means disabled, 1 means enabled. Defaults to 1.0 means disabled, 1 means enabled. Defaults to 1.0 means disabled, 1 means enabled. Defaults to 0.0 means disabled, 1 means enabled. Defaults to 1.0 means disabled, 1 means enabled. Defaults to 1.0 to 7 are valid. Defaults to 1.0 means disabled, 1 means enabled. Defaults to 1.0 means disabled, 1 means enabled. Defaults to 1.10 to 179 are valid. Defaults to 100.0 means disabled, 1 means enabled. Defaults to 1.10 are valid. Defaults to 0 (unlimited).10 and less than 101 are valid. Defaults to 0 (unlimited).0 means disabled, 1 means enabled. Defaults to 1.0 means disabled, 1 means enabled. Defaults to 1.1 means simple trail, 2 means complex. Defaults to 2.0 means disabled, 1 means enabled. Defaults to 0.0 means disabled, 1 means enabled. Defaults to 0.0 through 3 are valid. 0 means disabled, 3 means verbose. Defaults to 0.120.40 through 100 are valid. Defaults to 100.0 means disabled, positive values increase intensity. Defaults to 1.Commands
The Quake2World renderer is highly configurable, and extremely performant on current generation hardware. It requires an OpenGL implementation of version 1.2.1 or better, and will use features from later versions (GLSL, VBO, ..) if available.
Variables
Commands
~/.quake2world/default/screenshots/quake2world00.tga.| Command | Default Bind | Description |
|---|---|---|
| +attack | MOUSE1 | Fire weapon. |
| +forward | W | Move forward. |
| +back | S | Move backward. |
| +moveleft | A | Strafe left. |
| +moveright | D | Strafe right. |
| +moveup | SPACE | Jump or swim upward. |
| +movedown | C | Crouch or swim downward. |
| +speed | SHIFT | Toggle walk/run. |
| messagemode | T | Chat to other players. |
| messagemode2 | Y | Chat to teammates. |
| score | X | Toggle scoreboard. |
| screenshot | F12 | Capture a screenshot. |
| spectate | Toggle spectator mode. | |
| join <team> | Join game. | |
| vote <command|yes|no> | F1|F2 | Call vote, or vote on pending vote. |
Location files are strictly-formatted text files which contain coordinate-description pairs. They are used by Team Chat Macros to quickly report whereabouts to your team mates. You may create your own location files for any level. Simply spawn into a level, navigate to a key position in the level, and issue addloc My description. Repeat until you have captured a satisfactory number of locations -- you may store up to 1024 locations per level. When finished, issue savelocs before exiting the level. Your locations will be flushed to default/maps/level.loc, where level is the .bsp name.
Example: addloc above the rocket launcher
say_team I am %l with %h health.
newbie> I am above the rocket launcher with 94 health.
savelocs
You're encouraged to share your location files with friends, or post them in the Forums for others to download and use.
Quake2World supports macro expansion for chat messages. This can be combined and embedded into chat binds to alert your teammates of your status. A table of available macros and their expanded values are listed below.
| Macro | Value |
|---|---|
| %l | Location.* |
| %L | Line of sight.* |
| %h | Health points. |
| %a | Armor points. |
| %d | Last dropped item. |
* Requires a valid location file for the current level. Example: bind MOUSE3 "say_team I am at %l with %h health and %a armor."
bind MOUSE4 "say_team Dropping %d at %l."
The Quake2World server is a hardened and streamlined reincarnation of its predecessor. Dedicated versus Listen Servers A dedicated server is an instance of Quake2World which only hosts a game for other players; no one is sitting in front of the machine and playing. These are what you'll find when you type the servers command in the client. To run a dedicated server, you'll want a spare (GNU/Linux) computer and a relatively static IP address. The command will look something like:
quake2world +set dedicated 1 +exec server.cfgYou may want to consider running your dedicated server with the GNU Screen utility, in which case the command would become:
screen -S q2w quake2world +set dedicated 1 +exec server.cfgA listen server is one which runs on your client computer. Listen servers are suitable for small LAN games with your friends. To start one, simply increase sv_maxclients to a value of e.g. 4, and load a level:
sv_maxclients 4
map fracturesGameplay, Teams & Matches The default game module encapsulates some of the most popular classic Quake II gameplay modes: Deathmatch, Capture, Instagib, and Rocket Arena. It also offers teams support, and match mode where players must ready up for a game to begin. You can imagine some interesting permutations of these settings:
#instagib with teams
g_gameplay instagib; g_teams 1
#rocket arena with balanced teams
g_gameplay arena; g_rounds 1; g_teams 2
#team deathmatch, match mode
g_gameplay deathmatch; g_teams 1; g_match 1Map Rotations The Quake2World server uses default/maps.lst to iterate through levels. The file format is rather straight forward, with level configurations specified within curly braces {}. As many as 64 levels can be specified and active within maps.lst. Maps may optionally have a floating point weight associated to them via default/maps.lst. This impacts their probability for selection when g_randommap is 1. Setting a map's weight to 0 will prevent it from being selected in either random or incremental rotations, but it will still be available via the vote command. HTTP Downloading The Quake2World client supports HTTP downloading of game content via libcURL. This enables players to download levels, sounds, etc.. from a web server, preferably on a different network than the game server, at high speeds. Setting this up is relatively simple; all you need is some web space. Copy any custom game media to a web-accessible location on your web server, maintaining the Quake2World directory structure, e.g.
/var/www/htdocs/quake2world/default/ven_dm3.pak
/var/www/htdocs/quake2world/default/maps/broken1.bsp
/var/www/htdocs/quake2world/default/maps/ztn2dm4.bspTo inform clients of this resource, set sv_downloadurl in server.cfg to the base directory of this resource, e.g. http://my.host.com/quake2world. Obey Thy Master In order for your server to be seen by the public, you must tell the master server about it. Set sv_public 1 in server.cfg. You should then see some messages in the console about heartbeats and pings:
Sending heartbeat to 81.169.143.159:1996
Ping acknowledge from 81.169.143.159:1996Logging and Statistics The server supports two different logging mechanisms: flat files, and a MySQL database. While flat files are easy to work with, a database enables much more interesting and flexible (i.e. realtime) analysis. To produce an old-school QuakeWorld fraglog file, set g_fraglog 1. For logging to MySQL, you must first provision a suitable database and install the schema found in src/default/schema.sql. Then, set the following in server.cfg:
g_mysql 1
g_mysqlhost localhost
g_mysqluser user
g_mysqlpassword password
g_mysqldb q2wFor producing realtime statistics from the database, see the Stats package.
More info coming soon.
General information and tips
Quake2World has multiple game modes. This document explains what you are supposed to do in them and how to do it. Let's start with some general things and come to the specific game modes later.
You'll have to frag your enemies and stay alive to be successfull in any of the game modes. This means that you'll need to use the map and the items available on it to your advantage. Make sure to grab both weapons and health/armor!
Deathmatch / Free-For-All (FFA)
Classic deathmatch. There's many players but no teams in this gamemode, so just shoot at everything that moves and expect others to do the same.
The rough idea in this mode is to frag as many opponents as possible without getting yourself killed too often. The player who reaches the fraglimit first (fraglimit setting) or the player who has most frags when the timelimit is hit (timelimit mode) is the winner.
Capture the Flag (CTF)
Two teams (blue and red) fight against each other in this mode. Each team has a base that holds its flag. The idea is to steal the enemy flag and take it back to your base. You can only score a point if your own flag is still at your base, so better have someone defend it.
If a flag carrier is fragged he/she will drop the flag. Run over it to teleport it back to your base (if it's yours) or to pick it up (if it belongs to the other team).
Quake2World includes a varied collection of levels with the default installation. Some are remakes of Quake series classics, while others are original creations.
Originally created for Quake, Tyrann's classic Aggressor has been ported to numerous games -- a testament to its gameplay and build quality. The author describes the level:
"Brutal vertical action is the order of the day here. A medium sized base map that plays well with anywhere from 2-8 players, the more the bloodier."
Aggressor is an excellent level for one-versus-one games, and does just fine with small free-for-all groups too.
Type map aggressor at the console to play this map.
Aghast is a dank, swampy deathmatch level originally created by Vondur for Quake. It's been reworked with textures from the Quake Retexture Project. This level is suited for small free-for-all or team deathmatch games.
Type map aghast at the console to play this map.
Catfight is an original level created by Lava Croft and maintained by keres. This unique and overwhelmingly vertical arena is dressed up in the Andromeda texture set from Speedy, but with a frosty twist. Enjoy with 3-8 players free-for-all.
Type map catfight at the console to play this map.
Devolver by TRaK is a moderately sized deathmatch level set in an abandoned, vaguely futuristic outpost. Adorned in a mix of textures from Evil Lair and Idolator, Devolver will comfortably hold 3 to 6 players free-for-all.
Type map devolver at the console to play this map.
Dies Irae by Shadow is a large TDM and FFA map that is best suited for 6 or more players.
Type map diesirae at the console to play this map.
This Quake2World original by spirit is a fast-paced tourney map best suited for some serious 1vs1 action. Set in a down-and-out chemical weapons plant on Saturn's moon Titan, this map offers no room to hide and demands precise and fast movement. Lots of vertical action, a good load of deadly weapons and a dense atmosphere make this rather small map a great place to fight your worst enemies and best friends alike.
The excellent textures were made by Rorshach.
Type map lilith at the console to play this map.
Stress Fractures is one of Jester's finest Quake2 deathmatch levels, and it's been given a dose of winter for Quake2World, complements of Yogi's Arctic texture set. Although suitable for stalking one-versus-one games, this map is ideal for 4 to 8 players free-for-all.
Type map fractures at the console to play this map.
Everyone's (second?) favorite Quake2 level, The Frag Pipe, has been completely re-brushed and reworked for Quake2World by TRaK. Featuring textures from the Quake2Evolved project, The Frag Pipe will teleport you back to 1998 with style. Best for one-versus-one or small to medium sized free-for-all battles.
Type map q2wdm3 at the console to play this map.
Creating levels for Quake2World is not unlike creating levels for Quake 2 or Quake 3: Arena. We recommend that you use Ingar's build of the NetRadiant editor, as it includes a game profile and preferences for Quake2World.
If you are new to Quake 2 level editing, you should start with Game Design's Quake 2 Guide, and return to this page once you've made your first simple level. Otherwise, please continue to one of the subsections below.
Quake2World supports all popular image formats for world textures: TGA, PNG, JPG, and even Quake 2's WAL format. All of the textures distributed with Quake2World may be reused in other levels, provided you pass along whatever documentation comes with them. Please avoid creating levels with textures that may not be freely distributed.
Here are some sites which provide excellent quality, legally distributable textures:
Quake2World's bump mapping (per-pixel lighting) uses a combination of deluxe mapping, dot3-bump mapping, and parallax mapping. This technique requires that you provide normalmap images for your world textures. Generally speaking, you'll want to provide a normalmap image for every opaque world texture appearing in your level. Materials textures like animations and pulses do not require normalmaps. The standard convention is to name your normalmaps with the _nm or _norm suffix. For example, if your texture is named torn/floor1.tga, the corresponding normalmap image should be named torn/floor1_nm.tga or torn/floor1_norm.tga. For parallax mapping, the format of your normalmap textures must be RGBA, with alpha channel encoded height. Creating proper normalmaps from diffuse textures can be difficult and tedious. We recommend that you elect to use textures specifically designed for this rendering technique, that should come with properly encoded normalmaps. Should you choose a texture set that does not, you might find this tutorial for creating normalmaps useful. There are several free tools available for creating and working with normalmaps:
The tutorial above is only one of many effective ways of creating normalmaps. There are several alternative methods, each with their own advantages:
A script for batch-processing textures into normalmaps with the GIMP Normalmap plugin can be found in src/tools/batch-normalmaps. However, batch-conversion will generally produce lesser-quality normalmaps than ones that are hand-tuned.
Additionally, you can and should tune each texture's bump mapping properties via the materials system.
Several surface flags are available in Quake2World that were not previously supported by Quake 2.
The worldspawn entity is the core of the .map file structure. All world brushes appear within the context of the worldspawn entity. Quake2World adds several new properties to the worldspawn entity which impact everything from atmospheric weather to gameplay modes to lightmap resolution.
The following worldspawn keys are resolved at runtime, and may be overridden at the server operator's discretion via maps.lst.
^2S^7tress ^2F^7ractures by ^2J^7ester. Color escape sequences are supported. Avoid newline characters.unit1_, thundersky_, etc..rain fog 1.0 0.9 0.8.800.0 is off, 1 is on, and 2 tries to enforce balanced teams.0 is off, 1 is on, and 2 tries to enforce balanced teams.0 is off, 1 is on.rocket launcher, super shotgun.The following worldspawn keys are resolved at compile time, and must be set before BSP compilation.
0.07 0.06 0.06. A small ambient factor is recommended for most levels.1.0 is default, all positive floating point values are valid.1.0. Values significantly higher than 1.0 are not recommended.16 (1/16). A value of 8 will produce sharper lightmaps, but will dramatically lengthen your static lighting compile times. In fact, setting this to 32 during development is a nice trick for speeding up your level design process.1.0. Values from 0.5 to 3.0 are most useful.1024 is recommended. Lower values may reduce artifacts, while higher values may reduce r_speeds.-80 220.1.0 0.9 0.8.0 to 255 are valid, 40 to 150 typically produce best looking results.The misc_emit entity is a client-sided entity type used to enrich your levels with non-vital information such as static meshes, particle torches, flickering lights, and ambient sounds. As many as 512 misc_emit entities may be added to a given level. This entity is highly customizable based on several key-value pairs.
Similar to Quake 2's spawnflags key-value pair, a set of flags exists for enabling certain misc_emit features. Whenever possible, these are automatically resolved by the game engine based on the key-value pairs you have set on the entity. Still, you will sometimes need to add these values to the flags key-value pair manually.
EMIT_LIGHT 1
EMIT_SPARKS 2
EMIT_STEAM 4
EMIT_FLAME 8
EMIT_CORONA 16
EMIT_SOUND 32
EMIT_MODEL 64
EMIT_SPARKS EMIT_MODEL.EMIT_LIGHT EMIT_CORONA.EMIT_SPARKS. Default is 12.0.0 and smaller than 5.0 are most useful. Applicable to EMIT_LIGHT EMIT_SPARKS EMIT_STEAM EMIT_FLAME EMIT_SOUND. Default is 0.01.EMIT_LIGHT EMIT_SPARKS EMIT_STEAM EMIT_FLAME EMIT_SOUND. Use the drift key to add variance. Sane defaults are used where possible.outpost/tree. The model must be a static mesh (i.e. not animated). It will be positioned according to the angles key. Applicable only to EMIT_MODEL, which is set when this key is present.EMIT_LIGHT EMIT_CORONA EMIT_FLAME. Defaults are 1.5, 12.0 and 1.0 respectively.aghast/drip. When no hz value is provided to emits which have a sound key, they are treated as looped ambient sounds. Applicable only to EMIT_SOUND, which is set when this key is present.EMIT_STEAMEMIT_SOUNDA torch flame, automatically accompanied by a crackling fire sound effect:
{
// entity 1
"classname" "misc_emit"
"origin" "-24 512 256"
"flags" "8"
}
An ambient drip:
{
// entity 2
"classname" "misc_emit"
"origin" "786 1284 16"
"sound" "aghast/drip"
}
A flickering light with sparks:
{
// entity 3
"classname" "misc_emit"
"origin" "-224 640 -64"
"angles" "0 270 0"
"flags" "3"
"color" "1.0 0.9 0.5"
"radius" "1.25"
"count" "20"
"hz" "0.25"
"drift" "0.5"
}
A steam emitter, pointing downward and slightly north-east, and automatically accompanied by a hissing sound effect:
{
// entity 4
"classname" "misc_emit"
"origin" "216 -48 512"
"flags" "4"
"velocity" "10 10 -40"
}
A static mesh tree:
{
// entity 5
"classname" "misc_emit"
"origin" "-1024 -42 168"
"model" "outpost/tree"
"angles" "4 270 0"
}
The vast majority of Quake2World entities are carryovers from Quake 2. You'll notice, however, that several items have been removed, and a few new ones are available. Also, some old items have new spawnflags to alter their behavior. They are as follows:
spawnflags to 4 on any item to enable this behavior.spawnflags to 2 for these entities will make them emit a "rising rings" effect to help them stand out.Quake2World provides its own cross-platform BSP compilation tool called q2wmap. The compiler is based on the original Quake 2 tools, but in addition offers the following:
In addition to these things, the q2wmap source code is Valgrind clean. The stock tools are riddled with dangerous instructions and memory leaks.
Invoking the compiler is simple and straightforward. You should consider running it via a command prompt or shell rather than through GtkRadiant's build menu.
Standard full compile:
q2wmap -bsp -vis -light maps/my.map
Fast vis, extra light, two threads:
q2wmap -t 2 -bsp -vis -fast -light -extra maps/my.map
Materials file generation:
q2wmap -mat maps/my.map
Pakfile generation (produces map-my.pak):
q2wmap -pak maps/my.map
The materials system provides a flexible framework to enhance your levels with animations, light flares, environment maps, terrain blending, and other effects. If you are familiar with Quake 3 Arena's "shaders" system, you'll be right at home with materials.
A material is a set of directives and parameters for an individual world texture. Each texture in your level can have zero or one material definition. Materials are defined in a plain text file called materials/mymap.mat, where mymap is the name of your .bsp file. The BSP compiler can generate a default materials file for your level to get you started: q2wmap -mat maps/my.map
Materials are comprised of a material definition, and then zero or more layers called stages. Each stage can describe one or more effect, and each effect is blended with the result of the prior stages. The basic structure of a materials file is:
{
# Material definition
material path/to/texture1
parameters
{
# Stage definition
texture path/to/texture2
parameters
}
...
}
The material definition specifies the texture name and per-pixel lighting parameters.
${texture}_nm and ${texture}_norm. Typically, this directive is omitted. See normalmaps and bump mappingb parameter is required, and must be a positive floating point value, or 0.0. The default value is 1.0.1.0 requires high-quality normalmaps, with properly encoded height values. The p parameter is required, and must be a positive floating point value, or 0.0. The default value is 1.0.h parameter is required, and must be a positive floating point value, or 0.0. The default value is 1.0.s parameter is required, and must be a positive floating point value, or 0.0. The default value is 1.0.It is a best practice to define all material parameters for your opaque world surfaces, as they are eligible for per-pixel lighting. Quake2World provides safe defaults when you omit these parameters, but tuning them will often benefit the appearance of your level.
{
material evil6/stone_floor
bump 3.0
hardness 1.5
parallax 1.2
specular 3.0
}
Note that blended materials such as glass or foliage do not support per-pixel lighting, and so you may safely omit the material parameters for them.
{
material office/glass
{
envmap office/glass
}
}
There are four types of stages: texture envmap lightmap flare. A stage must start with a type declaration, e.g. texture lunaran/pad1_fx, envmap 0, lightmap, flare 1, etc..
Texture stages are the most versatile and complex type, and must always declare a valid texture image, e.g. texture lunaran/pad1_fx. The following listing describes the texture stage directives.
1, e.g. lunaran/computer1, with subsequent frames following in sequence. The frames parameter specifies the number of textures which comprise the animation. The hz parameter specifies the frequency of the effect. Both are required, and must be a positive integer and positive floating point number respectively.src and dest parameters are GL constants, e.g. blend GL_ONE GL_SRC_ALPHA. The default blend function is GL_ONE GL_ONE_MINUS_SRC_ALPHA.r g b are each required, and must each be floating point numbers between 0.0 and 1.0.hz parameter specifies the frequency of the effect. It is required and must be a positive floating point number.hz parameter specifies the speed of the rotation. It is required, and must be a positive floating point number.amp parameter specifies the scale of the stretch, while hz specifies the frequency. Both are required, and must be positive floating point numbers.ceil and floor parameters specify the highest and lowest Z-axis coordinates where blending will occur. At Z coordinates less than floor, the base material texture will appear; at Z coordinates greater than ceil, the stage texture will appear. Linear interpolation is used to blend the two textures at Z coordinates between ceil and floor. Both parameters are required, and must be floating point numbers.intensity parameter specifies the overall amplification of the effect. It is required, and must be between 0.0 and 1.0.Both terrain and dirtmap stages support per-pixel lighting, thus it is possible to create bumpmapped terrain. To do this, declare your terrain stage texture with a material definition prior to the base material.
{
material organics/grass
...
}
{
material organics/dirt
...
{
texture organics/grass
terrain 32.0 128.0
}
}
Environment map stages are used to simulate reflections on metal, water, glass, etc. For convenience, they may be declared with numeric values to take advantage of several built-in effect textures, e.g. envmap 0. Alternatively, a unique texture can also be provided, e.g. envmap envmaps/my_envmap.
Environment map stages do not currently support any unique directives, but do support blend color scroll.s scroll.t, described above. If a color is not provided to the stage definition, Quake2World automatically uses the surface's average static lighting color to shade the environment map.
{
material office/glass
{
envmap office/glass_envmap
blend GL_SRC_ALPHA GL_ONE
color 0.9 0.9 1.0
}
}
Lightmap stages are used to blend in statically computed lighting information. This is typically applied as the last drawn stage, and is useful for shading opaque or mostly opaque stages such as animations. Lightmap stages are declared by simply beginning the stage with the lightmap type name. Lightmap stages do not support any unique directives.
{
material lunaran/computer0
...
{
anim 4 0.3
}
{
lightmap
}
}
Flare stages are used to add flares (coronas) to surfaces such as light fixtures. For convenience, flare stages may reference numeric values to take advantage of several built-in effect textures, e.g. flare 1. Alternatively, a unique texture can also be provided, e.g. flare flares/my_flare.
Flare stages do not currently support any unique directives, but do support color scale.s scale.t described above. If a color is not provided to the stage definition, Quake2World automatically uses the surface's average static lighting color to shade the flare. Either of the scale.s or scale.t directives can be used to influence the size of the flare produced by this stage.
{
material tech/small_light
...
{
flare tech/flare1
scale.s 1.5
}
}
The best way to learn the materials system is to study some of the materials files that come with Quake2World. These are conveniently available in the Subversion repository.
Coming soon.
When will Quake2World be released?
When it is ready. Currently, the project's release is gated by artwork. If you are an artist, or know one, and would like to help us, please get in touch.
Where are the in-game menus?
Like QuakeWorld, Quake2World does not have in-game menus. See Client Configuration for a list of console variables and commands.
How do I start a game?
To start a local game, type map fractures at the console. In order for other players on your LAN to connect to your computer, you must first set sv_maxclients to a value higher than 1 before starting the level.
Why is my framerate very low?
Quake2World will use GLSL effects if your video card claims it can support them, even if it can't run them very well. Try disabling r_lights, r_bumpmap, and finally r_programs in that order until you have a reasonable framerate.
How can I get more help?
You can always find a team member in #quetoo on irc.freenode.net. If you're new to IRC, we recommend X-Chat 2 (X-Chat 2 for Windows).
The Quake2World source code is licensed under the GNU General Public License Version 2.0. For artwork and media, we accept work released under the GPL, Zlib, MIT, WTFPL, all CC variations, and generally anything that allows us to freely distribute the game.
We are aware that following the DFCW or DFSG would allow Quake2World to be included in free operating systems distribution. However, being completely "free as in freedom" is less important to us than providing a great game and giving our contributors the freedom to make their own licensing choices.