Slowly but steadily.. I guess this is the best way to describe the development of Dwarf Mines. Today I want to announce the completion of pre-alpha 0.3. As planed the game can now be played via internet on a dedicated server. But obviously that’s not all and not everything did run as planed: It took me nearly a year to finish this update. But I think the result was worth the effort and over the following weeks I’ll show you what has changed.
It was important to me to do a full round of debugging, enhancements and refinements this time. Incredible how much work is hiding behind those generic tasks. I have weeks over weeks of this in my past schedule. But I have to emphasis that maybe the most important work was done there: The performance is way better now and the game needs just a fraction of the previous system memory.
Of course I could just have skipped over it and instead focused on the next big things. But eventually the whole project would collapse into a mess of unmanageable code and bugs that are caused by bugs which are caused by even more bugs. And even though I constantly try to keep a clean codebase there is often room for improvements after a round of development.
If you are a Unity developer too you probably know that Unity’s OnGUI() system is very slow. But as it’s also very handy for prototyping I use it a lot. But eventually I have to port game related GUI code over to the much more powerful Unity UI system. In the past I have already done that for the whole main menu and the inventory. Now the constructor (required for placing structures) and the individual structure screens followed. As most of the GUI interaction in Dwarf Mines runs through structures this was a very important step and also quite a huge task. As there where multiple screens to convert I took the opportunity to implement a complete system to streamline the process of creating GUI screens. It’s now as easy to use as the old OnGUI() system. And thus it allows me to add new GUI screens with minimal code.
As a side node: I have implemented my own colour picker as I wasn’t really satisfied with what I could find on the assets store.
For this update my overall goal was to make the game ready to be played by people other then myself. Obviously I can play it in the editor but that’s not the same. Therefore, beside evolving the GUI, I improved the overall usability. As mentioned before I currently use itch.io as distribution and patching service. From now on you can visit the project page here:
To be able to link the game to a shop’s account system Pre-alpha 0.3 now includes an intern account system. It can run on its own (using my own authentication server) or linked to an external shop account (e.g. steam).
This allows me to already use and test it during production.
As the purpose of testing is to find problems I have integrated a bug reporting tool to make the process easier. It allows the tester to quickly send a short bug description together with a log file and screenshot to me. Having a screenshot and the console output often helps to track down issues way faster then relaying just on bug descriptions. The bug reporting system uses functionality of the TouchConsole Pro asset, adds additional data and then sends it to my bug database.
What comes next
Now after 0.3 is out of the door I’m focusing on AI again. The goal is to bring enemies, NPCs and other creatures into the game world. In connection I will work on the fighting mechanic, improve the dialogue system and everything else related to AI creatures. And I want to add the first bunch of sounds to the game together with an overhaul of the sound system. As usual all details can be viewed on the roadmap.
Quite some work to do for 2019. So let’s get started! :)
Until next time with more news about 0.3.