Note: this article does not cover map editing itself, it only explains how to configure J.A.C.K. for Tremulous. This tutorial is also applicable to other Q3-based games with few changes.
Obtaining and installation of J.A.C.K.
Obtain J.A.C.K. from download page.
Installation on Windows
Just install J.A.C.K. by double-clicking on downloaded .exe file as usual.
Installation on Linux
Open terminal in directory where you downloaded J.A.C.K. and type:
chmod +x Jack_$VERSION.run # replace with actual .run script name
or just add executable flag through your file manager interface.
Then run it in terminal:
It will ask you to choose directory to install J.A.C.K.. Type your choice or just leave it blank. By default $HOME/JACK will be used. After installation you may want to put Jack.desktop on your desktop.
Tremulous resources are stored in pk3-archives (these are just zip really). Currently J.A.C.K. can't read resources from archives, so you probably want to unpack them (or at least some of them).
To find out where archives are placed on your computer run Tremulous and check fs_basepath and fs_homepath variables by typing these commands in console:
In some cases these can be equal.
Unpack data-1.1.0.pk3 from "fs_basepath/base" to "fs_homepath/base" directory using your favorite unzip tool. (Though you can unpack it to self "fs_basepath/base" if you have write permission on this folder)
If you have Tremulous GPP read "gpp" instead of "base" everywhere. Also unpack data-gpp1.pk3.
Note: fs_homepath folder may be hidden, so check if your file manager shows hidden files.
Launch J.A.C.K. (on Linux run Jack.sh script or Jack.desktop. Don't try to run Jack executable itself!).
Go to Tools -> Options -> Game Profiles. Press "Edit" and add new configuration. Let's name it Tremulous. After that Configuration Settings window should become available.
First, you need fgd file. If you came from Radiant world you should know about .def files which contain entity definitions. FGD is just another format to describe entities. Although J.A.C.K. does not include tremulous fgd you can find it here.
Change Texture Format to "All", Map Type to "Quake III". Also you can choose Default PointEntity class and Default SolidEntity class.
Go to Directories tab. Set path to Game Executable file used to start the game. Then choose Base Game Directory. It's "base" folder where you unpack archives (or "gpp" for Tremulous GPP). Skip Mod Directory field and choose Source Maps Directory. It's where you will save your map source. I prefer to use the same directory as where compiled bsp will be placed, so I set it to "maps" folder in base directory. Create it if you don't have one.
Proceed to Textures tab. Here you can add texture directories (Add Directory) and shader files (Add Files).
The last tab is Build Programs. Leave CSG Executable field empty. Set BSP Executable to the full path to q3map2 (J.A.C.K. is already bundled with compiler, and q3map2 can be found in /path/to/JACK/quake3 folder). Add -game tremulous after that (also add -fs_game gpp if you're using Tremulous GPP). Copy the same path to VIS Executable field and add -vis at the end. Same for LIGHT Executable, but add -light instead.
That's all, press OK!
Running the map
Let's make map in J.A.C.K.. Go to File -> New. If you have many configurations it will ask to choose the one from the list. Choose Tremulous.
Then it will ask if you want to make default room (it's just small box with info_player_deathmatch and light entity inside). If you don't want default room, press Cancel.
Create some closed (i.e. without any holes to outside void) room of brushes (default room is already closed). Place team_human_spawn, team_alien_spawn, info_player_permission, info_human_intermission and info_alien_intermission (these are mandatory entities to run tremulous map).
Note for Linux users: before you build map you should make sure that all q3map2 dependencies are installed. Use ldd utility to check if all libraries are found. Some distros (for example, Fedora 20) don't have libjpeg8 in their repositories, so you will need to download version for your platform or compile library from sources and put somewhere where ld could find it (/usr/lib or /usr/local/lib).
Go to File -> Run. J.A.C.K. will ask you to choose location for .jmf file. JMF is universal map format used by J.A.C.K. to abstract from specific .map formats and store more information. After you saved .jmf file you will see Run Map dialog. It's important to add +set sv_pure 0 option to Additional game parameters, since game does not allow to start nonpacked maps on pure servers. Press OK. J.A.C.K. will ask you for location where it should export .map file. Choose the location you specified previously in Source Maps Directory.
J.A.C.K. does not provide common textures (like caulk, clip, hint, skip, etc.). Neither does Tremulous. However you can find textures and .shader file for them in GtkRadiant or in some other ioquake3 games (e.g. OpenArena).
Creating your own shaders
J.A.C.K. allows you to use shader editor (F3). When you save your first shader J.A.C.K. will ask you a location to save .shader file and then ask if you want to add it to your game profile. Next time when you add shader and save it to the same location, J.A.C.K. will ask you if you want to replace the file. Don't be afraid, press OK, it will not replace the whole file, but add your new shader.
To make user defined shaders available in game, add name of your .shader file (without extension) to base/scripts/shaderlist.txt (maps packed in .pk3 don't need this).
Working on several maps
Every map usually uses its own texture set. If you're working on several maps you need to copy your game profile and change paths to textures. Luckily it's easy to do since Edit Configurations dialog has Copy button.
Problems with Expert mode
You can switch to Expert mode in Run Map dialog and use one of predefined Quake III configurations, but if you want your map to run in game after compilation succeed you need to add +set sv_pure 0 to the last command ($game_exe) in Compile/Run Commands list for every needed configuration. Sorry.
Checking map for problems
You can check map for problems (Alt+P). Ignore "There is no info_player_deathmatch" problem, since this warning is intended for Quake III Arena. Instead Tremulous requires team_human_spawn, team_alien_spawn, info_player_permission, info_human_intermission and info_alien_intermission entities.
Warning for Radiant users
If you have map made in Radiant-flavor editor (GtkRadiant, NetRadiant, etc.), don't use J.A.C.K. to resave it under the same name until you want to abandon Radiant completely, since J.A.C.K. writes slightly different .map format (version 220) which is not supported by Radiant-like editors.
Back to article list