Something I had not paid proper attention to were the nature of the levers required to balance units so far in the game. It's extremely hard to understand, and I can't just use it directly in much of any fashion because it's being translated at runtime into one end product that is based on either AI War Classic data from a spreadsheet, or the data from AI War 2 balance xml files.
The complexity of this has led to a variety of funky things, like certain things costing nothing, or having movement speeds so high that they wrap back around into the negative numbers, or things of that nature.
Right now there are also a ton of things that look like they're trying to auto-balance themselves, mainly because systems were created separately and then linked to ships. I'm now having the system entries be separate still, but defined as children directly on the ship, meaning that there's less need to look between files and you can better understand what you're looking at directly in one file.
With that in mind, I'm also having battles with myself on which things to put into a lookup (for ease of knowing whether a number is high, low, or indifferent -- what the scale is, essentially), or to have it just be a raw number (for ease of understanding one ship versus another). I'm handling that on a case by case basis.
What's telling, though, is that I'm having to massage and condense the data already, so even after I do this conversion the data isn't going to be the same as it was before. Not that the game was well balanced before, so it's no great loss, but it's worth noting.
I'm also thinking ahead to my additions for the randomization, and so trying to make things not depend on so much else in order to calculate themselves. And thus letting myself calculate strength dynamically, I think, before too long; that will be important with the changes to having things be random and thus the strength values needing to reflect that.
Overall the biggest challenge is just making it so that I can look at an xml entry and know pretty much what it means. I already thought I could do that, but in the current version there are literally dozens of multipliers on most things, so my understanding of it was almost always flawed.
I know exactly why it was set up this way initially, but as the system has grown it has made it so that you pretty much need to understand most of the system in order to make even small changes. I'm trying to basically decouple things so that's no longer true.
It's coming along, but I still have a long way to go. Hopefully by the end of Monday on the non-randomized part of this. It should fix bugs in a ton of ships, along with being more moddable, although it will probably introduce some new balance issues as well.