Skip to content
Michael Yu edited this page Dec 10, 2015 · 2 revisions

Consider reading Overview: Nest first.

Key Concepts

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.

Core Application Loop

  1. nestd spawns cored.
  2. cored watches for target game processes.
  3. cored detects a new game process and spawns trinket-proxy.
  4. trinket-proxy injects trinket-dim into target processes.
  5. trinket-dim starts the CLR and loads trinket-managed.

Modifications

Repository

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

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.

Clone this wiki locally