Editor Project Format

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.

Editor Preview

I have uploaded a rapid-fire video of the scene editor in its current state. This part of the project unfortunately takes a lot of time without many visible results and it’s great to finally show something for all my efforts.

There are obviously a lot of missing features (such as gizmos to move and scale objects) but these will be added over time. The scene editor will continue to grow and evolve as the project continues.

I plan to include an updated build of the scene editor with every release from Playground2 onwards. This, and the open source nature of the project, will hopefully lead to bigger and better things long after Ruins of Hill Deep is finished.

Recent Absence

Sorry for the lack of updates in March. I came down with a nasty flu followed by a chest infection that took me out of action for a couple weeks. I’m still catching up on work and haven’t had any time left over for hobby projects.

Easter four-day weekend is coming up. I’ll use some of that time to get back on track and fire out another video early next week.

Ruins of Hill Deep on Facebook

I’ve created a Facebook page for Ruins of Hill Deep which you can find here:

www.facebook.com/ruinsofhilldeep

The purpose of this page is to provide quick one-line updates when the blog is updated, a video uploaded, or important milestones are met. This might be handy for regular Facebook users that don’t check this journal very often. As I only update every few weeks, you can be assured you won’t get spammed by status updates.

To subscribe to the Facebook page, click the link above and hit the Like button.

Terrain Progress

Phew! Terrain is one of those rabbit-holes that keep on getting deeper the more work I put into it. Add an editor into the mix and there’s always just “one more thing” that needs to be done. Thankfully, I’m getting really close to a good baseline with the whole terrain system.

What I have so far is the shell of an editor with unlimited undo/redo, scene & properties view, and drop-down toolboxes that provide extra functionality based on the scene object you have selected.

I’ve put most of the work so far into the terrain toolbox. The screenshot below shows the toolbox in action with a terrain that has been manually deformed and arbitrarily painted using several blend textures. It’s great being able to just point and smoothly deform a terrain in real-time, then air-brush textures over the top.

I still have a ways to go before I’m using this tool to build actual game-space, but it’s getting close enough for me to build Playground2. In a few more weeks, I’ll upload a video of the editor in action while constructing the next playground build.

Editor and Playground2

I’ve decided Playground2 is to be set outdoors with a few points of interest to explore. This adds some work as the editor I need for more complex environments is very much early in development. Still, I’m pushing through and here is a screenshot of my editor in its current state with a terrain loaded. Right now it’s just building random terrain, but it will be possible to manually raise/lower/smooth and paint the terrain. The sky dome and clouds are just placeholders until I create something better.

Starting with Playground2 the playground scene files and editor will be bundled and you can play with the same back-end I’m using. This might be useful for anyone interested in helping me build maps later on.

I will talk about Playground2 more in a few weeks when the editor is further along.

Playground1 Available

The first release of Ruins of Hill Deep Playgrounds is now available. Please check the readme during install (or from the Start menu post-install) for control layout and other release notes.

Download

Keep in mind the Playgrounds Build is very early test software. If you experience any difficulties, please create a thread describing your issue in the Workshop Forums along with your system specs. Thank you for taking the time to help test Ruins of Hill Deep as it is being developed.

Playground1 Complete

The following video shows a completed Ruins of Hill Deep Playground1, or “Chucking Anvils Down Stairs” build.

The purpose of this first playground is to test systems that lay the foundations of the entire mod. These are things like dynamic content conversion from Daggerfall, rendering, lighting, physics, player controller, user interface, etc.

To make the playground a little more interesting, I’ve added several physics objects with different properties for you to shoot/drop into the world.The highly vertical dungeon room (from Direnni Tower), provides a great environment to jump around and drop things from great heights.

I’m currently ahead of schedule on Playground1 and it will be ready for download in the next few days.

Playground1 Title Screen

I’ve uploaded a video of the Playground1 Title Screen. This is the animated display you will see under the main menu.

All visual content is loaded at runtime from Daggerfall’s files into my new engine. Several effects are layered here, such as a generated starfield, animated clouds, glowing fireflies, and fullscreen bloom. Fireflies carry a point light source that illuminates anything in their immediate vicinity, including billboard sprites.

The music is remixed by Dan Goodale. I have received permission to use his excellent Daggerfall remixes in Ruins of Hill Deep. Dan’s work strikes the perfect balance of familiar-but-fresh this mod is aiming for. It’s an honour to use such incredible music in my project.

Forums, Source Code, Roadmap, Playground1

I have a few exciting announcements to make this evening. First up, the Daggerfall Workshop Forums are now open again. New members and old are welcome to visit and discuss my projects in detail. If you are an old member then your account is still active on the forums for now. However, I will be running a prune in a few months time. If you have a legacy account on the forums please log in and say hello before I take a broom to it. Feel free to email me if you have any trouble recovering your account (forgotten password, changed email address, etc.).

Next on the list, I have decided to make the back-end components of Ruins of Hill Deep open source as part of the Daggerfall Connect suite. I will keep the mod itself private until release (so as not to spoil the plot), but my Deep Engine and related code is available on the SVN as it’s being developed. Click the Source Code link on the right if you’re interested. Much of the code is still rough but it’s being improved on almost every day.

I have also added a Roadmap page for a one-stop snapshot of where the project is up to, and what I am working on. Check the very bottom of the roadmap for an estimate of how complete the project is at any time.

The final bit of news is that Playground1 will be available for download in a few weeks time. The purpose of this playground is just to test the fundamentals of the mod on your computer. It’s not much right now, but I will be adding more playgrounds for you to test features as they come online. I am hoping this will be a fun way for you to be a part of Ruins of Hill Deep as development progresses.

I’ll post more on Playground1 soon. In the meantime, I hope to see you over on the forums.