From d08bc865d8267c8dadfa230b2ec4c8bb82fdf3f3 Mon Sep 17 00:00:00 2001 From: Marco Hladik Date: Fri, 27 Aug 2021 12:18:50 +0200 Subject: [PATCH] Update doc/ to include notes about the filesystem and loading multiple game-dirs in sequence --- doc/filesystem | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 doc/filesystem diff --git a/doc/filesystem b/doc/filesystem new file mode 100644 index 00000000..8c946c3c --- /dev/null +++ b/doc/filesystem @@ -0,0 +1,36 @@ +NUCLIDE FILESYSTEM DOCUMENTATION + +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 folders 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 + +On its own, Nuclide launches the game 'base', unless you tell it otherwise: +./nuclide -game mygame +You can also load multiple additional folders in a specific order by specifying +multiple '-game' arguments. + +Will load 'mygame' instead of base. +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 + +Once the game has loaded, it'll load the persistent menu.dat into our QuakeC +progs VM. +It' always running, you can make your own by forking src/menu-fn, src/menu-vgui +or write something from scratch. + +When a game is mounted, we're either looking for loose files (loaded last), or +pak archives the engine supports. Plain .pak, or zip archives with the pk3 or +pk4 extensions are supported. +Folders with the .pk3dir extensions are treated as if they were .pk3 files. +The editor also supports .pk3dir folders. + +Nuclide contains many custom definition files that are not engine specific. +.efx, .font, .sndshd and .way to name a few. +The engine doesn't really read them, the game-logic mostly handles them.