It has been a long time since my last post and I wanted to fill everyone in on the latest developments of Wizards of Unica.
A lot of stuff happened (real life, LOTS of work, a bit of a burnout… the usual), but most importantly I reached a personal milestone and recovered my energies, bringing about a lot of progress that we will happily share with everyone in the next few weeks.
When I started working on Wizards of Unica I mostly did it as a learning experience and to grow my passion for development in general and game development (and design) in particular. After about three years I have to say that I am satisfied with what I have learned. Of course you never stop growing and learning, but since this summer I have grown in my understanding of game architecture and I now feel reasonably proficient. As a sort of side project I reorganized all the code, rewrote some modules and tested a few different approaches. It was a blast but also lead to some complacency and to a minor burnout on the main project, which is something that anecdotally seems to happen to a lot of lone developers while working on very long projects.
When Daniele started working with Aseprite it also pushed me beyond my initial goals. The quality of his assets skyrocketed and I decided that it was time to graduate to a more professional approach.
Enter Godot. Godot is an advanced open source game engine, similar to Unity. Thanks to a great community and the knowledge that I gained in the last few years, in just a few weeks I was able to rebuilt the core of the game and right now I am speeding through the process of working out map generation. And I am loving it.
How is it to move from your own code to a tool? The classic engineering response is definitely applicable here: it is a trade-off. The correct question is: is the trade-off good for you and the project?
For me it was about losing flexibility in managing the components of the game (for example I had implemented my own component manager with a deferred queue for insertion and removal of objects, now with Godot when I needed to delete a component I had to jump through a few loops…) but not having to concern myself with a a lot of stuff that do not interest me and ends up simply being a chore (like the whole UI thing…). Overall, spending more time in writing game logic is so much better than spending more time writing user interface stuff that using a tool is simply the better solution, hands-down.
Honestly it was a big decision. I had done so much already that moving to a more deliberate and professional workflow seemed just a waste of time and a way to procrastinate. A case of the “big rewrite” bug so common to developers. But in my line of work I also learned to deal with the Sunken Cost Fallacy. In a nutshell it means spending more to not waste what was already done instead of realizing that whatever you spent is gone and the only important figure is how much it will cost to follow though compared to find a new solution. In this case, I hope I did the right thing and that the cost* of switching will be less than persevering.
(* by cost I mean anything from time to energy to product quality, not only money).
What do you think? Was it a mistake? Was doing it the hard way a mistake from the beginning? Care to ear something more about my experience with Godot?
Thanks for reading.