Quake 3 Arena
Quake III Arena is a multiplayer first-person shooter video game developed by id Software company in 1999. Quake III Arena is the third game in the Quake series and differs from previous games by excluding a traditional single-player element. Quake III Arena is available on a number of platforms including Linux.
Contents
Installation on Linux
Other than going the windows emulator route, you can use ioquake3 which is an open source engine to run quake on linux. Using ioquake3 has advantages and disadvantages. One advantage is that it is easy to get going on Linux. One disadvantage is limited compatibility with custom maps and poor compatibility with mods.
Useful Tip: If playing quake windowed and you need to switch to another software window in X simply press ~ which opens the quake console command prompt but also unlocks mouse from the game so you can access other X software.
ioquake3 method
Go to the URL: https://ioquake3.org/get-it/
download the files...
- ioquake3-1.36-7.1.i386.run
- ioquake3-1.36-7.1.x86_64.run
You wont use both of them, just the one for your architecture so technically you don't really need to download them both. I did so I could do performance comparisons.
Go to the URL: https://ioquake3.org/extras/patch-data/
download the file:
- quake3-latest-pk3s.zip
execute the .run file, be it the 32 or 64 bit version. here we use the 64 version.
~/games/quake3 $ ./ioquake3-1.36-7.1.x86_64.run
This opens a graphical install interface within x (or alternatively an ncurses in terminal*). check paths for game and binary. Click install.
note * ncurses installer: I have found that if the GUI applet doesn't open, but instead you see an ncurses installer within the terminal you will likely have to close and run the install again as sudo then later you will need to chown username ~./q3a -R
You will notice the addition of ioquake3 under the Menu->Games in x and also the creation of ~/.q3a
NOTICE: If the ~/.q3a was not created, then go under Menu->Games and run ioquake3 once, it won't open anything b it will create ~/.q3a
Now copy the contents baseq3 folder from the Quake 3 Arena CD (or your paid version installation) and paste it into the .q3a folder. This should include a folder called baseq3. For my install it also included a folder called Quake3 and sound, however, I dev custom maps, mods, and audio. Yours may only have baseq3 such as on your original paid version installation.
PATCH BY MERGING NOT OVERWRITING THE ENTIRE FOLDER:
Finally, other online guides recommend installation of the game patch. This is from the file quake3-latest-pk3s.zip you obtained from patch-data and when extracted contains a folder quake3-latest-pk3s with some updated files in baseq3 and a folder called missionpack.
Do not copy the baseq3 folder over yours! You need to merge them replacing on the files pak*.pk3 from baseq3 over the old ones in your folder. My CD installation versions of these files had a year 1999 date and the updated files had a year 2002 date. Then missionpack could be copied over without worrying about merging.
References used in creating this guide:
- http://noormohammad.com/2018/05/12/how-to-install-and-run-quake-3-arena-on-linux/
- https://help.ubuntu.com/community/Games/Native/QuakeIIIArena
- http://ftp.gwdg.de/pub/misc/ftp.idsoftware.com/idstuff/
- https://ioquake3.org/get-it/
Last verified 12/2018 on Mint 18.3.
Also tested on Kubuntu 14.04 Trusty Tahr - this one used the ncurses installer instead of the graphical installer
ioquake3 issues
To play quake3 or CPMA you need vanilla ioquake3 sources and compiling them with BUILD_STANDALONE=0
Some custom maps won't work.
ISSUE: WRONG VERSION NUMBER
CM_LOADMAP: MAPS/CUSTOMMAP.BSP HAS WRONG VERSION NUMBER (32623 SHOULD BE 46)
Resolution: currently unknown Work In Progress
Possible Resolutions:
- Decompile the map with `q3map2 -convert -format map`, remove the damage and recompile
- Change BSP version in map with utility
- Change BSP map version with good old fashioned HEX Editor. - note that I attempted this and the byte in the map bsp file was already correct. For some reason ioquake3 isn't reading it correctly from some custom maps. see also local mirror of forum page.
- Run ioquake3 from console command prompt with command line switches
The patches resource may be out of date:
ISSUE: .BSP NOT FOUND
RE_LOADWORLDMAP: MAPS/TEST.BSP NOT FOUND
Development maps (custom maps) not zipped up in a pk3 file such as loose BSP files under the MAPS folder cannot be loaded without doing the following:
/seta sv_pure 0 /devmap mapname
To decompile or recompile maps use Q3Map2 - I don't know where to get it, and it might take some tweaking to get working.
ISSUE: LOADTGA TYPE ERROR
LOADTGA: ONLY TYPE 2 (RGB), 3 (GRAY), AND 10 (RGB) TGA IMAGES SUPPORTED
Please note that discussion here does not related to the game Counter Strike. It is believed that the old Quake Radient map editor created certain incompatibilities that although were not problematic in the original quake engine, cause issues in ioquake3.
According to this post on quake3world.com "It is quite possibly not a .tga file at error here but more likely you have got a .jpg in your working directory that is been saved with Progressive Compression which Q3 does not like. Resave the image without and you should be OK."
According to another source, "you are trying to use a .jpg in a shader script. All shader scripts call for .TGA textures, even though the actual texture may, in fact, be a .jpg. If the shader script is correct and you're still getting the error, then it means that you have saved the textures as progressive .jpgs. You've seen these on some web sites, where the picture is downloaded in phases, showing increasingly detailed versions of the entire image. The Q3 rendering engine cannot render these textures. You must save the .jpgs as baseline optimized." Please note that this response is in regards to a game base on the quake 3 engine, however, the same logic and reasoning applies.
The solution probably involves decompile and open the custom map in a modern editor, checking custom images, then save and repack.
ioquake3 command line options
Usage
+set <cvar> <value>
cvar - Configuration variable. Can be set by the game itself or by the user via command line options (+set), editing configuration files or using in-game commands.
Starting a Dedicated ioQuake3 Server:
ioq3ded.i386 +set dedicated "2" +set net_port "27960" +set fs_game "baseq3"
Quake 3 Console
To enter the console, press the tilde ~ key at any time in game except during a map load. If you can't find or don't know what the tilde key is, then reboot your computer immediately. The console is a command line interface for the game, similar to how the command terminal is in linux or cmd.exe in Windows. Commands and variables each must be preceded by a slash / or backslash \ otherwise anything typed in the console will be broadcast as global chat. To execute a command, enter the command or variable and press enter. To change the value of a variable, enter the variable name followed by a space and the new value. When you hit enter the new value will be assigned to the variable. If you want to see what the current and default values of a certain variable are, enter the variable name without any value behind it and hit enter. The console will return the current and default values. Certain variables however will not show any immediate change. Mostly variables beginning with r_ (which are related to video settings) need a restart of the render system to be applied. To reset the render system, enter /vid_restart
Console commands: Quake 3 Arena Console Commands
The Difference Between set and seta: While set will only save the variable for the current session only (that is, it will apply it and use it only for this running instance of the game, seta will apply this variable and also save it inside the persistent file config.cfg, making it a default value for all future running instances of the game.
development mode and cheats
To be able to use codes in single-player mode, in the console, type: /sv_cheats 1, then, /devmap<name of map>.
God mode: /god
No clip (walk through walls): /noclip
Give all: /give all
/g_gravity <>0-800 Change gravity
/cg_thirdpersonangle <-360-360> Change view angle
/cg_thirdpersonrange <320-500> Change view range
/model sarge/krusade Hidden Sarge skin