There’s not much point to an editor if it can’t save your hard work and load it back again later. A single project can also have any number of interdependent scenes, terrains, scripts, text databases, weapon definitions, and so on. It’s important to design a project format that is clean and portable, and maintains relationships between these files.
There are several ways to accomplish this but the method chosen should always match the desired workflow. For example, if the project is going to be worked on by a large team then it’s desirable to have many granular files and a version controlled repository where individual developers can check their work in and out. You see this design with high-end general purpose tools like Visual Studio and Unity3D.
The Deep Engine Project Editor on the other hand isn’t exactly high-end, and neither is it meant to be a general purpose development tool. It’s designed for a single developer to build new playable environments from Daggerfall assets quickly and simply. It’s a very special purpose tool. It can only build one type of game, but the goal is to make that job straightforward as possible.
With an understanding of what the tool is for and how it will be used, I have designed the project format to be simple, portable, and compact. Here are the bullet points.
- Creating a new project results in a .dpjx file. This is basically a ZIP file that will contain all resources (scenes, scripts, etc.) for a single project like Hill Deep.
- Within the .dpjx file is a project .xml file that acts as a directory of every file in the project. This is like the “glue” holding all the parts together.
- Other files are stored in the same ZIP archive with whatever folder structure you decide on. This structure is managed from within the Project Editor itself.
- A .dpjx file can be opened for editing from the Project Editor or from a double click.
- The Deep Engine Runtime can execute a .dpjx file for playing.
What I like about the above design is the entire game is defined in one compact file. This makes it very easy to download and share to anyone with Daggerfall and the Deep Engine Runtime installed. If I can eventually get permission to bundle Daggerfall and the Deep Engine Runtime together, things become even easier.
Being a ZIP file, anyone will be able to open and explore the contents of a .dpjx file. Larger projects can be easily modded by releasing a new project file, or simply changing individual files within the archive. With a small amount of work, the Deep Engine becomes a nice toolkit for everyone to create Hill Deep styled mods for Daggerfall.

