I had a long break over summer, but the last two months I've started to bring my code under test. I'm sorry for the lack of updates during this time. Here is an update now, complete with some cheesy pictures.
It's already been some time since my project passed the size where I needed to add tests to keep everything in check. If you don't add tests to a code base of that size, chances are that you will break previous functionality when you make modifications or add new stuff. This definitely happened to me and it slowed down development a lot. More so it also took away from my motivation with all the problems that surfaced, resulting in lost development time altogether.
With unit tests you get a safety net that will tell you when things stop working the way they are supposed to. And in terms of fixing the things that break it's a BIG difference between being notified the same minute you broke it, and noticing by chance some long time later when you don't even remember what you did or where you did it.
At the same time that I'm adding tests, I also make changes to the structure of my project to make it easier to work with and maintain in other ways. Removing unnecessary dependencies and getting shorter compile times.
So far I have created tests for most of my utilities - the tools and helpers that provide my game objects with some universal functions like math and other things.The most of the work is still ahead of me, in writing tests for the actual game objects. The game objects being those objects that are visible or otherwise directly affecting the physical game world.
I see this as a necessity before I can keep moving forward with new functionality, and it was a lesson I needed to learn for sure. I've been aware of it for a long time, but up until just recently it has simply been more fun to work on the game itself.
I'm really excited to have you all as my watchers. For the coming year I will try to write a little bit more often about what I'm doing regardless of what it is.