Page MenuHomeWildfire Games

[Gameplay] make ram less effective
ClosedPublic

Authored by borg- on Jun 3 2020, 12:49 AM.

Details

Summary

Rams are always under discussion in the forum about being very strong, especially compared to the cost / benefit of other siege units.
different players are reaching the same consensus:
1- Rams move very fast;
2- They must not be able to attack farms;
3- They must not be able to attack organic units.

I particularly agree with these three points. I cannot agree that a ram moves faster than a pike for example.
I also cannot agree that they can attack soldiers or any other organic unit, this is aa bad point for historical precision.

These changes do not take away all the power that ram has when it reaches its target (I think is fair) but it increases the difficulty a little, making the player to be more careful in escorts or garnish units inside.

As mentioned by @Nescio, changed <PreferredClasses datatype = "tokens"> Gates Structure </PreferredClasses> to <PreferredClasses datatype = "tokens"> Gates Defensive Structure </PreferredClasses>. I already did some tests, it seems to be working perfectly.

Test Plan

I don't think it requires big tests, small changes, but the best way would be in a team game (3v3 or 4v4).

Diff Detail

Repository
rP 0 A.D. Public Repository
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

borg- created this revision.Jun 3 2020, 12:49 AM
borg- created this object with edit policy "borg- (Estevan Borges Martins)".
borg- edited the summary of this revision. (Show Details)Jun 3 2020, 12:59 AM

If we garrison units inside, it should increase the speed of the battering ram.

borg- added a comment.EditedJun 3 2020, 1:35 AM

If we garrison units inside, it should increase the speed of the battering ram.

I agree, but we have a code to help with that?
This must be in a separate patch.

Angen added a subscriber: Angen.Jun 3 2020, 7:50 AM

garrisoned aura

wraitii added a subscriber: wraitii.Jun 3 2020, 8:04 AM

Seems like a change for the better.

For the record, rP11710 introduced a first 'Organic' restriction for rams, then rP15713 removed it as part of the "rebalance". Then there were several 'buff rams' commit, before A21 it seems made them OP by coincidence.
I'm not sure if we've been wrong to think rams were UP in past commits or if this is a new development, but it seems pretty well established now.

I'm in favour if only because rams attacking units never made much sense.


In D2782#118047, @borg- wrote:

If we garrison units inside, it should increase the speed of the battering ram.

I agree, but we have a code to help with that?

Don't we already have that feature? Or is it just AOE2? My memory is foggy.

edit -> angen answered while I was writing this I think

The patch changes ram speed from 8.1 to 7.2, so from the same speed as an unpacked bolt shooter to the same speed as an unpacked catapult, making it easier for infantry and elephants to catch up to them.
Overall, I'm not sure if rams seem OP due to the ranged unit focused meta and some civs simply not getting good counter units to siege weapons or if they're actually OP. Still, I'm for this change as rams can be buffed again when some other meta changing balancing is done.

As listed in the summary, this patch does three different things, so let's discuss them in that order.

  • I agree with the speed change. Though if the purpose is to allow pikemen to catch rams, it should be lowered even further.
  • I have no objections to the fields restriction. In fact, I also included that in D2508. Also, animals can't attack structures, ships, or siege engines, so it's not unprecendented.
  • I'm unsure about the organic restriction. The fact that it was present at some point and subsequently removed, as wraitii pointed out, suggests it may not have been an entirely good idea. Furthermore, wowgetoffyourcellphone wrote elsewhere:

In DE, Rams are prevented from attacking units. After years of experience with this change, I can see it's not pathfinding that needs adjusting, it's UnitAI. The Ram AI still attempts to attack units around them if there aren't any structures in vision range. What they need to do probably is just go idle, or attempt to flee (haven't given much thought on what they should do, probably just idle; they aren't support units).

Now I don't know how the UnitAI works, but if adding this restriction means rams still chase and try attacking units, then I think a much better solution would be to simply reduce their damage vs units sharply; see D2684.
Besides, I think it's better to restrict the attack vs Unit instead of Organic; battering rams attacking artillery and ships makes historically as little sense as targetting e.g. cavalry.
Furthermore, correct the indentation and add a <Tooltip> under <Identity>.

Now I don't know how the UnitAI works, but if adding this restriction means rams still chase and try attacking units, then I think a much better solution would be to simply reduce their damage vs units sharply; see D2684.

