Tuesday, April 17, 2012

[FA] Rock, Paper, Scissors

Rock, Paper, Scissors
This is a support mod that enables complex per-armortype and per-category damage multipliers on a weapon by weapon basis, providing a robust framework for creating a rock-paper-scissors balance mod for FA with minumum effort and maximum precision.
Main Features
·········································································································
- It is fully backwards compatible and totally opt-in, meaning that playing an otherwise unmodded game with it will have no effect, and only weapons whose DamageType has been modified to use a specific string format will do altered damage.
- Fully customizable DamageType-to-ArmorType multiplier format, allowing as many ArmorTypes as you want to use, and allowing each weapon to do different damage to each ArmorType (including Shields). A unit's ArmorType can also now be changed via script, allowing abilities or enhancements to change its survivability profile.
- Each weapon can have one category-based damage multiplier that can be used in concert with ArmorType multipliers to create complex scenarios such as a bomber that is highly effective against most structures, but considerably less effective vs mobile units, AA, PD, and other hardened defenses.

Much more information is available in the included readme. Place the mod's zip file directly into your \mods folder (or extract it to a RockPaperScissors folder) and enable it in the mod manager.
Since it does nothing on its own, you'll want to read the section of the readme that details the DamageType string format, or look at/uncomment the demo merge blueprint in example_mod_units.bp (a Sprite Striker that does varying damage to all different target types).

Download v1.1
Version History
·········································································································
1.0: First release
1.1:
  • Improved configurability - now searches each active mod's root folder for an 'rps_config.lua' and imports settings; the format of the DamageTypeOrder table is simplified
  • Reduced offset calculation redundancy - string offsets are now calculated once at the start of the game and stored in a global table, rather than for every damage event
|||First class work Mithy, :)
exactly how it should work, in my consideration.
I wish I had as much idea about the coding. as you.
now missing is a sensible balance.
which is not easy. :roll:
Greetings|||eddy|||FA just has too many units, is my opinion. They don't serve enough distinct purposes.|||I agree, and I was even planning to eliminate tier redundancy and cull about 2/3rds of them, and then SC2 came out, and it was like, ok, this game mostly did what I was about to spend 50+ hours trying to do for minimal payoff in a crappier game engine. So I gave up, but I still had some code sitting around related to this.
For what it's worth, this could be implemented in SC2, and could possibly be even more flexible (I think SC2 passes the actual DamageData table through to the unit like Demigod does, but I don't recall offhand).
Edit: Nope, looks like they pulled that. That's too bad; that was one of the best things about Demigod from a modding perspective. You could pass any data through from weapon to unit without disrupting anything. Although I'm sure that the fact that the entire damage code was done in lua probably contributed to how comparatively poorly the game ran.|||I just realized I released this with a UID starting with F, which was possibly dumb since any mod that wants to require/use it will need to have a higher UID. This shouldn't be an issue for balance mods, but just be aware that your UID needs to be alpha-numerically higher than this mod's.|||Mithy|||We'll just have to disagree there. I've always preferred competitive balance, and competitive games don't go over 30 minutes anyway. SC2 definitely has a few small balance flaws (*cough* mass conversion), but experimental strength isn't one of them, and it has much better overall competitive balance.
FA's balance and variety in competitive play was extremely flat and narrow in comparison, as 95% of the game's units never even entered use because if you sacrificed the economy for them, you were dead. FA experimentals didn't have better raw cost-effectiveness than their equivalent cost in units either, and it took 30 minutes just to build one unless you played 20m NR or ultra-massive maps. Even T3 units didn't have better raw cost-effectiveness than T1, but because of the broken veterancy and pathing systems, you couldn't afford to fight T3 units with T1.|||Great mod Mithy. Though there is an issue, players need some feedback on the armor / damage type employed, otherwise it'll get confusing. I'd add additional categories ie. bunker buster weaponry/explosion resistant armor plating etc to the units in question ui details.
On a Off-Topic note, I have to disagree on scrapping Tech tiers, the lack of those are a major reason (among too many others) why I snub supcom2, it's just another boring standard RTS I can do without. No Score, no acceleration of buildtimes, lack of scale, no rate based economy, no Sim City, etc.
For me it is a luxury to have additional tiers of units to play with and I'd never dream of castrating (*cough* "streamlining") such a feature in a rich game.
You just get less content.
I want a fun game similar to Total Annihilation, not a small scope console playable game you see dime a dozen today.
I think it is among GPG's biggest mistakes sacrificing this among so many other features to please some outspoken people. I sometimes wonder why you even play this game and not one of those which match your wants much better to start with.|||I agree about the UI feedback, but since I'm not personally using the mod, and I'm far from a UI expert, I'm leaving that up to anyone who wants to use this - for now.
If anyone wants to help me expand it by providing unitview code to display armortype properly, I will happily add that, implement the sim-side part of it, and credit you. It would probably be best to insert it underneath the unit description, since I doubt there's any room left in the unitview itself (at least with GAZ_UI / TV UI).
It should be possible to display damagetypes as well, but actually formatting that info in the UI so it's meaningful and readable would be really difficult. I can't expand the DamageType string format any further to add a 'description' without using some serious string search/replace stuff, which would have a lot more performance impact than the substring checks I'm using now.

Re: balance, I wasn't talking about the removal of tiers at all, just tiered economy and exponential costs. One mex, one hydro, one powergen per faction. Maybe some over-time increase with the mexes and hydros, but nothing on the order of the 9-14x scaling found in the original game - maybe 2x at most. Then re-work the tiers and costs so you get more complex units in the higher tiers, instead of just 'better' units, and so it's not as risky and expensive (nor as insanely beneficial) to build one or two higher-tier factories.|||Well, the ui code itself doesn't sound all that tough and matching some strings to others neither. The real pain would be those units which have a ton of weapons, ACU/SCU and those Experimentals.
Yep, using the description window ought to work well, possibly colorcoding the entries, maybe adding some tags per weapon and so on, nice little thing to get into, not difficult but possibly time-consuming to do well. sigh, once planned to add in weapon dps into there.

Anway, true, that mechanic would add a intriguing layer to the game, but it sounds like a real boatload of work to pull of the right way. It's obvious I still prefer the exponential mechanic, ehem, but yeah I get the appeal.|||Bump for a new version.
If you're currently using this, take note of the altered configuration system as outlined in the readme - a game.lua hook is no longer necessary, and the format of the DamageTypeOrder table has been simplified.

No comments:

Post a Comment