After a long month or so of development, I have put a nice bow on the latest changes, cut a release, and am now thinking about what’s next.

This release is quite the milestone, as it establishes the framework for external data loading at run time, which opens up the possibility of modding on a very basic level.

The additions are as follows:

  • integration of JSON.net
  • runtime data loading for the following:
    • attributes
    • items
    • units
    • tile maps
  • can now design maps via Tiled and import them using a new Tiled -> Eternal Engine class
  • created playable builds of the game for the following platforms:
    • Windows
    • Mac
    • Linux

In this month’s State of the Union, I talked a lot about the first 3 bullet points, though I hadn’t actually finished the work on my Tiled -> Eternal Engine converter yet. I actually was stuck for a few days when trying to deserialize Tiled’s exported JSON, and end up posting a question on the forums. As expected, after a day or so, I finally figured out what I was doing wrong, and amazingly, I was able to take a tile map made in Tiled’s excellent map editor, export it to its native JSON format, convert it to my canonical format, and load it up at runtime. It felt damned good when it all came together, I must say.

The only thing left to do was do an actual build of the game. I know that sounds weird, as I’ve been working on this game since September,  but no, I haven’t built an actual playable build of the game. All testing has happened via the Unity Editor. I had tried at one point a few weeks ago, but didn’t have the options to build for a Mac. I wasn’t too pressed about it, so moved on to something else. Well, eventually, I figured out that when I had initially installed Unity, I must have skipped all the non-Windows check marks (most work was done on a PC at the time). So, a simple reinstall later, and I was in business.

And just because, why not, I ended up making builds for Windows, Mac, and Linux. For me, it’s all about keeping track of the state of the game at various points in development, hence these releases I cut when I deem it reasonable (i.e. a large enough feature has been added). Previously, I obviously wasn’t attaching playable builds to them, but that will be the standard moving forward.

Unity is even nice enough to come with a built in configuration UI that launches before your game starts. Obviously, I’ll override it with something my own at some point, but for now, this will suffice.

And just to continue my hot streak, the actual playable build of the game worked perfectly.

All in all, it’s been a pretty fruitful month or so of development, but as you all no doubt know, it’s on to the next one…

Till tomorrow…