I guess the code is "AttackEntitiesByPreference" and that does seem like it's missing checks for restricted classes. But that just sounds like a UnitAI bug, and I would suggest fixing it instead of going for the above hack. I can probably do that myself quickly.

Besides, I think it's better to restrict the attack vs Unit instead of Organic; battering rams attacking artillery and ships makes historically as little sense as targetting e.g. cavalry.

I would disagree -> ramming a ship, if not historically accurate, is probably a good way to make a hole in the hull and sink it. Likewise, artillery would probably be easily destroying, since it's static and wooden.

I can probably do that myself quickly.

Great!

ramming a ship, if not historically accurate, is probably a good way to make a hole in the hull and sink it.

Ships ramming ships is historically accurate, it was the primary mode of naval warfare in classical times. However, ship rams were static extensions of the keel below the water line, whereas battering rams sling above ground. Moreover, there is the question how battering rams would reach the ships on the water. It's probably better if rams won't attempt attacking ships.

The Ram AI still attempts to attack units around them if there aren't any structures in vision range.

I've checked, and that seems incorrect for svn actually, we do run a CanAttack check in "AttackVisibleEntity", and so the ram doesn't attack Organic. So the patch would work correctly. It doesn't seem to have been changed recently though, so something is weird.

It doesn't seem to have been changed recently though, so something is weird.

Presumably wowgetoffyourcellphone has an outdated version of the UnitAI file in his mod.

borg- added a comment.Jun 3 2020, 2:17 PM

I will create a <Tooltip> as soon as I get home.
It seems that we agree with the three proposed changes.
We cannot change to "UNIT", it would change the balance of the game a lot. Players use ram to destroy other ram or siege weapons. Some civilizations would be very restricted to melee units, to combat siege weapons, this certainly would not work.

Nescio added a comment.Jun 3 2020, 8:52 PM

A few more things:

  • The current vision range seems rather excessive; perhaps it should be lowered to 40 or less. What do you think?
  • If rams can no longer attack (organic) units, that makes them significantly less effective, so should its cost be changed?
  • Could you change the <PreferredClasses> to "Gates Defensive Structure", in that order (cf. D2684), so rams prioritize structures capable of shooting arrows over others?

It seems that we agree with the three proposed changes.

Actually I said no such thing.

We cannot change to "UNIT", it would change the balance of the game a lot.

Restricting Organic already changes the gameplay balance significantly, so I don't see why Unit is suddenly problematic.

I also cannot agree that they can attack soldiers or any other organic unit, this is aa bad point for historical precision.

If this is the aim, then this is also an argument in favour of Unit: battering rams were used against gates and fortifications, not for chasing artillery or warships. (Besides, realistically, a single ram blow to a human head is more than enough to instantly kill that person.)

Players use ram to destroy other ram or siege weapons. Some civilizations would be very restricted to melee units, to combat siege weapons, this certainly would not work.

This is a problem, but a different one. To solve that e.g. siege engine health could be lowered or melee units could get a bonus attack vs Siege. Moreover, not all civilizations have battering rams.

bb added a subscriber: bb.Jun 3 2020, 10:16 PM

IIRC they reason why rams can attack units is that otherwise one can surround a ram by a few units, making it useless. Currently in that situation (at least most of the time), it will attack the surrounding units, trying to break free. Though it already prefers attacking structures over units (so it only attacks units if there are no structures around).

borg- added a comment.Jun 4 2020, 3:43 AM

A few more things:

  • The current vision range seems rather excessive; perhaps it should be lowered to 40 or less. What do you think?
  • If rams can no longer attack (organic) units, that makes them significantly less effective, so should its cost be changed?
  • Could you change the <PreferredClasses> to "Gates Defensive Structure", in that order (cf. D2684), so rams prioritize structures capable of shooting arrows over others?

The range of vision could be smaller, however it is related to the attack vision range. The ram could stand still with nearby constructions as it ranges 45 meters for example.
I think the current cost/benefit is bad. Ram are very strong for a low price, compared to other siege units. With the changes the cost/benefit seems more correct with the current cost, so it doesn't seem to need changes.
Yes, I absolutely agree to put "Defensive Structure" as a priority.

