I thought I would give an end of year update on current activities and let you know that as always, developments have been ongoing in the background during 2017.
The focus this year has been on learning the Unity game engine, and migrating the War of the Solstice over, in order to open access to many interesting new possibilities for future development. As usual, firstly a snap of the Unity version in development, then some details 🙂
The migration to Unity initially posed certain key questions, not least of all whether I should rewrite the entire game in C#. After having spent a ton of hours developing and debugging the current game, it’s not exactly desirable to have to start again and port all the code over to a new language…
Luckily some investigation showed that Unity supports native C++ plugins, therefore it seemed like an obvious decision to re-package the core game logic, or “backend” as I refer to it, into a C++ plugin. It was actually a reasonably straightforward exercise, and I now have a backend .dll which is being used by both the existing game written in native C++ code, and the Unity version in development. This means that all the Midnight game logic remains intact; no need to redevelop, rewrite, retest. Result!
It has also proven a good decision to develop the soundtrack last year in the FMod Sound System, since this is also available as a plugin for Unity. So all the effort put in by Wayne and myself to create the atmospheric soundtrack can be plugged straight in to the Unity version of the game. No further audio development required. Another result!
The main work has been in porting the “frontend” ie graphics and user interface to Unity, and learning about all the features and possibilities that brings. To be honest I think I’m still scratching the surface, but as you can see from above, the graphical quality and flexibility has been taken to the next level on this platform. The asset store has some really good assets available which have saved me from creating everything from scratch; this is one of the great benefits of moving to such a platform, and it’s clear to see that the speed of development should eventually outpace that which I experienced on the existing game.
I really appreciate the very visual style of Unity development; you write something, you add something and you can very quickly see the results (or not as the case may be !!). It’s also good that you are “forced” to design and build in an object based way, and it makes it easy to reuse scripts, objects, shaders really easily. Once you get to know Unity a little, you really do focus on the fun parts of game development, and not so much on the low level coding and graphics API’s.
The only bugbears I have with it so far, are having to regularly navigate the version updates that are ongoing (and making sure that I have chosen assets which are well supported and maintained!), and a few inflexibilities in the rendering system compared with doing it natively. Having said that, the pros definitely outweight the cons in my view, so it’s definitely been a positive experience so far…
So why am I doing all this… still looking ahead to getting Doomdarks Revenge added in. The possibilities within Unity should make this far easier than it would have been to do natively, and should bring many nice additional touches too 😉
Raising up the elevation from the previous view, you can see how it is possible to get a full scale rendering of Midnight running at >50fps on my Geforce GTX780 GPU. A performance that I couldn’t get anywhere close to natively!!
More as it happens… for the moment Happy New Year!