File structure (and working with SVN)

Wikis > Game engine manual > File structure (and working with SVN)


Folder structure

There are quite a few folders and parts to the Nebula installation – Toolkit and Project directory. The main directories to keep track of, for normal use, are the following:

  • toolkit installation/bin/win32/ – contains Nebula executables, such as the Level Editor etc.
  • project directory folder/ – contains project-specific data, such as level files and the project’s art assets.



This is where you find Nebula’s .exe files, to launch the Level Editor, Content Browser, Batch Exporter and Level Viewer. It’s recommended you create shortcuts for at least the first three, as you’ll be using them frequently while working with Nebula.

Content of note includes:


your project/

This is where your project lives on disk. The directory looks something like this:

  • code/
  • data/ – This is where things like .lua scripts (for triggering events etc in a level) are stored, as well as Blueprints (for defining game entities with some functionality).
  • export_win32/ – This is where Nebula places files it has converted to Nebula-friendly formats, from original user-created files. This conversion is done by the Batch Exporter.
  • intermediate/
  • work/ – This is where most of the user-created content files is stored, along with intermediary files Nebula creates to remember user-specified settings for how to interpret the content files.
  • projectinfo.xml 


work/ contents

This is where user-created content is stored. Has the following subfolders:

  • audio/ – For sound files created in a DCC, such as .wav
  • gfxlib/ – For model files created in a DCC, in the .fbx format
  • levels/ – For levels created in the Level Editor, stored as .xml files
  • models/ – (parallel to /gfxlib/) Extra files created by the Content Editor to tell Nebula how to interpret the .fbx files in /gfxlib/ when converting them to Nebula formats.
  • shaders/ – For shaders which you can apply to models in the Content Editor
  • textures/ – For texture files created in a DCC, such as .tga, .jpg, etc

While you cannot create additional folders at this level, you can optionally create any number of subfolders to the folders listed above, such as:

  • gfxlib/subfolder/

You can not, however, increase the depth of the hierarchy further than that:

  • gfxlib/subfolder/sub-subfolder/

is invalid.




export_win32/ and Exported/Converted files

As a user, you should usually not have to touch the files saved here.

While user-editable files are stored under /work/, Nebula cannot directly use or display those files. Instead, those files are converted to Nebula formats (using the Batch Exporter) and stored in a parallel file structure under /export_win32/. Depending on the source file, the exporter may need additional information to know how to interpret the source file – for instance, which DXT compression setting to use for a particular .tga texture. This kind of data is saved in separate files – described further in the section below, “Working with Nebula on SVN”. (In the case of textures with non-default settings, it is stored in .xml files generated next to the original files.)




Working with Nebula on SVN

SVN is used to manage projects and revisions. When working with a SVN-based project structure, there are a few things to keep in mind:

  • It is generally a good idea to synchronize where Nebula is checked out between all workstations involved in a project, so that any local file paths remain consistent between different computers.
  • For most content, the recommended pipeline is to not commit the Nebula-specific file formats under export_win32, such as .dds and .n3 files. Instead, one should commit the source files – such as the .fbx and corresponding .attributes, .constants and .physics files. This way, other members of the project can edit the conversion settings if necessary – such as editing the compression used for a texture.
  • SVN is itself a versioning and revision system: it is not necessary to manually save multiple versions of a file. Instead, one should make sure to keep clutter and unused files committed to SVN at a minimum. These impact project navigability, download, and export times.
  • To receive all the updates of a project member who has committed all necessary files, all you need to do is to perform a SVN check-out and run the Batch Exporter.

The process looks like this:



Files which should be committed (art content pipeline)

CONTENT TYPE Source file Extra files SHOULD NOT BE COMMITTED (is converted to…)
Models, static .fbx .attributes, .constants and .physics files under work/models .n3 model files under /export_win32/models/ (and .nvx2 mesh files)
Textures .png, .jpg, .bmp, .psd, .tga or .dds .xml files generated next to the original files .dds textures under /export_win32/textures/


Skip to toolbar