Radiant is the open source cross platform level editor for idTech games like Quake III Arena.
There are at least three competing versions out there:
- ☐ GtkRadiant build 1.6 (a continuation of GtkRadiant 1.4, maintained by TTimo);
- ☐ NetRadiant build 1.5 a continuation of the GtkRadiant 1.5, maintained by Xonotic);
- ☑ NetRadiant-custom build 1.5 (an early fork of NetRadiant, maintained by Garux).
(There are more versions, including DarkRadiant which actually ships in the Ubuntu universe.)
This repository contains build tools to build Debian/Ubuntu packages for NetRadiant-custom along with the q3map2 compiler and bspc bot file builder.
To get a glimpse of what NRC/nrcradiant can do, check out the features presentation.
In the releases section, you might find some precompiled debian packages... if you're lucky. But if there aren't any, building for your specific Debian derivative should be a breeze.
Using Docker:
./Dockerfile.build [ubuntu/jammy]
If the build succeeds, the built Debian packages are placed inside (a
subdirectory of) Dockerfile.out/
.
The files may look similar to these:
- 14,596 nrcradiant_1.5.0+20220528+1-0wjd1+ubu22.04_amd64.buildinfo - 3,199 nrcradiant_1.5.0+20220528+1-0wjd1+ubu22.04_amd64.changes - 4,935,336 nrcradiant_1.5.0+20220528+1-0wjd1+ubu22.04_amd64.deb - 7,632 nrcradiant_1.5.0+20220528+1-0wjd1+ubu22.04.debian.tar.xz - 1,305 nrcradiant_1.5.0+20220528+1-0wjd1+ubu22.04.dsc - 85,897,202 nrcradiant_1.5.0+20220528+1.orig.tar.gz - 64,066,598 nrcradiant-dbgsym_1.5.0+20220528+1-0wjd1+ubu22.04_amd64.ddeb - 5,595,956 nrcradiant-game-quake3_1.5.0+20220528+1-0wjd1+ubu22.04_all.deb
The nrcradiant*.orig.tar.gz
contains source files from multiple
repositories. With SOURCE_VERSION
files in the directories,
recording the exact versions. (NOTE: For the gamepacks, exact versions
might not be recorded.)
The nrcradiant*.deb
holds files in:
- /usr/bin (nrcradiant) - /usr/lib/x86_64-linux-gnu/nrcradiant (plugins/modules) - /usr/lib/x86_64-linux-gnu/nrcradiant (also: mbspc, q2map, q3map2..) - /usr/share/nrcradiant (arch independent data files, images)
The nrcradiant-game-quake3*.deb
holds files in:
- /usr/share/nrcradiant/gamepacks/games/q3.game - /usr/share/nrcradiant/gamepacks/q3.game (game data)
Starting should be a matter of running nrcradiant
:
$ dpkg -L nrcradiant | grep ^/usr/bin/ /usr/bin/nrcradiant
Tools have been moved to the libdir, so they don't conflict with possible other radiant installs:
$ dpkg -L nrcradiant | grep '^/usr/lib/x86_64-linux-gnu/nrcradiant/[^/]*$' /usr/lib/x86_64-linux-gnu/nrcradiant/h2data /usr/lib/x86_64-linux-gnu/nrcradiant/mbspc /usr/lib/x86_64-linux-gnu/nrcradiant/q2map /usr/lib/x86_64-linux-gnu/nrcradiant/q3map2 /usr/lib/x86_64-linux-gnu/nrcradiant/qdata3
Game configuration will be stored in ~/.config/nrcradiant
:
$ find ~/.config/nrcradiant -type f | sort ~/.config/nrcradiant/1.5.0/global.pref ~/.config/nrcradiant/1.5.0/prtview.ini ~/.config/nrcradiant/1.5.0/q3.game/local.pref ~/.config/nrcradiant/1.5.0/q3.game/shortcuts.ini ~/.config/nrcradiant/1.5.0/radiant.log
If you set paths as follows:
EnginePath = /usr/share/nrcradiant/gamepacks/q3.game/ ExtraResoucePath = ~/.q3a/ (yes, it's ExtraResourcePath withour 'r')
Then shader lists are scanned in this order (continues even when found):
/usr/share/nrcradiant/gamepacks/q3.game/baseq3/default_shaderlist.txt /usr/share/nrcradiant/gamepacks/q3.game/baseq3/scripts/shaderlist.txt (read-write) /usr/share/nrcradiant/gamepacks/q3.game/baseq3/scripts/shaderlist.txt ~/.q3a/baseq3/scripts/shaderlist.txt ~/.q3a/scripts/shaderlist.txt
And shader image locations are scanned in this order (stops when found):
~/.q3a/textures/common/watercaulk.jpg ~/.q3a/baseq3/textures/common/watercaulk.jpg /usr/share/nrcradiant/gamepacks/q3.game/baseq3/textures/common/watercaulk.jpg ~/.q3a/textures/common/watercaulk.tga ~/.q3a/baseq3/textures/common/watercaulk.tga /usr/share/nrcradiant/gamepacks/q3.game/baseq3/textures/common/watercaulk.tga
See README-quake3.rst for Quake3 specific setup.
- See if we can find an appropriate version better than 1.5.0+20220215+3.
- BUG: openat(AT_FDCWD, "/usr/share/nrcradiant/gamepacks/q3.game/baseq3/scripts/shaderlist.txt", O_WRONLY|O_CREAT|O_TRUNC, 0666) = -1 EACCES
- Document/decide on handling the gamepacks:
- do we want to record source versions, we don't right now;
- use quake3 instead of q3 for naming, because of better findability;
- only put one game in a gamepack, we may want to manually create gamepacks: the gtkradiant versions contain more contents (example maps).
- Right now there is only a tiny index.html in /usr/share/nrcradiant/docs. We could move that to /usr/share/doc/nrcradiant.
- The nrcradiant-game-quake3 has plenty of docs in /usr/share/nrcradiant/gamepacks/q3.game/docs. Do we want to move that to /usr/share/doc/nrcradiant?