-
Notifications
You must be signed in to change notification settings - Fork 0
Overview: Dargon
Consider reading Overview: Nest
first.
Dargon is a multiprocess application with four client-side bundles: core
, client
, trinket
, and nest
.
core
contains the headless Dargon Daemon, cored
. cored
is spawned by nestd
via init.json
startup script. cored
handles building modifications and spawning trinket-proxy
when it detects running games.
trinket
handles process injection. trinket-proxy
is a C# application that injects trinket-dim
, a C++ application, into the memory of target games. trinket-dim
handles low-level operations (e.g. filesystem redirection) and loads trinket-managed
, a C# application.
client
contains dargon-client
, which handles importing modifications into a format that cored
can understand.
nest
is described in Overview: Nest
.
-
nestd
spawnscored
. -
cored
watches for target game processes. -
cored
detects a new game process and spawnstrinket-proxy
. -
trinket-proxy
injectstrinket-dim
into target processes. -
trinket-dim
starts the CLR and loadstrinket-managed
.
Modifications are installed to ${USER_DIR}/.dargon/repositories
as nest eggs
. The modification directory structure is documented below:
'- repositories
'- mod-name
:- content
:- metadata
:- objects
'- thumbnails
content
contains raw content of the modification (e.g. textures, models). metadata
contains information (serialized via Dargon.PortableObjects) about the modification, such as its category, author, etc. objects
contains compiled
forms of the mod. thumbnails
contains pictures used by dargon-client
to represent the mod.
Building
is the process of preparing modifications into formats usable by target games. building
has three stages: resolution
, compilation
, and linking
. resolution
maps a modification's files to the internal structure of target games. compilation
converts the files into formats usable by the target game. linking
aggregates modifications' files into archives usable by target games.