borg- added a comment.Jun 4 2020, 3:51 AM

Restricting Organic already changes the gameplay balance significantly, so I don't see why Unit is suddenly problematic.

Let's say you have 4 stone throwers surrounded by 80 archers or javelins. I'm playing gauls / brit, I only have sword horses to fight their stone throwers (champions are bad at the moment, I'll patch them in a few days). The current balance, melee units are extremely weak compared to units at a distance, even though I have 30 horses, I would not be able to get close to their stone throwers, however I have rams, which are "immune" to archers and javelins, so I have a much better chance. Believe me, changing to "unity" would not work.

If this is the aim, then this is also an argument in favour of Unit: battering rams were used against gates and fortifications, not for chasing artillery or warships. (Besides, realistically, a single ram blow to a human head is more than enough to instantly kill that person.)

I agree that they were used for gates and fortifications, but they could be used against units, just that no one was stupid enough to stand in front of them. I think it is more feasible to be used against other sieges and boats than organic units.

borg- updated this revision to Diff 12123.Jun 4 2020, 4:02 AM
borg- edited the summary of this revision. (Show Details)Jun 4 2020, 4:07 AM

Up new patch.

I'm inclined to commit this asap - other concerns seemed like they could be evaluated independently, and historical accuracy should be subservient to gameplay needs in this instance imo.


IIRC they reason why rams can attack units is that otherwise one can surround a ram by a few units, making it useless.

TBH that means rams require support, which makes sense. Doesn't seem a very compelling argument to me.


Re vision range -> We should probably make units look for entities in a different range than their vision range. This requires two things:

  • Something like D2525 for attack ranges
  • Making units keep chasing if the unit is Visible (in the player LOS), not only if the unit is inside the vision range (no diff on that afaik). This means rams could have lower vision, but benefit from the vision of others.

Would also let us implement D76 which is imo an improvement.


Rams attacking other siege makes sense to me in a 0 A.D. context, and it's unlikely to become a main strategy unless we fubar- the rest of the balance (which might be the case atm), so imo it's fine. Likewise ships.

Nescio added a comment.EditedJun 4 2020, 9:40 AM

Your edit policy prevents me from making inline comments or requesting changes, but the following have to be done:

  • Don't use tabs for indentation.
  • Insert <Tooltip>Cannot attack Fields or Organic Units.</Tooltip> under <Identity>.
Nescio added a comment.Jun 4 2020, 9:58 AM

historical accuracy should be subservient to gameplay needs in this instance imo.

Agreed. My point is that in this case the argument given (see summary) for the Organic restriction is historical accuracy, which equally applies to other units, so restricting one but allowing the other is inconsistent and arbitrary.

Rams attacking other siege makes sense to me in a 0 A.D. context, and it's unlikely to become a main strategy unless we fubar- the rest of the balance (which might be the case atm), so imo it's fine. Likewise ships.

If it's “unlikely to become a main strategy” it doesn't really matter much whether Unit is restricted, does it? borg- seems to be implying rams are often the only real counter, though. So while you are in agreement of the change, your arguments in support contradict each other.

Let's say you have 4 stone throwers surrounded by 80 archers or javelins. I'm playing gauls / brit, I only have sword horses to fight their stone throwers (champions are bad at the moment, I'll patch them in a few days). The current balance, melee units are extremely weak compared to units at a distance, even though I have 30 horses, I would not be able to get close to their stone throwers, however I have rams, which are "immune" to archers and javelins, so I have a much better chance. Believe me, changing to "unity" would not work.

In such a case the surrounding ranged infantry (which is Organic) would block the ram from actually reaching the artillery. If Unit is restricted, then rams wouldn't even bother to waste its time trying to attack unreachable targets.
Also, the “Believe me” is not always convincing.

To clarify, I'm not principally opposed to restricting Organic, but I'm unconvinced it's better than the alternatives. And if it is to be done, it should be done for the right reasons.

Agreed. My point is that in this case the argument given (see summary) for the Organic restriction is historical accuracy, which equally applies to other units, so restricting one but allowing the other is inconsistent and arbitrary.

The diff summary explains that rams shouldn't be able to attack units for balance purposes, not historical accuracy. Historical accuracy is another argument, but I don't think it supersedes the fact that rams attacking trebuchets would definitely work in real life, even if it would never happen.

If it's “unlikely to become a main strategy” it doesn't really matter much whether Unit is restricted, does it? borg- seems to be implying rams are often the only real counter, though. So while you are in agreement of the change, your arguments in support contradict each other.

When things don't matter, I prefer to give the player freedom.
In this instance, I prefer to leave rams able to attack other siege engines, and ships.

I agree that @borg implies rams are sometimes the only counter, and as said that means we've FUBAR'ed the rest of the balance, but it's not a valid argument toward restricting Unit vs Organic imo. It further would affect the ram balance much more than this, so in the interest of incremental changes I would rather do it later.


Given the above, my opinion: this seems like a useful incremental improvement agreed by basically everyone. The question of whether Organic should be changed to Unit should be a separate diff since it seems more controversial.

The diff summary explains that rams shouldn't be able to attack units for balance purposes, not historical accuracy.

I also cannot agree that they can attack soldiers or any other organic unit, this is aa bad point for historical precision.

Historical accuracy is another argument, but I don't think it supersedes the fact that rams attacking trebuchets would definitely work in real life, even if it would never happen.

Using battering rams to execute humans would definitely work too. It's just impractical.

When things don't matter, I prefer to give the player freedom.

Then why not leave them freedom to attack other units? I don't care strongly about D2684, but it is an alternative.

Given the above, my opinion: this seems like a useful incremental improvement agreed by basically everyone. The question of whether Organic should be changed to Unit should be a separate diff since it seems more controversial.

Following that logic, one could say the Organic restriction should go into a separate differential too.

Using battering rams to execute humans would definitely work too. It's just impractical.

It would work for execution but never against any kind of unrestrained, able human. Whereas you can definitely fell a scorpion with a big stick :p

Then why not leave them freedom to attack other units? I don't care strongly about D2684, but it is an alternative.

I actually completely missed that diff, so thanks for pointing it out.
I do think the historical accuracy argument goes in favour of restricting Organic over simply reducing damage.

Following that logic, one could say the Organic restriction should go into a separate differential too.

One can, and you do. It however seems relatively uncontroversial for the players, so I don't think we need to.

@ValihrAnt Do you prefer to prevent attacks against organics altogether or simply debuff them?

It however seems relatively uncontroversial for the players, so I don't think we need to.

There is broad agreement that rams are problematic as is, the question is what is the best solution. Right now only borg-, you, and I expressed our views; Lionkanzen, ValihrAnt, and bb expressed no firm opinion. Restricting is definitely a major gameplay change, so it shouldn't be rushed through. We should probably wait for more people to participate.
Basically the alternatives are:

  • Do nothing.
  • Lower ram damage vs units, keep it unchanged vs structures (D2684).
  • Restrict attacking Organic.
  • Restrict attacking Unit.
  • Something else?

Right now only borg-, you, and I expressed our views; Lionkanzen, ValihrAnt, and bb expressed no firm opinion.

It seems to me that ValirhAnt said "yes", though they did not specifically comment the restriction change however so we should validate that. That still leaves 2+ people in favour and 1 call for prudence.

Restricting is definitely a major gameplay change, so it shouldn't be rushed through.

"major gameplay change" seems a bit of an exaggeration to be honest.

Further, it's an easily revertible change that needs to be played (was by Borg) so svn fits. It's been heavily explain why we are trying this out, so even in a year people would, this time around, have a good explanation for why things are like that, and wouldn't need a comment such as bb's here that probably explains the real cause, but actually the real cause is maybe lost to time.


Too often, we have not committed gameplay changes because we aren't quite sure, or there is some debate about X or Y, or somebody wasn't entirely positive, and then diffs end up forever in the review queue and nothing happens. In this instance, we have 2 positive reviews from top players, including the patch creator. This is about as good as it gets imo, waiting for more is a luxury.

I'll leave this open until Sunday (incl.), but if there are no strong arguments against this change by then, I'll commit it (as usual, unless someone else does first).

"major gameplay change" seems a bit of an exaggeration to be honest.

A quantitative change (e.g. tweak damage) I would call minor, but this is a qualitative change (not being able to attack soldiers at all), hence me calling it “major”. Besides, not all civilizations have rams, so this affects some more than others.

Too often, we have not committed gameplay changes because we aren't quite sure, or there is some debate about X or Y, or somebody wasn't entirely positive, and then diffs end up forever in the review queue and nothing happens.

Yes, this is a serious problem, I fully agree.

I'll leave this open until Sunday (incl.), but if there are no strong arguments against this change by then, I'll commit it (as usual, unless someone else does first).

That sounds fair to me.

@ValihrAnt Do you prefer to prevent attacks against organics altogether or simply debuff them?

I think the optimal approach would be to reduce damage against organic units. If I understand correctly siege weapons don't count as organic so the damage to other siege weapons should still remain the same, which is what I'd want.

borg- added a comment.EditedJun 4 2020, 3:26 PM

If we reduce the attack against organic units, we will have 3 counters, vs building vs siege and vs ship. I think is unnecessary.
It seems wrong to me to have to add multiply against buildings, since it is a specific unit against buildings.

And could not kill a light unit with just one attack, which is also not historically precision.

borg- updated this revision to Diff 12133.Jun 5 2020, 1:24 AM

Up patch with <Tooltip>.

Please correct the indentation (don't use tabs) and remove the unnecessary “Good vs. Building.”

borg- added a comment.Jun 5 2020, 1:55 PM

Please correct the indentation (don't use tabs) and remove the unnecessary “Good vs. Building.”

Ok, i will make the changes. Tnx feedback!!!

borg- added a comment.Jun 5 2020, 11:52 PM

Up new patch with right <Tooltip>.

borg- updated this revision to Diff 12159.Jun 5 2020, 11:52 PM
Nescio added a comment.EditedJun 6 2020, 10:33 AM

As you can see the indentation is still wrong.
[EDIT] https://code.wildfiregames.com/differential/diff/12165/

@Nescio when you select one of your own diffs now and click continue, you can see in the URL the diff to which it ought to be attached. When you change that to this number and go to that page, you can update this. (Also persistently wrong indentation *could* be fixed when committing.)

@Nescio when you select one of your own diffs now and click continue, you can see in the URL the diff to which it ought to be attached. When you change that to this number and go to that page, you can update this.

Ah, its the policy, nevermind then.

Yeah:

borg- created this object with edit policy "borg- (Estevan Borges Martins)".

Your edit policy prevents me from making inline comments or requesting changes

Sorry, I thought that was another diff.

borg- added a comment.Jun 6 2020, 2:07 PM

As you can see the indentation is still wrong.
[EDIT] https://code.wildfiregames.com/differential/diff/12165/

Oh sorry, my English is not that good, I didn't understand what you meant.

borg- updated this revision to Diff 12171.Jun 6 2020, 2:12 PM

Up patch with correct indentation.

Nescio added a comment.Jun 6 2020, 8:11 PM

Oh sorry, my English is not that good, I didn't understand what you meant.

Whenever you don't understand something, please do ask. Most people are usually willing to help clarify things.

chrstgtr added a subscriber: chrstgtr.EditedJun 8 2020, 7:29 PM

Why not allow to attack fields? Killing fields doesn't make rams OP--no one does it on purpose.

This would allow enemy losing terrority to put fields all around mines. Fields die slowly by men and are extremely cheap/quick to build

Nescio added a comment.Jun 8 2020, 8:27 PM

This was accepted and committed by @wraitii today as rP23753 and should thus have been closed.

This was accepted and committed by @wraitii today as rP23753 and should thus have been closed.

I did mention it too ? Something must have gone wrong.

@borg-, could you click “Add Action...” → “Close Revision”?

Angen added a comment.Jul 1 2020, 7:48 AM

@wraitii needs to accept it first, then @borg- can close it

I don't have the permissions to accept it :)

I think Itms should just use admin super-powers :p

Itms added a subscriber: Itms.Jul 1 2020, 4:49 PM

Even as admin, I am blocked by the policy @borg- set! borg, you have to click "Edit Revision" at the top right of the diff description, then change "Editable By" to become "All Users".

You are the only one able to do this. (as a last resort I could edit the database directly, in case anyone wonders)

borg- changed the edit policy from "borg- (Estevan Borges Martins)" to "All Users".Jul 1 2020, 5:07 PM

@Itms done.

This revision was not accepted when it landed; it landed in state Needs Review.Jul 1 2020, 5:09 PM
This revision was automatically updated to reflect the committed changes.