What we would really need to keep up with vanilla is consistency in the main-xxx.c files, and in the many files at the end of the alphabetical list of c. files (util.c, z-term.c, etc.....). And what I mean by consistency is that that they can change, but we should be able to simply swap out the old file for the new one, compile, and outside of maybe some minor changes it should work. Or, if those files do need to be seriously re-written, they are done all at once and then kept consistent again for a couple years. When I updated the NPP codebase from 3.0.6 to 3.1.2v2, by the time I was done 3.2 was aleady finished and the codebase I was working off of was already obsolete.
Here is an example of "consistency" & how it can cause difficulties when going from one version to another. When I was going from 3.0.6 to 3.1.2v2 was that most of the functions for reading and writing files (in util.c) used to return -1 for failure, and 0 for success. In 3.1.2v2 these same functions were switched to return 0 for failure, and 1 for success. When somebody does that deliverately to their own codebase, it is simple to change. When that code goes into a variant github style, and everything compiles OK, but the game is horribly broken. One change like that isn't a big deal, but when we are dealing with the cumulative effect of many changes like that makes it just not worth it to keep up with Vanilla. I think it took me 4 months of coding from the time I started updating the codebase from when my playtesters could play for more than a couple minutes without it crashing. If I knew that codebase was going to be consistent for a couple years, then it is worth it. But if it is going to be completely changed again before I am even done, not worth it.
But in the end, Nick probably has the best answer. Do what you need to do and we suck it up...just please forgive us if we rant once or twice a year.
Leave a comment: