But I am curious as to what Anaris's thoughts upon implementing tdd into his volunteer dev time would be because I honestly do think we need unit testing, I just also realize the opportunity cost of implementation.
First of all, let me say that while I understand the usefulness of unit testing in general, it is not something that I have ever actually learned. It was not taught to me in my college courses, and once I graduated, I was in a position where time was far too much of the essence for me to be able to justify to my non-technical bosses spending the amount of time required to a) learn unit testing, b) refactor the existing codebase to include it, and c) spend a significant portion of my time going forward writing unit tests.
Second of all, as I understand it (and please correct me if this is not the case, since as I said, I have never actually used unit testing myself), we would only be able to create meaningful unit tests for the portion of the BattleMaster codebase that has been Doctrinified—and even that would require some extensive restructuring to properly support the unit tests. And that doesn't even get into the issues involved with how unit testing and the database would interact.
Third of all, and this is particularly directed at Miskel, I don't think unit testing would have done a blind bit of good in this case, for multiple reasons. First, because the problem here isn't a bug, per se, but rather new behaviour that was being tried out, that turned out to have undesirable effects. Second, because those effects could not become obvious based on any immediate testing: they, like many of the behaviours in BattleMaster, were
long-term effects, due at least in part to the interaction of many different factors.
This game is full of nontrivial effects like that, and even emergent behaviours that aren't a property of any one piece of code, but rather several systems acting in concert, tied together by the actions of the humans running them—whose behaviour, while it can be predicted to a certain extent, is not subject to unit testing.
So no, I'm not willing to just drop everything and spend, like I said, multiple RL
years refitting the entire codebase with unit tests. If Tom or I were willing to accept that kind of timeline for coding that is, to the players, a complete no-op, we would have started rewriting the game from scratch when I first came onto the dev team 6 years ago, and have a very different BattleMaster now.