= Action Quake 2: how to setup and start playing [[https://en.wikipedia.org/wiki/Action_Quake_2|Action Quake 2]] is game that is a predecessor for a popular game "[[https://en.wikipedia.org/wiki/Counter-Strike|Counter-Strike]]" made by [[https://en.wikipedia.org/wiki/Minh_Le|the same developer]]. It is mostly free software now, so it is a good game to play if you prefer using mostly free software. Gameplay is something in between Counter Strike and Quake 2, I would describe it as "It is CS, but fun and it is also an arena shooter", by "arena shooter" I mean there is no tasks such as planting the bomb, freeing the hostage and so on, the game uses Quake 2 gamemodes such as DM (Deathmatch), TDM (Team Deathmatch), CTF and so on. [[http://robotrenegade.com/games/Quake2/Extremities/Docs/Help/Action%20Quake%202.htm|More about the game]]. == How to setup There are two ways to play the game. Easy and proprietary one and mostly free, but a bit harsh (not so harsh, but it might require a compiling software depending on distribution you are using). === q2pro + aq2-tng + baseq2 + @zevlg config I ([[https://w96k.dev/|~w96k]]) got involved into playing Action Quake by @zevlg. [[https://github.com/zevlg|@zevlg]] is Emacs (package and XEmacs) developer who plays action quake for 20+ years. His config is good for competitive playing. If you are not comfortable playing quake, it might feel awkward, but it is easy to modify everything for your style of playing. === Compiling q2pro Q2PRO ([[https://github.com/skullernet/q2pro|Source Code]]) is enhanced client for quake 2. It might be not packaged or outdated for your linux distribution, so you need to compile it yourself. It is easy and done using several commands as [[https://github.com/skullernet/q2pro/blob/master/INSTALL.md|q2pro documentation states it]]: {{{#!bash sudo apt install meson gcc libc6-dev libsdl2-dev libopenal-dev \ libpng-dev libjpeg-dev zlib1g-dev mesa-common-dev \ libcurl4-gnutls-dev libx11-dev libxi-dev \ libwayland-dev wayland-protocols libdecor-0-dev \ libavcodec-dev libavformat-dev libavutil-dev \ libswresample-dev libswscale-dev git git clone https://github.com/skullernet/q2pro.git meson setup builddir meson configure builddir meson compile -C builddir sudo ninja -C builddir install }}} It should work for Debian-based systems (Debian, Ubuntu, Linux-Mint and so on). If you have different system only part with `apt install` (dependencies) should change. After running this command you should be able to call `q2pro` binary in your terminal. For example: `q2pro --version`. === baseq2 Run `q2pro`. By running this it should create `.q2pro` folder in your home directory (`~`). It should complain about lack of the baseq2: {{{ $ q2pro ------- FS_Init ------- Current search path: /home/w96k/.q2pro/baseq2 /usr/share/q2pro/baseq2 ----------------------- ------- R_Init ------- Using video driver: x11 Using GLSL rendering backend. ******************** FATAL: Couldn't load pics/colormap.pcx: No such file or directory ******************** }}} `baseq2` is the quake 2 game itself. Quake 2 is proprietary game, but the source code of the engine was released long time ago. Yet the source of the art, sounds, models and so on is not free. Some games share this model like [[https://warsow.net/|Warsow]]. So, you need to aquire baseq2 yourself by buying the game. Or basically downloading it elsewhere. You can buy Quake 2 here: - [[https://www.gog.com/en/game/quake_ii_quad_damage|GOG]] (DRM-free) - [[https://store.steampowered.com/agecheck/app/2320/|Steam]] By the way Enhanced Quake 2 is good in case if you never played Quake 2 before. Look for installed folder and copy paste baseq2 folder to `~/.q2pro/baseq2`. For steam version on linux it would be `~/.steam/debian-installation/steamapps/common/Quake\ 2/baseq2`. So if you run `q2pro` in your terminal you should get q2 game running on different client. It should look like this so far: [[Image(q2pro_baseq2.gif)]] Press `` to access game menu. You can run Quake 2 campaign from there, or use a console by pressing `~` and running `/map ` command. Autocompletion works by pressing `` key. Since source code was released many years ago, we now have many different clients. Another example of such client can be [[https://www.yamagi.org/quake2/|Yamagi Quake 2]]. === aq2-tng We need to compile `gamex86_64.so` file in order to run this mod. {{{ git clone https://github.com/aq2-tng/aq2-tng cd aq2-tng/source make cp -r ../action ~/.q2pro/action cp gamex86_64.so ~/.q2pro/action/ }}} === Action Quake maps Now we have basic game, but it lack maps and other resources. Download Action Quake 2 using these links: - Minimal aq2-tng: https://disk.yandex.ru/d/7UUEX2ic2i7Bvg - Minimal aq2-tng + maps: https://disk.yandex.ru/d/W-7ixUGT-aVzlQ (Download this) - Full set with all textures and maps: https://disk.yandex.ru/d/HtmBA8CEcWDRaA (Download this) Unpack the archive and move `action` folder to `~/.q2pro/`. You might need to install `p7zip` package for extracting 7z archives: {{{ sudo apt install p7zip 7za x aqtp_files.7z -o/home//.q2pro/ 7za x aqtp+maps.7z -o/home//.q2pro/ cp -R ~/.q2pro/aqtp/action ~/.q2pro/action rm -r aqtp/ rm ~/.q2pro/action/autoexec.cfg }}} So the results of `ls ~/.q2pro/` would print the following: {{{ $ ls ~/.q2pro action aqtp baseq2 }}} Now if you run `q2pro` and then run `set game action` in game console by pressing `~`, you will switch to Action Quake game. [[Image(q2pro_aq2.gif)]] You can run in console `/map rok` to see how the game runs on its default settings. [[Image(q2pro_aq2_game.gif)]] === @zevlg config - @zevlg config: https://github.com/zevlg/dot.q2pro We need to copy config files to action folder. For that run the following commands in your terminal: {{{ cd ~/.q2pro/action git clone https://github.com/zevlg/dot.q2pro.git }}} `dot.q2pro` folder contains config files (.cfg, .aqtp): {{{ lg-dv.aqtp, lg-dv.cfg, lg-qwerty.aqtp, lg-qwerty.cfg }}} `dv` means Dvorak which is alternative keyboard layout. I assume you are using Qwerty layout, so we copy only Qwerty config: {{{ mv dot.q2pro/lg-qwerty.aqtp ./ mv dot.q2pro/lg-qwerty.cfg ./ cat < ../aq2.sh #!/bin/sh q2pro +game action +exec lg-qwerty.aqtp +map rok EOF cd ../ chmod +x aq2.sh }}} Run `./aq2.sh`. You can make this config default by following command: {{{ cp lg-qwerty.aqtp autoexec.cfg }}} After setting it, you can run q2pro +game action and it will execute by default. Also it will execute if you manually run q2pro and then write in console `/set game action`. You can set maps manually to using `/map `. Press `+` to enter fullscreen. [[Image(q2pro_aq2_zevlg.gif)]] ==== @zevlg config layout `esdf` - movement keys. This was popular choice for quakers, because it free up many keys on the left. `r` - reload `q` - secondary weapon `w` - main weapon `1` - drop main weapon `2` - drop bonus (kevlar) `g` - heal `right mouse click` - jump `` - sniper zoom `v` - grenade `z` - open door `t` - change fire mode `` - switch between walking and running `` - crouch ==== Modify mouse movement === aQtion using Steam The most easiest way to setup is the dedicated game page on Steam which is basically ready to use setup of Action Quake 2. I don't know which exactly components it uses. It has q2pro addon which needs to be installed into aQtion folder. More about aQtion on [[https://www.aq2world.com/|their website]]. You can install it in Steam, it is completely free and user friendly: https://store.steampowered.com/app/1978800/AQtion/ Also it provides its own packages, that can be run without Steam: https://github.com/actionquake/distrib (check Releases). Just install package on your system and play.