I want to say that I was a player long before I was a developer, so I completely empathize with the frustration that you're feeling. It's one of the unfortunate parts about being on this side of the process, weighing whether or not the long term benefits of a change outweigh the aggravation it may cause players during implementation. I used to weigh those decisions quite heavily but at the moment, I've decided the best thing I can do is go full force with the changes I want to make so that in the long term, there is little no additional game breaking inclusions I can make.
And if it makes you feel better, I am close to the point of accepting that the level of tech I'm adding is nearing it's apex. The only two things I really want to do, is restructure the character class to rely on inheritance so that side characters that don't require all the additional stats won't have them, as well as create a "character sheet" of sorts that when turned on allow players to manipulate all of a character's stats. A cheat mode sort of thing. My goal is to have those incorporate in the next couple of releases and then after that, I think I'm done in terms of enhancements.
So to your point, I'm hoping the end is near on that front. I'm glad that you enjoy the game and appreciate that you care about it enough to let me know what you think. And I have to believe that in 12 months time I will have streamlined everything I possibly can and will have nothing short of a very stable foundation going forward.
Again, I appreciate you sounding off your frustration and I hope that in the long run, this period of growing pains will fade into distant memory.
Side Bar:
And for anyone who cares to know or understand why all this change is happening. I come from a background in analytics and data science. I program extensively in R and in Python for that purpose. So while coding this game is definitely within my comfort zone, I find myself having to think about data structures in a whole new way that I'm only now getting a grip on.
Because I know what the long term prospects of my project are, I'm trying to lay a lot of groundwork now so that things will fall into place perfectly later. One such example is the customer character class I use in my game. I've always known that I wanted to make more than one game. And I've known that when the time comes to make another, I'll want to export your decisions and the attitudes of these characters as you left them so that they appear as side characters in another game in exactly the same way. The easiest way to handle that import/export of characters is through a self contained object that has the entire history of that character.
But the challenge of creating that character class is not completely knowing which stats I'll want to track and which character "types" require which stats. So it's a bit of an evolution to create this character class in a way that it captures everything I want, but is simple and efficient enough that I can slap it into the code without bugs or exceptions haunting the methods and attributes. For what it's worth, I feel like I'm almost there and have gone so far as to include a few generic lists in there just in cast I think of something else.
So for what it's worth, each time I change the code and destroy compatibility, it's with a long term vision in mind and the objective of never having to change/break it again. A ton of shit was added in this last update, mechanically speaking. I have more I want to add in the next, and maybe one or two in the update after that. Beyond that horizon, it should be right where I want/need it to be to move forward and just add chapters and scenes going forward.
This my friends is the goal! If people are willing to just hang in there with me a little more, I think the end result will look good from the front as well as the back.
Salute friends!