On lookup tables: if we went with a logarithmic scale, that's absolutely what we'd have to do. The game computes "how much damage would X do to Y" way too often to be doing any kind of exponential math in the computation as often as armor is involved.
We actually use lookup tables for converting "ship current->destination slope" to "ship rotation angle" to avoid calling sin() and cos() a ridiculous number of times simply for movement, and that's a fairly extensive set of numbers. Though the magnitude of a new lookup table would need to be sanity checked due to our relatively tight heap-size ceiling.
Cyborg, to clarify: are you talking about (in a case with no hull multipliers for simplicity) :
1)
damage = attacker_raw_damage - f(defender_armor_rating - attacker_armor_pen)
where f(n) = log(n) (and presumably other multipliers or whatever, as straight up log(n) would produce pretty low values)
instead of the current f(n) = n
or 2)
damage = attacker_raw_damage * (1 - f(defender_armor_rating - attacker_armor_pen) )
where f(n) = log(n) (and whatever other stuff and/or divisors to keep 10 armor from nulling out all damage, negative damage, etc)
Anyway, I don't know right now that the subtractive model is fundamentally unbalanceable, or that a logarithmic model would be better on that count, but it's possible.
I meant #2. Very good, thank you for understanding what I'm talking about!
I know that most people are not going to read a big wall of text, but
here is the problem as I see it:You have spent a few years now adding expansions and ships, strategic points, objectives, and so on to the point where there are just too many to keep track of in our heads. In other games, launching a new expansion might mean making old content obsolete. As an example, look at World of Warcraft. You can have all of this crappy armor at every single level all the way to the maximum level, and it doesn't really matter because each tier is only balanced against its own tier.
You can't do that. You are supporting all of your expansions and all of your ships, so making all of them worthwhile means that when you add new content that's much more badass than the old content, you would have to do a balance pass every single time, and it's just untenable at this point. You're relying on people like myself to really give you a magnified view of ships that are 3 years old against content that just came out at the end of last year.
That's why we see crazy armor values of 8000 or more, or really crappy armor values that don't mean a thing. On top of that- and probably to compensate for a usually meaningless statistic- you have specialized hulls on the ships to actually give you the kind of action/reaction between the types of ships. It's to actually create relationships between the ships that the armor values just don't do anymore in most cases (there are exceptions, lawyers out there). The other crazy thing that you have done (and I mean this nicely) is trying to put caps on things like armor boosting, because the linear relationship boosted becomes ridiculous. If you try and boost something on a logarithmic curve, you will not have to cap it! The math takes care of itself.
So what I'm suggesting is to create a logarithmic curve where the balancing steps are (off the top of my head):
1) create a linear graph of the ships armor ratings
2) map it to a logarithmic curve
3) create a bar graph showing HP, damage, armor (color-coded by hull type)
The advantages of doing this balance is that you will never, ever, need to touch armor again because every ship will maintain its position on the graph; ships that were created 3 years ago will still have an armor rating that can go up against the fallen spire. You might be saying, the HP will need to be adjusted, and maybe so, but I think that the hull multiplier already takes care of that for you.
As someone else said, I would have thought that the hull type multiplier comes after normalization, but if that's how it's balanced, so be it. Not a huge deal.