2.3 KiB
Filesystem
Launching
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:
src/engine/specs/fte_manifests.txt
Loading Games
On its own, Nuclide launches the game directory base/
, unless you tell it otherwise:
./nuclide -game mygame
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
./nuclide -manifest mymanifest.fmf
Virtual-Filesystem
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.
Archives
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 specific formats
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.