Nuclide
Software Development Kit for id Tech
|
The nuclide
shell script is the launcher.
It sets $PATH to include the directory bin/
which contains the engine that you've built with build_engine.sh
.
When nuclide is run and executes the engine, it'll first read default.fmf
which is a manifest file the engine reads. It is updated occasionally.
It defines which directories to mount in the virtual filesystem of the engine and has a document entirely dedicated to itself. For that please read:
On its own, Nuclide launches the game directory base/
, unless you tell it otherwise:
Will load mygame/
instead of base/
.
You can also load multiple additional directories in a specific order by specifying multiple -game
command-line arguments.
It will still load the other BASEGAME
entries listed in the default.fmf. You can even load your own manifest file over default.fmf, by passing
When a game is mounted, we're either looking for loose files (loaded last), or archives the engine supports.
The Quake .pak archive format, or zip archives with the pk3 and pk4 extensions are supported. Upon initializing the filesystem they are enumerated alphabetically and then loaded in order.
Directories with the .pk3dir extensions are treated as if they were .pk3 archives. The editor also supports .pk3dir directories.
Once the game has loaded a game directory, it'll load the persistent menu.dat into our QuakeC virtual machine.
It' always running, you can make your own by modifying src/menu-fn/
, src/menu-vgui/
or writing your own module.
Protected archives always start have the prefix pak[...] and cannot be downloaded by connecting to a server that has them. Use this for any copyrighted data.
When you spawn a map, you create a server which will distribute its own client-side game-logic.
It's advised that you do not pack csprogs.dat and progs.dat into a protected archive.
Nuclide contains many custom definition files that are not engine specific. .efx
, .font
, .sndshd
and .way
to name a few. The game-logic mostly handles them and can thus be, in theory, extended by you.