Introduction
Work in progress!
This is an unofficial and incomplete documentation about the game file structure and modding. For any information not found here, please look into Discussions and post any question there.
Before you start with modding it's a good idea to extract all the game's resource files. Please follow the instructions in pre-mod.md for this.
Game Assets
The game assets are usually stored in .gob
container files.
GOB files can be extracted using gobext tool.
The resource folder structure:
Root
│
├── 3do # 3D models (.3do)
│ └── key # Animations (.key)
├── cog # COG scripts (.cog)
├── mat # Material texture files
├── misc
│ ├── ai # AI behavior definition files (.ai)
│ ├── pup # Character movement puppet files (.pup)
│ ├── snd # Sound definition files (.snd)
│ ├── spr # Sprite definition files (.spr)
│ └── ui # Contains only unused default font.gcf font atlas file
├── ndy # Level files (.cnd/.ndy)
└── sound # Sound files (.wav)
-
COG scripts are the heart of game logic. They define the mechanics behind the game, like cutscenes, level goals, unlocking/locking doors, weapon definitions, etc.
-
KEY file (short for Keyframe file) defines various animations of the mesh joint nodes of associated 3DO model. To edit KEY animations use Sith addon for Blender.
-
Puppet file (
.pup
) defines object movement animations.
Game level files
There are 2 types of level files:
NDY
- text based level format which can be edited in any text editor.-
CND
- is compact binary level format. The file has a structure similar as NDY file and stores both the level structure and game assets.Note
The C++ code for CND file structure can be found in: https://github.com/smlu/ProjectMarduk/tree/develop/libraries/libim/content/asset/world/impl/serialization/cnd
File Naming Convention
Maximum length limit
The maximum file name length, including the file extension in Jones3D engine, is limited to 64 characters. Therefore, longer file names must be abbreviated.
Common Abbreviations
Abbreviation | Meaning | Abbreviation | Meaning |
---|---|---|---|
dflt |
Default | mo |
Monkey |
bk |
Back | ol |
Old Lady |
by |
Boy | rft |
Raft |
com |
Commie | sn |
Snake |
fr |
Front | sp |
Spider |
ib |
Ice Boss | so |
Sophia |
ij |
Indy Jeep | tu |
Turner |
in |
Indy | uw |
Under Water |
inv |
Inventory | vo |
Volodnikov |
ir |
Indy Raft | yl |
Young Lady |
lb |
Lava Boss | ||
mc |
Mine Car |
Note
Additionally, every file referring to a specific game level is prefixed with three letters of the abbreviated level name (e.g., pyr_
, pru_
...).