Project Perfect Mod Forums
:: Home :: Get Hosted :: PPM FAQ :: Forum FAQ :: Privacy Policy :: Search :: Memberlist :: Usergroups :: Register :: Profile :: Log in to check your private messages :: Log in ::


The time now is Fri Mar 29, 2024 5:02 am
All times are UTC + 0
Experience Modifiers
Moderators: Ares Support Team at PPM, Global Moderators, Red Alert 2 Moderators
Post new topic   Reply to topic Page 1 of 1 [27 Posts] Mark the topic unread ::  View previous topic :: View next topic
Author Message
m7
Commander


Joined: 17 Apr 2009

PostPosted: Sun Jun 23, 2013 4:35 pm    Post subject:  Experience Modifiers
Subject description: From the MO IRC Channel
Reply with quote  Mark this post and the followings unread

A conversation about Ares features (and my desires for a more developed Veteran and Elite system that I have no actual ideas how I would want or could use) lead to the discussion of veterancy multiplier based on effectiveness. After some thinking, I had a set of tags that I devised could be a good way to implement such.

Experience.Weak=
Experience.Normal=
Experience.Strong=

Weak would be what the unit is weak against, normal for what it would be considered 'neutral' in effectiveness, and strong for what it would be designed to beat. For sanity's sake using generic InfantryTypes, VehicleTypes, AircraftTypes, BuildingTypes would be a flexible system that many people could get a use out of without it being overly complicated. Values like <all> or <none> could be given as generic entries. Defaults could be to <none> on Weak and Strong, while <all> is used on normal to prevent any adverse side effects from the logic. Then, the issue of how much extra experience popped into my head, which I devised a special tag for.

Experience.Modifier=
Experience.Modifier.XXX=

Experience modifier could be used without the third part to cause a unit to just promote faster than others, or to promote slower. The third section would read Weak, Normal, Strong and could be used to change how much experience a unit gains per unit. This would use a percentage value to set, where default value would be set to 1 or 100%.

For example, in my own project the basic infantry of the Soviets (Pyroscripts) are effective against infantry, do normal damage to buildings, and are weak to buildings and aircraft. If I were to have to give an example of how I would use this, I would do something along the lines of...

[CONS]
...
Experience.Weak=VehicleTypes,AircraftTypes
Experience.Normal=BuildingTypes
Experience.Strong=InfantryTypes
Experience.Modifier.Weak=125%
Experience.Modifier.Normal=100%
Experience.Modifier.Strong=90%

The Pyroscript is weak to vehicles and aircraft, so destroying them would give them an extra 25% experience gain for destroying them. Since they are not weak or strong against buildings, experience gain would stay the same. And due to a favorable matchup against infantry, they would get 10% less experience from killing them.

Another example could be for the hero infantry, which are already considered the elite of each side. I have the hero unit Winston, an Allied sniper capable of killing all infantry in a line in one shot. For such a unit, experience gain would occur faster and I would want to control how much experience he could gain against otherwise easy targets. I would set the following as such, meaning he would have to work even harder to get promoted.

[WINSTON]
...
Experience.Modifier=.75

I have no use for this feature and I'm not requesting it. I just didn't want it to be lost since I thought it could have potential if it got community support.

Back to top
View user's profile Send private message
Graion Dilach
Defense Minister


Joined: 22 Nov 2010
Location: Iszkaszentgyorgy, Hungary

PostPosted: Sun Jun 23, 2013 4:43 pm    Post subject: Reply with quote  Mark this post and the followings unread

I give an A for the specification, but right now I have no plans for this request.

However, if there are any volunteers for this, (s)he is welcome, the feature should not need any new hooks and could be written purely in C++ with ease.

I even can lend the one a helping hand.

_________________
"If you didn't get angry and mad and frustrated, that means you don't care about the end result, and are doing something wrong." - Greg Kroah-Hartman
=======================
Past C&C projects: Attacque Supérior (2010-2019); Valiant Shades (2019-2021)
=======================
WeiDU mods: Random Graion Tweaks | Graion's Soundsets
Maintainance: Extra Expanded Enhanced Encounters! | BGEESpawn
Contributions: EE Fixpack | Enhanced Edition Trilogy | DSotSC (Trilogy) | UB_IWD | SotSC & a lot more...

Back to top
View user's profile Send private message Visit poster's website ModDB Profile ID
Renegade
Cyborg Artillery


Joined: 21 May 2006
Location: Hamburg, Germany

PostPosted: Mon Jun 24, 2013 5:56 pm    Post subject: Reply with quote  Mark this post and the followings unread

The effort put into this makes me see why you wouldn't want to lose it, but ultimately...what would be the point?
Unless I missed something, this is essentially the same thing as armors & verses are for damage. So not only would be it far easier to base an alternative system like this on armors and verses as well, in reality, in the vast majority of cases, the damage settings will already reflect the situation you're trying to describe: It'll be weak against certain units, strong against others, and average against the rest.

So if you already have the exact situation you want to describe coded 90% of the time...why not just tie experience to that?

Currently, veterancy is decided based on own cost times VeteranRatio.
Instead of that, suggest a global trigger VeteranRatioBase=(Primary|Secondary|Cost); Cost triggers stock behavior. If Primary or Secondary, the VeteranRatio is a multiplier to the raw Damage of the Primary or Secondary weapon of the unit. e.g. if you have
Code:

[General]
VeteranRatio=100.0
VeteranRatioBase=Primary

[SomePrimary]
Damage=100

the unit would have to deal 10000 damage points in kill shots in order to be promoted.

Here's where it gets interesting: Counted against that limit is not the raw damage dealt, but the raw damage minus the adjusted damage which actually gets inflicted upon the target.
iow if your Damage=100 weapon is a crossbow and you're shooting at a bunker, ultimately only dealing 1 point of damage per shot, and you still manage to kill that bunker, you get 100-1=99 points of experience.

If, on the other hand, you're using your crossbow against an unarmored foot soldier, dealing 200 damage per shot, you'd get 100-200=-100 experience, and it'd probably be counted as 0 experience, or 1 point of token experience.

That way, your path to promotion is based on the effectiveness of the unit just as much, but you only have to introduce one additional flag to the rules, and don't have to configure every single unit individually.
You don't have trouble with asynchronous weapon/warhead and effectiveness settings, either.

