Page MenuHomeWildfire Games

Stronger Danubius fleet
AbandonedPublic

Authored by elexis on Apr 22 2017, 10:26 PM.

Details

Reviewers
None
Summary

In the commited version of the Danubius map D204, there are way too few gaia attacks. In a recent 4v4 test, some players were not even attacked a single time, most players only 1 to 3 times (within an hour gametime).
This was mostly because in the balancing of the time when the map was called Danube (see old balancing file),
people have suffered a lot when they tried to cross the river, because

  • The ships respawned very quickly
  • Really many ships spawned (up to 3 per player and that number includes gaia, so 8 players = 27 ships all 5 minutes)
  • There is a negative feedback loop: Either it is easy to beat gaia ships, then everyone beats it and gaia doesn't appear at all. Or it is too hard to beat gaia ships, then noone does it (economically not advisable), therefore the one trying to cross will get all ships for those 8+1 players.
  • Furthermore there is a bad sideeffect of setting the stance to "violent", because the targetAttackersAlways property that is only set to true for violent (see UnitAI.js) means that
    • Ships will become stuck at the shoreline trying to attack towers that are out of reach, when they mostly ignore them when having aggressive stance. Therefore most ships would become destroyed by towers and therefore never ungarrison.
    • Rams will attack the infantry once attacked, thus ignoring the CivicCenters / Towers almost entirely

The nerf in the committed version was way too harsh.
We (siole, Hannibal Barca) decided it would be better to have players having to struggle for a significant time of the game (45min) than to not have any noticeable gaia at all.

Therefore proposing to move to "80%" of the difference in the prior and current balancing into the direction of the prior balancing and revert the violent stance.

Also fix the class matching, as reported by bb:

2017-04-19-QuakeNet-#0ad-dev.log:22:53 < bb_> elexis: tracked down some of the formation bug: matchesClassList doesn't take "-" things as an option it reguires "Unit+!Ship". Testing with that is better but doesn't solve all cases it seems

Also as proposed by causative, increase the distance from the islands to the shoreline briefly, so that it is easier to maneuver ships.

Test Plan

If you want to test, start a multiplayer AI game without assigning yourself and make sure that petra AI (potentially very hard with deathmatch resources) is still able to cope with gaia
(because the map should be interesting in singleplayer too). Press F9, type Engine.SetSimRate(20); to fast-forward.
In order to test the stance, let a ram attack the CC, then attack it and see that it works with the default stance, but not with the violent one.
In order to test the islands, start atlas and see that on tiny maps there are no towers, but still an island and on small maps, towers appear.

Diff Detail

Repository
rP 0 A.D. Public Repository
Branch
/ps/trunk
Lint
No Linters Available
Unit
No Unit Test Coverage
Build Status
Buildable 1248
Build 1968: Vulcan BuildJenkins
Build 1967: arc lint + arc unit

Event Timeline

elexis created this revision.Apr 22 2017, 10:26 PM
Vulcan added a subscriber: Vulcan.Apr 23 2017, 1:12 AM

Build is green

Updating workspaces.
Build (release)...
Build (debug)...
Running release tests...
Running cxxtest tests (306 tests)..................................................................................................................................................................................................................................................................................................................OK!
Running debug tests...
Running cxxtest tests (306 tests)..................................................................................................................................................................................................................................................................................................................OK!

http://jw:8080/job/phabricator/865/ for more details.

Tests from siole:

(22:28:23) siole: about danubius, i couldnt figure the right numbers.
(22:28:43) siole: i think the problem is generation of troops based on time and players
(22:29:02) siole: i think it should be based on number of all curret pop
(22:29:10) siole: current
(22:29:42) siole: this way you also solve the problem with changing the pop limit
(22:29:43) elexis: mh
(22:30:05) elexis: relative to max pop would be an idea
(22:30:09) Hannibal_Baraq: :)
(22:30:11) elexis: relative to pop sounds wrong
(22:30:35) siole: maybe
(22:30:53) elexis: also we have about the same total pop in each game
(22:31:05) elexis: ranges from 2*300 to 8*150
(22:31:07) siole: relative to max - pro game
(22:31:16) siole: relative to current noobs game
(22:31:41) siole: yes
(22:31:53) Hannibal_Baraq: :)
(22:38:00) elexis: bb tested it too
(22:38:07) elexis: he said AI survives up to min 55
(22:38:13) elexis: which sounds ok to me
(22:38:17) siole: what are his numbers?
(22:38:24) elexis: the one proposed in the patch
(22:38:34) elexis: those are almost entirel the original danube figures
(22:38:48) elexis: the only issue we really had was losing all ships when trying to cross
(22:38:49) siole: really?
(22:38:54) elexis: yep
(22:39:06) elexis: the problem AI had is suiciding everything into the gaia fort
(22:39:11) elexis: the oen in the middle
(22:39:18) siole: i run it twice with those and AI lost
(22:39:26) elexis: 4v4?
(22:39:30) siole: yes

Merged with D380 for easier testing

elexis abandoned this revision.Apr 28 2017, 6:55 PM

"Close" action only possible if it was accepted.

elexis reclaimed this revision.Jun 1 2017, 4:18 PM

Since the balancing was removed from D380 again...

elexis abandoned this revision.Jun 5 2017, 9:28 PM

Nope, seems ok from 2 more games. Might change my mind again.