Yes, I'm certain someone will come up with an edge case. "liek, omg, what about teh enguneer?!?!!!". There are always edge cases. The OP-proposed system will have trouble with things like pseudo-VehicleTypes, for example (e.g. Infantry mechanics built as VehicleTypes).

More granular controls cover more edge cases. That's true. But for 90% of all practical cases, tying this to the actual damage dealt does the same thing with far less effort on the modders' part.

_________________
#renproj:renegadeprojects.com via Matrix - direct link

Back to top
View user's profile Send private message Visit poster's website
WoRmINaToR
Rocket Cyborg


Joined: 31 Oct 2008
Location: AKA Sir Prize

PostPosted: Mon Jun 24, 2013 6:19 pm    Post subject: Reply with quote  Mark this post and the followings unread

The math you're describing for that system doesn't make any sense, though. The way you just described it, while a unit which is 200% effective against the unit it just killed would gain no experience, a unit which is only 100% effective (normal) would also gain no experience as well (basically, you would be subtracting base damage from itself, which equals zero). The only way for a unit to gain experience at all would be to attack targets which it is less effective against.

Instead, add the difference of those two values to the base experience gain. That way, a weapon which is 200% effective will still end up with 0 experience [(100-200) + 100 = 0], however a normal engagement with a 100% effective weapon will result in full experience being granted [(100-100 + 100 = 100]. Further, in the case of the unit being only, say, 50% effective, the unit would gain bonus experience because it's fighting a unit that it's not as powerful against [(100-50) + 100 = 150].


Using that math, Renegade's system is clearer and more concise than OP's, and overall easier for the modder (and probably the Ares coder as well) to implement.

_________________
New name: Sir Prize. I've switched to a new account to update to the name I've been using everywhere else for the last several years.

Back to top
View user's profile Send private message YouTube User URL
Graion Dilach
Defense Minister


Joined: 22 Nov 2010
Location: Iszkaszentgyorgy, Hungary

PostPosted: Mon Jun 24, 2013 7:44 pm    Post subject: Reply with quote  Mark this post and the followings unread

WeaponX logic says hi.

_________________
"If you didn't get angry and mad and frustrated, that means you don't care about the end result, and are doing something wrong." - Greg Kroah-Hartman
=======================
Past C&C projects: Attacque Supérior (2010-2019); Valiant Shades (2019-2021)
=======================
WeiDU mods: Random Graion Tweaks | Graion's Soundsets
Maintainance: Extra Expanded Enhanced Encounters! | BGEESpawn
Contributions: EE Fixpack | Enhanced Edition Trilogy | DSotSC (Trilogy) | UB_IWD | SotSC & a lot more...

Back to top
View user's profile Send private message Visit poster's website ModDB Profile ID
m7
Commander


Joined: 17 Apr 2009

PostPosted: Mon Jun 24, 2013 8:19 pm    Post subject: Reply with quote  Mark this post and the followings unread

I figured a warhead-based system would be more difficult to implement, but that's just because I have no experience with the engine and adding in Ares features. The original idea is pretty much what Renegade proposed, so I would say it is a much better implementation of the original idea.

Back to top
View user's profile Send private message
WoRmINaToR
Rocket Cyborg


Joined: 31 Oct 2008
Location: AKA Sir Prize

PostPosted: Mon Jun 24, 2013 8:51 pm    Post subject: Reply with quote  Mark this post and the followings unread

Graion has a point. Multiple weapons complicates this system quite a bit. Besides, even with just primary and secondary, what if the weapons have different damage values and are useful for destroying different targets, and you would want to reward veterancy for killing targets with both weapons (or more if you're using WeaponX logic)?

Also, something else to keep in mind: with this system, because cost isn't being taken into account, how would we deal with the case where one unit is vastly more powerful or valuable than another, but shares the same armor type as the other, weaker unit?

Unless we are talking about experience being granted per-hit rather than per-kill, then M7's system works in that case where Renegade's suggested implementation is unclear.

_________________
New name: Sir Prize. I've switched to a new account to update to the name I've been using everywhere else for the last several years.

Back to top
View user's profile Send private message YouTube User URL
Renegade
Cyborg Artillery


Joined: 21 May 2006
Location: Hamburg, Germany

PostPosted: Tue Jun 25, 2013 6:52 pm    Post subject: Reply with quote  Mark this post and the followings unread

WoRmINaToR wrote:
The math you're describing for that system doesn't make any sense, though.

Just because it achieves something different than you expect doesn't mean it doesn't make sense. Wink
As described, a unit gains little to no experience for doing things it's designed for or already exceptionally good at. Because it's reasonable to assume that there's very little learning and improving involved in doing the exact thing I was designed for.
Whether that is desired or not is part of a different debate.

The reason it is that way is actually
WoRmINaToR wrote:
Unless we are talking about experience being granted per-hit rather than per-kill [...]

I originally designed it as "add up all adjusted damage dealt until you reach VeteranRatio * raw Damage=". I changed it to being kill-based to be in line with OP's description, to show how the same basic system could be achieved easier through the damage system.

Graion Dilach wrote:
WeaponX logic says hi.

WoRmINaToR wrote:
Graion has a point. Multiple weapons complicates this system quite a bit.

Renegade wrote:
Yes, I'm certain someone will come up with an edge case. "liek, omg, what about teh enguneer?!?!!!". There are always edge cases. The OP-proposed system will have trouble with things like pseudo-VehicleTypes, for example (e.g. Infantry mechanics built as VehicleTypes).

Multiple ways of attack complicate any system. This system is no exception, and neither is the OP's - consider the Desolator: Is it "strong" against VehicleTypes, or is it not? What about the Magnetron vs. an Apocalypse? I can do that attack without doing a single point of damage to the Apoc, or I can do it annihilating it (by dropping it on a cliff or into water). Is the Magnetron "strong" or "weak" against VehicleTypes?
How about Aegis Cruisers against VehicleTypes? I would say an Aegis Cruiser pretty much sucks against a Typhoon Sub. So it's weak against Vehicles, right? Enjoy your promotions when you meet a group of Nighthawks...

Edge cases are interesting, but implementing a system that is 100% more complex and 500% more verbose, just because it covers 5% more cases, is silly - especially in situations where there is no displayed community need.

If multiple weapons are deemed to be that big of an issue (they're not), you can always make the promotion base dynamic: The current weapon's raw damage times VeteranRatio, rather than a fixed one. It'll require one counter per weapon, and a bit of averaging and formula magic to determine when to promote the unit overall across weapons, but it's possible. It certainly doesn't complicate the system "quite a bit", and it certainly doesn't make defining specific properties for every object in the game the better choice.

WoRmINaToR wrote:
Also, something else to keep in mind: with this system, because cost isn't being taken into account, how would we deal with the case where one unit is vastly more powerful or valuable than another, but shares the same armor type as the other, weaker unit?

Counter-question: Why is cost a reasonable base anyway?
The Industrial Plant, the Cloning Vats, mind control and vehicle thieves all allow the creation or acquisition of expensive units for less or no costs than prescribed for that unit. Can you really say your Yuri Prime is worth 1500 if you got it for free? If you pit a Tanya on a cliff against an army of Conscripts in the valley...is it really all that hard to kill 4500 credits worth of shit?

My point is: You are comparing both systems as if the cost-based system were a reasonable base, and we were thinking about crazy deviations from it. It's not. It's arbitrary and only worked in RA2 because WW linearly made more powerful units more expensive. YR pretty much killed the system's sanity.

Especially in a modding context, there is no guarantee a powerful unit actually has high cost, or ultimately cost anything.
In other words: The proposed changes do not add any more uncertainty than the existing system already has.

The ultimate answer is: We don't. But not because of what I just said, but because of an entirely different point of view: Why does it ztyping matter?
Consider this: If you're a Sniper on the battlefield, and you get the insane idea of turning your scope towards a tank, rather than a soldier...does it matter if said tank is a Rhino or an Apocalypse?

Do you think it would require a different way of aiming to kill Hitler than it would take to kill a random civilian?

The loss to the owner is a different one, yes. But the action on part of the killer? Did a GI really handle his M60 differently when he killed an Apoc than when he killed a Flak Track?

Balance is the modder's issue, and in terms of game play action, nothing changed. So why would we add special handling for that case?

_________________
#renproj:renegadeprojects.com via Matrix - direct link

Back to top
View user's profile Send private message Visit poster's website
Orac
President


Joined: 11 Jul 2008
Location: New Zealand

PostPosted: Tue Jun 25, 2013 10:30 pm    Post subject: Reply with quote  Mark this post and the followings unread

I like the idea of experience being granted based on damage dealt.  Of course one could request new tags all day, so I won't suggest an additional tag to give an extra little bit for getting in the killing shot.  But damage rather than kill count seems more fair, and gives support units a bit more of a level playing field to be promoted at all.


If we justify veterancy as promotion for valour or badassery or usefulness, then promotion for killing hitler isn't too far fetched.

Perhaps then a tag is required on the victim as well?  A Cost style tag which sets the unit's actual XP value?

Back to top
View user's profile Send private message
Zero18
Commander


Joined: 10 Dec 2012
Location: I'm too busy conquering the world!

PostPosted: Tue Jun 25, 2013 11:28 pm    Post subject: Reply with quote  Mark this post and the followings unread

I would prefer to have this tags being imply to Ares, because I like C&C3 style. It is not fair if one of your units kills it and becomes elite fast then steals other kills while you are trying to get other of your units to elite level.

Renegade wrote:
VeteranRatio * raw Damage=


How is that going to work? It is just going to make the promotion even longer and harder. Makes no sense.

It should be VeteranRatio= ;cost of self-value to become elite by multipler

And actually, for each damage, it can give out XP to the unit. Like for instance, if that unit do 50 Damage. We can use ExperienceDamage.Modifier to adjust the amount of XP is given to the unit based on the damage dealt per shot.

Code:

Damage=50
ExperienceDamage.Modifier=0.5 ;Gives out 25 XP per damage


VeteranRatio is up to the modder decision.

_________________
Mod Leader and founder of World Domination


Back to top
View user's profile Send private message
m7
Commander


Joined: 17 Apr 2009

PostPosted: Wed Jun 26, 2013 3:37 am    Post subject: Reply with quote  Mark this post and the followings unread

Quote:
Perhaps then a tag is required on the victim as well?  A Cost style tag which sets the unit's actual XP value?

We're coming closer and closer to an Experience.Value= tag here I feel.

Quote:
You are comparing both systems as if the cost-based system were a reasonable base, and we were thinking about crazy deviations from it. It's not. It's arbitrary and only worked in RA2 because WW linearly made more powerful units more expensive. YR pretty much killed the system's sanity.

I agree that the cost system is an inefficient way to promote units within the YR engine. It creates complications that can't be dealt with easily, and skews balance.

At the end of the day, either system could accomplish what a modder wanted. I prefer the system I posted, even though it does have it's weaknesses. I didn't think of the Aegis/Nighthawk situation, but I do know the Aegis can only fire on air targets. It has it's flaws.  I however would not be against the system Renegade proposed either, if it could be a global tag and have a TechnoType override for the global. It would offer essentially as much flexibility. It's all up to whoever adds in the feature however.

Back to top
View user's profile Send private message
Renegade
Cyborg Artillery


Joined: 21 May 2006
Location: Hamburg, Germany

PostPosted: Wed Jun 26, 2013 5:16 am    Post subject: Reply with quote  Mark this post and the followings unread

Orac wrote:
Perhaps then a tag is required on the victim as well?  A Cost style tag which sets the unit's actual XP value?

m7 wrote:
We're coming closer and closer to an Experience.Value= tag here I feel.

No. We escape the mental trap of "what else could we request?!?!" and just craft a formula using ThreatPosed=, SpecialThreatValue=, LeadershipRating= and BuildLimit= instead.

Orac wrote:
If we justify veterancy as promotion for valour or badassery or usefulness, then promotion for killing hitler isn't too far fetched.

Yes. But that's a different debate. Wink

Zero18 wrote:
[...]
Renegade wrote:
VeteranRatio * raw Damage=


How is that going to work? It is just going to make the promotion even longer and harder. Makes no sense.

I can see how it makes no sense if one doesn't have enough brain cells to read the discussion up to this point.

People with an IQ high enough to breathe without an instruction manual realize that there's little difference between 3.0 * 1500 being approached by 100 a kill, or 45 * 125 being approached by 125 a kill.
(Since you didn't bother to read the context: That's Tanya against Conscripts.)

In fact, those who actually read the discussion would have noticed the topic of hit-based experience gains came up, which would actually make it easier to gain it, since all attacking units would gain experience in parallel over the entire length of the fight, instead of one unit once.

Not to mention that both factors are under the modder's control, so it's actually his decision how long and hard the path to promotion will be.

And people like you wonder why I treat you like idiots all the time. Rolling Eyes

Zero18 wrote:
It should be VeteranRatio= ;cost of self-value to become elite by multipler

Yes. Totally. Because obviously it's just as hard to kill an Apoc as it is to kill a Slave, and depends entirely on the unit's own cost.
Clearly a Sniper and Crazy Ivan should have the same basis for promotion, because they're exactly the same thing and fight exactly the same opponents in exactly the same way.
After all, they both cost 600. It should be obvious.

Rolling Eyes

Zero18 wrote:
And actually, for each damage, it can give out XP to the unit. Like for instance, if that unit do 50 Damage. We can use ExperienceDamage.Modifier to adjust the amount of XP is given to the unit based on the damage dealt per shot.

You know what? How about we just add
Code:

[ModifyFuckingEverything]
E1:ADOG:Clear=Damage~100:Verses~90%,100%,100%,100%,80%,80%,100%,60%,60%,100%,100%
ADOG:ENGINEER:Clear=Damage~90:Verses~100%,100%,100%,100%,80%,80%,100%,60%,60%,100%,100%
ENGINEER:GGI:Clear=Damage~81:Verses~100%,100%,100%,100%,80%,80%,100%,60%,60%,100%,100%
GGI:JUMPJET:Clear=Damage~72:Verses~90%,100%,100%,100%,80%,80%,100%,60%,60%,100%,100%
JUMPJET:SPY:Clear=Damage~49:Verses~100%,100%,100%,100%,80%,80%,100%,60%,60%,100%,100%
SPY:GHOST:Clear=Damage~55:Verses~0%,0%,0%,0%,0%,0%,100%,100%,100%,0%,0%
GHOST:TANY:Clear=Damage~122:Verses~100%,100%,100%,100%,80%,80%,100%,60%,60%,100%,100%
TANY:CLEG:Clear=Damage~234:Verses~90%,100%,100%,100%,80%,80%,100%,60%,60%,100%,100%
CLEG:CCOMAND:Clear=Damage~34:Verses~100%,100%,100%,100%,80%,80%,100%,60%,60%,100%,100%
CCOMAND:PTROOP:Clear=Damage~100:Verses~100%,100%,100%,100%,80%,80%,100%,60%,60%,100%,100%
PTROOP:SNIPE:Clear=Damage~121:Verses~100%,100%,100%,100%,80%,80%,100%,60%,60%,100%,100%
SNIPE:E2:Clear=Damage~89:Verses~100%,90%,100%,100%,80%,80%,100%,60%,60%,100%,100%
E2:DOG:Clear=Damage~45:Verses~100%,100%,100%,100%,80%,80%,100%,60%,60%,100%,100%
DOG:FLAKT:Clear=Damage~50:Verses~90%,100%,100%,100%,80%,80%,100%,60%,60%,100%,100%
FLAKT:SENGINEER:Clear=Damage~40:Verses~100%,100%,100%,100%,80%,80%,100%,60%,60%,100%,100%
SENGINEER:SHK:Clear=Damage~53:Verses~100%,100%,100%,100%,80%,80%,100%,60%,60%,100%,100%
SHK:IVAN:Clear=Damage~190:Verses~100%,9%,100%,100%,80%,80%,100%,60%,60%,100%,100%

That way, we can configure everything for everything! :O
Rolling Eyes

Zero18 wrote:
VeteranRatio is up to the modder decision.

Just like everything else.

_________________
#renproj:renegadeprojects.com via Matrix - direct link

Back to top
View user's profile Send private message Visit poster's website
m7
Commander


Joined: 17 Apr 2009

PostPosted: Wed Jun 26, 2013 5:21 am    Post subject: Reply with quote  Mark this post and the followings unread

Quote:
No. We escape the mental trap of "what else could we request?!?!" and just craft a formula using ThreatPosed=, SpecialThreatValue=, LeadershipRating= and BuildLimit= instead.

I like this idea a lot.

Back to top
View user's profile Send private message
Orac
President


Joined: 11 Jul 2008
Location: New Zealand

PostPosted: Wed Jun 26, 2013 6:09 am    Post subject: Reply with quote  Mark this post and the followings unread

Quote:
Orac wrote:
If we justify veterancy as promotion for valour or badassery or usefulness, then promotion for killing hitler isn't too far fetched.


Yes. But that's a different debate. Wink

I think it's definitely an adjoining debate, since at the moment there seems to be a lack of clear consensus about what should constitute a promotion-able scenario.  But eh, I think we all basically agree that kills should not alone constitute experience.

Anywho.

I like the very simple "amount of damage = amount of experience", but it has some obvious flaws to the point of being a fringe case rather than having fringe cases.  Killing a hero should garner more experience than killing a basic infantry.  The benefit though from my view is that I don't think a tank destroyer should get extra XP for killing infantry.  It's even named tank destroyer, if you're using it against infantry you're clearly not literate (or you're desperate).  In either case, it's not something I think needs rewarding.

So yeah, I agree with utilising the Threat keys to work out a modifier.  Although, aren't they meant for clevering up the AI?  I would assume that you'd begin to see some odd results if you went ramping any of the values up for XP related reasons?

Back to top
View user's profile Send private message
Zero18
Commander


Joined: 10 Dec 2012
Location: I'm too busy conquering the world!

PostPosted: Wed Jun 26, 2013 10:54 am    Post subject: Reply with quote  Mark this post and the followings unread

Renegade wrote:

Zero18 wrote:
And actually, for each damage, it can give out XP to the unit. Like for instance, if that unit do 50 Damage. We can use ExperienceDamage.Modifier to adjust the amount of XP is given to the unit based on the damage dealt per shot.

You know what? How about we just add
Code:

[ModifyFuckingEverything]
E1:ADOG:Clear=Damage~100:Verses~90%,100%,100%,100%,80%,80%,100%,60%,60%,100%,100%
ADOG:ENGINEER:Clear=Damage~90:Verses~100%,100%,100%,100%,80%,80%,100%,60%,60%,100%,100%
ENGINEER:GGI:Clear=Damage~81:Verses~100%,100%,100%,100%,80%,80%,100%,60%,60%,100%,100%
GGI:JUMPJET:Clear=Damage~72:Verses~90%,100%,100%,100%,80%,80%,100%,60%,60%,100%,100%
JUMPJET:SPY:Clear=Damage~49:Verses~100%,100%,100%,100%,80%,80%,100%,60%,60%,100%,100%
SPY:GHOST:Clear=Damage~55:Verses~0%,0%,0%,0%,0%,0%,100%,100%,100%,0%,0%
GHOST:TANY:Clear=Damage~122:Verses~100%,100%,100%,100%,80%,80%,100%,60%,60%,100%,100%
TANY:CLEG:Clear=Damage~234:Verses~90%,100%,100%,100%,80%,80%,100%,60%,60%,100%,100%
CLEG:CCOMAND:Clear=Damage~34:Verses~100%,100%,100%,100%,80%,80%,100%,60%,60%,100%,100%
CCOMAND:PTROOP:Clear=Damage~100:Verses~100%,100%,100%,100%,80%,80%,100%,60%,60%,100%,100%
PTROOP:SNIPE:Clear=Damage~121:Verses~100%,100%,100%,100%,80%,80%,100%,60%,60%,100%,100%
SNIPE:E2:Clear=Damage~89:Verses~100%,90%,100%,100%,80%,80%,100%,60%,60%,100%,100%
E2:DOG:Clear=Damage~45:Verses~100%,100%,100%,100%,80%,80%,100%,60%,60%,100%,100%
DOG:FLAKT:Clear=Damage~50:Verses~90%,100%,100%,100%,80%,80%,100%,60%,60%,100%,100%
FLAKT:SENGINEER:Clear=Damage~40:Verses~100%,100%,100%,100%,80%,80%,100%,60%,60%,100%,100%
SENGINEER:SHK:Clear=Damage~53:Verses~100%,100%,100%,100%,80%,80%,100%,60%,60%,100%,100%
SHK:IVAN:Clear=Damage~190:Verses~100%,9%,100%,100%,80%,80%,100%,60%,60%,100%,100%

That way, we can configure everything for everything! :O
Rolling Eyes


You don't make any sense therefore you are an idiot. I just love how you always start provoking other people first and pisses them off.


But hey dickhead, whatever you do, I don't care. You don't even understand what everyone else is trying to talk. Your logic isn't relevant at all. My idea is about XP giving out based on amount of damage per shot.

Like I said, your idea,
Code:

VeteranRatio*Raw Damage

Fails. I ain't saying anything, I'm sure you know why it doesn't work that way. You are not 2 year old, are you? Unless you stop posting irrelevance code that isn't even part of this, and useless crap. Then I will be maybe a little nice to you. Just saying.

_________________
Mod Leader and founder of World Domination


Back to top
View user's profile Send private message
Orac
President


Joined: 11 Jul 2008
Location: New Zealand

PostPosted: Wed Jun 26, 2013 12:02 pm    Post subject: Reply with quote  Mark this post and the followings unread

Zero18, this is a thread discussing potential expansions to the exisiting logic.  Thus, suggesting VeteranRatio*Raw Damage as a potential way of doing the calculation is completely valid.  I'd like it if Ren was calmer and more collected in his responses, but this particular bout of snarkiness was minor, valid, and helped the conversation along.
I want to also point out that you called him a dickhead first.  When all he did was show what a poor implementation of these concepts would be.  And used the smilies ":O" and "Rolling Eyes"

:O
Rolling Eyes

Back to top
View user's profile Send private message
Zero18
Commander


Joined: 10 Dec 2012
Location: I'm too busy conquering the world!

PostPosted: Wed Jun 26, 2013 12:24 pm    Post subject: Reply with quote  Mark this post and the followings unread

Yes. That is poor concept. But what I suggested was a simpler concept of using exp damage modifier that basically act like "cost".

And it can be easy to category weak, normal, strong. It just need to connect to the armor types list, instead of doing it the long and painful way. If it can be done.

Like for example
Exp.Weak=light
Exp.Normal=medium,heavy
Exp.Strong=concrete
ExpDamageModifer=0.5

We can say, for example, a global exp modifer.
ExpWeakModifer=0.5
ExpNormalModifer=0.75
ExpStrongModifer=1

So, it is 12.5 xp (cost) for each damage done when vs units that beats your unit. And so fore on.

Orac, I do argee, Ren needs to be calmer. I was simply giving out what I think. Instead Ren goes up and bash everything. He is making a wide assumation that if someone post what they think about this logic. He automatically sees them that they don't read. What if they actually read, like I do.

_________________
Mod Leader and founder of World Domination


Back to top
View user's profile Send private message
WoRmINaToR
Rocket Cyborg


Joined: 31 Oct 2008
Location: AKA Sir Prize

PostPosted: Wed Jun 26, 2013 4:25 pm    Post subject: Reply with quote  Mark this post and the followings unread

Orac wrote:
I like the very simple "amount of damage = amount of experience", but it has some obvious flaws to the point of being a fringe case rather than having fringe cases.  Killing a hero should garner more experience than killing a basic infantry.  The benefit though from my view is that I don't think a tank destroyer should get extra XP for killing infantry.  It's even named tank destroyer, if you're using it against infantry you're clearly not literate (or you're desperate).  In either case, it's not something I think needs rewarding.


I have to agree with Orac, keeping it simple ought to be the way to go. If experience can be rewarded per-hit, then all we would need is a tag in [General] to trigger the new vet logic, then set VeteranRatio to be the multiple of the units' cost (see below) that needs to be dealt in points of damage to be promoted. Allowing the modder to specify that VeteranRatio on a per-unit basis would also allow for more flexibility, and an Experience.Modifier= tag specified on the victim unit should take care of the edge cases of lightly armed/armored or defenseless units (nighthawk/engineer), or heroes and units with disproportionately high HP pools.

Now, we've already pretty much established that Cost isn't a reasonable basis for determining the true value of a unit, so now the million dollar question: what is? We need something that is to be the base value which VeteranRatio will modify to produce the value of XP a unit needs to gain to be promoted. Rewarding XP based on Cost was debunked, but do you think using Cost to determine the XP needed to promote is still valid?

In the interest of keeping implementation simple, I would be inclined to say yes. Besides, most, if not all, edge cases would be handled by allowing the modder to specify VeteranRatio on a per-unit basis.

Zero18 wrote:
Orac, I do argee, Ren needs to be calmer. I was simply giving out what I think. Instead Ren goes up and bash everything. He is making a wide assumation that if someone post what they think about this logic. He automatically sees them that they don't read. What if they actually read, like I do.


Zero, just quit while you're only marginally behind. Renegade is right and you're just being an asshole. When I first met Ren I went down this same road with him several times and most of the time both of us got nowhere and just ended up making arses out of ourselves. Then I matured up and started arguing more intelligently and stopped getting so defensive. Notice how everyone else here is debating this topic and going back and forth all the same, yet nobody else is getting heated?

Yes, Renegade was the first to respond in that manner, but that was because your argument displayed little thought or attention to the previous discussion. If there's one thing I've learned about Renegade it's that he tends not to like people who don't think. Your job is to not take it personally and not get defensive. Ignore his attitude and compose a calm, carefully organized, and well-thought-out argument, and you should be fine.


Quote:
Like for example
Exp.Weak=light
Exp.Normal=medium,heavy
Exp.Strong=concrete
ExpDamageModifer=0.5

We can say, for example, a global exp modifer.
ExpWeakModifer=0.5
ExpNormalModifer=0.75
ExpStrongModifer=1


This is great and all, but one big problem: How exactly is the game supposed to know what units are strong/weak versus others? We as human beings understand the concepts and the complex system that determines precisely how a matchup between two units goes. The computer has no innate sense of this, so how exactly are we to tell the game which units are strong/weak versus each other?

Sure, we could add a boatload of extra tags on top of the ones you already proposed:

Code:
[UNIT]
Experience.WeakVersus=E1,E2,DOG,DNOA
Experience.StrongVersus=RTNK,HTNK,MTNK,SREF
Experience.NeutralVersus=ORCA,HORNET,MIG,BEAG


But let's be honest: that would add considerable complexity to the system, both for modder and Ares implementor.

Renegade wrote:
Just because it achieves something different than you expect doesn't mean it doesn't make sense.  
As described, a unit gains little to no experience for doing things it's designed for or already exceptionally good at. Because it's reasonable to assume that there's very little learning and improving involved in doing the exact thing I was designed for.


When I say something doesn't make sense, there's an implied "to me" in there #Tongue

Anyways, that's a fair point, but I have to differ with you on the philosophy behind that. The way I see it, units should be rewarded for attacking targets they're supposed to attack, because the experience they are rewarded goes towards making them more powerful versus those targets which they were designed to kill.

Like Orac explained, it doesn't make much sense to grant a tank destroyer more experience for killing infantry than destroying tanks, because ultimately the experience it gains makes it more powerful versus tanks. If the tank destroyer's crew is killing tanks all day, the crew will begin to learn where the weak points of vehicles are, how to target a fast moving object, etc. which in game logic would manifest as a damage bonus for the vehicle.

If they're killing infantry all day, perhaps they may gain some accuracy with all the target practice, but why would killing soldiers grant the crew any additional insight into fighting tanks?

Similarly, as a GI shooting at an Apocalypse tank, why would that GI get any better at accurately shooting at infantry when his "training" is just spraying bullets at a gigantic tank?

Back to top
View user's profile Send private message YouTube User URL
Renegade
Cyborg Artillery


Joined: 21 May 2006
Location: Hamburg, Germany

PostPosted: Wed Jun 26, 2013 8:24 pm    Post subject: Reply with quote  Mark this post and the followings unread

WoRmINaToR wrote:
[...]

Now, we've already pretty much established that Cost isn't a reasonable basis for determining the true value of a unit, so now the million dollar question: what is? We need something that is to be the base value which VeteranRatio will modify to produce the value of XP a unit needs to gain to be promoted. Rewarding XP based on Cost was debunked, but do you think using Cost to determine the XP needed to promote is still valid?

In the interest of keeping implementation simple, I would be inclined to say yes. Besides, most, if not all, edge cases would be handled by allowing the modder to specify VeteranRatio on a per-unit basis.

Semantically, ThreatPosed= would be the best candidate. Because it essentially expresses "this is how dangerous this unit is" - the higher the number is, the more I should be rewarded for killing it.

Unfortunately, Westwood didn't vary the stock values all that much.

I'm not familiar with the AI targeting code, but if it contains formulas beyond ThreatPosed= to determine the most valuable target to attack, just adapting that formula to decide an object's worth would be the easiest and most consistent choice. (Since both the AI as well as the experience system would agree on what's most valuable.)

As outlined in a previous post, I don't think cost is useful as an indicator anymore. Yes, if used traditionally, it is a pretty good indicator in terms of "larger number -> more dangerous unit", but there's no guarantee it's used that way, you don't know how Cost= is set for units which are spawned, delivered by SWs, triggers, built by AI only (TechLevel=11 clones), etc., etc.
Not to mention regular units' problem cases like a $3000 MCV's worth vs. a $1500 Demo Truck - not sure about you, but I'd consider killing the rolling nuclear bomb without getting killed to be a whole lot more respectable than blowing up a slow, unarmed glorified camper.

WoRmINaToR wrote:
Anyways, that's a fair point, but I have to differ with you on the philosophy behind that. The way I see it, units should be rewarded for attacking targets they're supposed to attack, because the experience they are rewarded goes towards making them more powerful versus those targets which they were designed to kill.

That, again, is a different discussion. Wink
That is the question "is this system supposed to simulate gaining experience, or is it supposed to incentivize maintaining an experienced force, rather than letting everything fight until it's dead and then buying a new one?".
The former puts simulation in the focus - the latter game mechanics.

WoRmINaToR wrote:
Like Orac explained, it doesn't make much sense to grant a tank destroyer more experience for killing infantry than destroying tanks, because ultimately the experience it gains makes it more powerful versus tanks. If the tank destroyer's crew is killing tanks all day, the crew will begin to learn where the weak points of vehicles are, how to target a fast moving object, etc. which in game logic would manifest as a damage bonus for the vehicle.

Yes and no. They would learn at first, but then they'd come to the point I outlined. If you're already good enough at your job to reliably annihilate incoming tanks, why improve? Does it really matter if your shot was 1.3 cm off target, if the tank is gone? They'd come to a point where their experience is "good enough" - where they're so good, there's no point in improving further, because they're already achieving all there is to achieve: They're destroying the designated target.

As a sidenote, military gear is generally designed to be as stupidly simple to use for its intended purpose as possible. Not just because there are really stupid soldiers, but also because even the smart ones can be confused in battle. The Claymore mine is famously accompanied by the very clear inscription "Front toward enemy".
Aiming systems in tanks are inherently more complex, but ultimately, the same rule applies: In their complexity, they are as simple as possible.
Point being: The amount there is to learn is potentially limited by design.

WoRmINaToR wrote:
If they're killing infantry all day, perhaps they may gain some accuracy with all the target practice, but why would killing soldiers grant the crew any additional insight into fighting tanks?

If it is a Tank Destroyer with a turret and ammunition that is highly effective against tanks, it stands to reason that compared with each other, shooting tanks is easy, while shooting infantry is hard.
Therefore, doing the things they always do with the systems that were designed for it doesn't actually teach them anything new. Targeting and killing infantry, on the other hand, provides a challenge: It forces them to improvise, to learn about their equipment, to explore new approaches and test the limits of their technology. It forces them to learn and to train to actually achieve the kill, rather than just going through the motions.

And that learning, that training, that experience with their equipment translates into better and more precise handling of their machine in all situations, including fights against other tanks.

WoRmINaToR wrote:
Similarly, as a GI shooting at an Apocalypse tank, why would that GI get any better at accurately shooting at infantry when his "training" is just spraying bullets at a gigantic tank?

Just spraying bullets at the armor of an Apocalypse would hardly destroy it.
Shooting through the tiny observation slits to kill the driver would disable it.
Hitting specific weak points in the armor or machinery would damage it.

If you trained hitting Apocalypse Weakness 35 at Armor Plate 63b in the rear left at an exact angle of 37° to penetrate the armor and hit the fuselage at 60mph a few times, I'm pretty sure that new-found experience with hitting tiny spots on moving targets will prove valuable against the heads of running Conscripts...

_________________
#renproj:renegadeprojects.com via Matrix - direct link

Back to top
View user's profile Send private message Visit poster's website
Orac
President


Joined: 11 Jul 2008
Location: New Zealand

PostPosted: Wed Jun 26, 2013 8:44 pm    Post subject: Reply with quote  Mark this post and the followings unread

In a realistic situation, I agree entirely with Renegade's points.

However, we also need to look at this from the player's perspective.  A promoted unit is a reward for good micromanagement or tactics or just happening to be in the right place at the right time.  Expansion of the system could add factors which reward the player.

To me, one of those factors is good unit use.  This isn't actually that big an aspect of the game when you think about it, since there aren't too many hard counters (Deso, TD, Sniper, anything specifically AA, etc).  Most units will do OK-ish in most situations, and using rhinos against infantry shouldn't be discouraged.
I just think that using rhinos against other tanks should be encouraged.  And that's what the experience system actually achieves, it gives a player a bit more edge and a bit more encouragement for playing the game in a sensible way.

Back to top
View user's profile Send private message
WoRmINaToR
Rocket Cyborg


Joined: 31 Oct 2008
Location: AKA Sir Prize

PostPosted: Wed Jun 26, 2013 11:27 pm    Post subject: Reply with quote  Mark this post and the followings unread

Renegade wrote:
Semantically, ThreatPosed= would be the best candidate. Because it essentially expresses "this is how dangerous this unit is" - the higher the number is, the more I should be rewarded for killing it.

Unfortunately, Westwood didn't vary the stock values all that much.

I'm not familiar with the AI targeting code, but if it contains formulas beyond ThreatPosed= to determine the most valuable target to attack, just adapting that formula to decide an object's worth would be the easiest and most consistent choice. (Since both the AI as well as the experience system would agree on what's most valuable.)

As outlined in a previous post, I don't think cost is useful as an indicator anymore. Yes, if used traditionally, it is a pretty good indicator in terms of "larger number -> more dangerous unit", but there's no guarantee it's used that way, you don't know how Cost= is set for units which are spawned, delivered by SWs, triggers, built by AI only (TechLevel=11 clones), etc., etc.
Not to mention regular units' problem cases like a $3000 MCV's worth vs. a $1500 Demo Truck - not sure about you, but I'd consider killing the rolling nuclear bomb without getting killed to be a whole lot more respectable than blowing up a slow, unarmed glorified camper.

I can't say one way or another if that's the best way to do it, but I must admit I'm cautious about the idea of adding logic to a tag whose value is more or less aribtrary and whose current logic is tied into AI targeting code. Cost= is at least not entirely arbitrary and wouldn't require the modder to go in and investigate/tweak the values for every single unit in the mod to ensure the system works reasonably. Modders who didn't really pay much attention to the ThreatPosed value (For which I know for sure I'm guilty) will have quite a bit of work to do to get the system working the way they want it.

I'm not saying Cost is the way to go, but there are certain advantages to using it which will need to be true of whatever tag we choose to base our veterancy system on-- I would say the most important one being that it shouldn't have potentially unwanted side-effects for tinkering with the values, and it ought to be be a value that wouldn't need to be tweaked or revisited for every unit in the mod to achieve a reasonable balance.

No matter what we use, being able to specify VeteranRatio per-unit and modify experience gain for certain hero/defenseless/high HP units would make that decision easier and require less speculation from us regarding all the possible usage cases that would implement this-- if the modder wants to keep it simple, this system keeps it simple. If he/she wants to get more intricate, they can get more intricate and define individual values for each unit at their leisure.

Renegade wrote:
That is the question "is this system supposed to simulate gaining experience, or is it supposed to incentivize maintaining an experienced force, rather than letting everything fight until it's dead and then buying a new one?".
The former puts simulation in the focus - the latter game mechanics.

Considering that this is Command and Conquer we're talking about here, and not Company of Heroes, I think it's fair to say that we ought to focus on game mechanics, rather than simulation quality. Stark realism never was a defining characteristic of this game.

On that same track, while I hate to be the "I agree with that guy" person, I have to echo Orac's argument-- the player ought to be rewarded for making the most out of his units, rather than pitting them in odd situations just to get that bonus experience. On the subject of hard counters, even in mods like mine which do introduce quite a few hard counters, this wouldn't shake things up terribly. With the current system the chances of that hard-countered unit scoring a kill on its counter are quite low since it does such little damage anyways, so it would be negligible experience gain versus no experience gain, which doesn't matter much to me.

Renegade wrote:
If you trained hitting Apocalypse Weakness 35 at Armor Plate 63b in the rear left at an exact angle of 37° to penetrate the armor and hit the fuselage at 60mph a few times, I'm pretty sure that new-found experience with hitting tiny spots on moving targets will prove valuable against the heads of running Conscripts...

Examples like this extend far beyond the scope of this game's simulation of realism. The fact of the matter is that in Command and Conquer, spraying bullets at an Apoc tank does, in fact, kill it, and reasonably fast at that. How exactly that happens and how it compares to the real world can be left to the imagination, but for gameplay purposes it really doesn't matter. There is a (rather thick) line that separates the real world and the fictional world of Command and Conquer, and that line has to be respected when considering topics like this.

Back to top
View user's profile Send private message YouTube User URL
Renegade
Cyborg Artillery


Joined: 21 May 2006
Location: Hamburg, Germany

PostPosted: Sat Jun 29, 2013 4:36 pm    Post subject: Reply with quote  Mark this post and the followings unread

Alright, so you guys are in agreement that you want the experience/promotion system to incentivize careful, managed unit handling with effective usage in order to create a strong, veteran force?

Then it should be pretty straightforward: The more effective the unit is against the target, the more "experience points" it gains. Since the damage calculation system already does the "how effective is this unit with this weapon against this target?"-calculation, using the adjusted damage dealt as the counting/gaining component of the system would be the best choice.

As for the base value to calculate the promotion threshold, I still consider ThreatPosed= the wisest choice, exactly because it's part of the AI's targeting system. (Or at least claims to be...ModEnc isn't conclusive on that.)
This is the flag the AI chooses to determine how dangerous a unit is. Therefore, it's not an arbitrary value - it's exactly the value we want. It's a piece of data which is used for no other purpose but to tell us how worthy of a target the unit is.
Cost influences built time, Cost doesn't reliably translate into actual worth, Cost can be forgotten and remain unchanged on units that aren't bought (spawned units etc.). ThreatPosed= should be set correctly for all combatants. If that didn't happen, that's a bug. It's the modder's fault for not properly setting up the unit he created or modified. If the modder has done his job properly, then all units have meaningful ThreatPosed-values to tell the AI how dangerous the new and modified units are. Choosing a different value would be no different than the original suggestion: Duplicating existing data and logic.

Just as there's no point in describing again what a unit is strong and weak against while that's already stored authoritatively in all possible game detail in the weapons system, there's no point in describing again how valuable of a target a unit is while that's already stored in ThreatPosed= and a few related flags, like  SpecialThreatValue= or LeadershipRating=.

That being said, if you must use a different flag to store the information, don't use Cost=. Use Points=. It originally served a related purpose, it's unused in RA2/YR, and according to D, it's still parsed and stored on the game objects.
iow, you can store the same information you'd have stored in Cost=, but with a better name and without affecting other game mechanics.


Note to the hypothetical implementer: DontScore= and Insignificant= should be taken into account.

_________________
#renproj:renegadeprojects.com via Matrix - direct link

Back to top
View user's profile Send private message Visit poster's website
MasterHaosis
General


Joined: 01 Nov 2010
Location: Serbia

PostPosted: Sat Jun 29, 2013 5:11 pm    Post subject: Reply with quote  Mark this post and the followings unread

Renegade, yes, words of wise.
Points flag, I totally forgot about it. it should serve wel for new promotion system, but then
Points=20 on units means how many points it has, but PointsNeeded=60 would mean that it needs to kill overall in 60 points to get promoted.
I agree that cost depending promotions are not wise move done by Westwood.

_________________

PPM Halloween Season 2021

Back to top
View user's profile Send private message
m7
Commander


Joined: 17 Apr 2009

PostPosted: Sat Jun 29, 2013 5:59 pm    Post subject: Reply with quote  Mark this post and the followings unread

I like the ThreatPosed= suggested implementation after having some time away to bring a fresh new mindframe to this thread. I think Renegade's idea best translates into determining individual unit worth for a promotion system, and there are two tags that already support special command units or different fringe case units.

Back to top
View user's profile Send private message
OmegaBolt
President


Joined: 21 Mar 2005
Location: York, England

PostPosted: Sat Jun 29, 2013 6:07 pm    Post subject: Reply with quote  Mark this post and the followings unread

Although surely points would be a better tag to link in. You might want a particular unit to be a massive target (using ThreatPosed) that you don't want supplying so much experience. As Points is only used for the end game score so far IMO it'd be great to link that in to other game functions, such as experience or even a prerequisite based on Points.

Back to top
View user's profile Send private message Send e-mail
WoRmINaToR
Rocket Cyborg


Joined: 31 Oct 2008
Location: AKA Sir Prize

PostPosted: Mon Jul 01, 2013 7:00 pm    Post subject: Reply with quote  Mark this post and the followings unread

I do have to agree that Points= seems like the "almost-too-good-to-be-true" candidate for this. It would allow the modder to specify precisely how much experience the unit is worth and VeteranRatio could be the multiple of its own self-worth that it needs to deal in damage to gain promotion. Simple and elegant.

_________________
New name: Sir Prize. I've switched to a new account to update to the name I've been using everywhere else for the last several years.

Back to top
View user's profile Send private message YouTube User URL
MasterHaosis
General


Joined: 01 Nov 2010
Location: Serbia

PostPosted: Mon Jul 01, 2013 9:55 pm    Post subject: Reply with quote  Mark this post and the followings unread

WoRmINaToR, that too! I agree

_________________

PPM Halloween Season 2021

Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic Page 1 of 1 [27 Posts] Mark the topic unread ::  View previous topic :: View next topic
 
Share on TwitterShare on FacebookShare on Google+Share on DiggShare on RedditShare on PInterestShare on Del.icio.usShare on Stumble Upon
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © phpBB Group

[ Time: 0.2188s ][ Queries: 11 (0.0104s) ][ Debug on ]