Jump to content

New players rekt by Gaia on Danubius


soloooy0
 Share

Recommended Posts

you see this game jajjaaj gaia violence

team 1
solooyo-ibers
Macaco(hispania)-cartaginias
team 2
DsharkS4-cartaginians 
Peraminho-athenians

Danubio in this map the gaia is dangerous for all players and need more time for prepare strong defense and power attack for hit and run and gia siege kill sourvivors 
I like this mode maps is similar at apoc mode in warhammer40k ultimate 

2017-07-29_Danubio.zip

  • Like 1
Link to comment
Share on other sites

One issue with this map is that gaia seems to not have population limit checks. I was playing with 5 or so computer players. I couldn't understand why the lag was so horrible because I often use 5+ computer players on maps. When I was declared the winner even though I had not attacked yet, I checked the other side of the river and there had to be a couple thousand or more gaia units roaming around and the river was filled with their ships. I know triggers can ignore population limit rules, but I think this map should only produce gaia units up to some predetermined limit. (The limit could vary depending on number of players, max pop limit size, map size, etc.)

  • Like 4
Link to comment
Share on other sites

2 hours ago, WhiteTreePaladin said:

One issue with this map is that gaia seems to not have population limit checks. I was playing with 5 or so computer players. I couldn't understand why the lag was so horrible because I often use 5+ computer players on maps. When I was declared the winner even though I had not attacked yet, I checked the other side of the river and there had to be a couple thousand or more gaia units roaming around and the river was filled with their ships. I know triggers can ignore population limit rules, but I think this map should only produce gaia units up to some predetermined limit. (The limit could vary depending on number of players, max pop limit size, map size, etc.)

The balancing is tuned for experienced players. So it's like survival of the fittest for the bad to mediocre players and the better ones will overcome gaia eventually and be able to defeat their enemy. When testing, the AI often succeeded surviving gaia, but sometimes was completely crippled by stupid things like a tower of the stronghold reaching into the territory and the AI suiciding every unit one by one into the fortification.

The lag is definitely increased, both graphical (many actors) and simulation (unit spawning). There were lag optimizations (not using the TriggerHelper function which uses the slow Footprint component to check for irrelevant spawn positions). Not sure how much it can be improved, but it didn't seem too bad to me.

> had to be a couple thousand or more gaia units roaming

That should (TM) be impossible. Should be 50-100 if one side of the river is wiped out. The gif at D204 is expected be representative. The ships stop ungarrisoning units on that side of the river, if that side of the river is wiped out.

However looking at the code, it seems that that the civic center attackers don't have that check. In that case: Fail.

Should only run into that situation if there are more than 2 teams at least.

Here the exact, hopefully very easily understandable manifest of how many units spawn at which time:

Spoiler

/**
 * Time in minutes between two consecutive waves spawned from the gaia civic centers, if they still exist.
 */
var ccAttackerInterval = t => randFloat(6, 8);

/**
 * Number of attackers spawned at a civic center at t minutes ingame time.
 */
var ccAttackerCount = t => Math.min(20, Math.max(0, Math.round(t * 1.5)));

/**
 * Time between two consecutive waves.
 */
var shipRespawnTime = () => randFloat(8, 10);

/**
 * Limit of ships on the map when spawning them.
 * Have at least two ships, so that both sides will be visited.
 */
var shipCount = (t, numPlayers) => Math.max(2, Math.round(Math.min(1.5, t / 10) * numPlayers));

/**
 * Order all ships to ungarrison at the shoreline.
 */
var shipUngarrisonInterval = () => randFloat(5, 7);

/**
 * Time between refillings of all ships with new soldiers.
 */
var shipFillInterval = () => randFloat(4, 5);

/**
 * Total count of gaia attackers per shipload.
 */
var attackersPerShip = t => Math.min(30, Math.round(t * 2));

/**
 * Likelihood of adding a non-existing hero at t minutes.
 */
var heroProbability = t => Math.max(0, Math.min(1, (t - 25) / 60));

/**
 * Percent of healers to add per shipload after potentially adding a hero and siege engines.
 */
var healerRatio = t => randFloat(0, 0.1);

/**
 * Percent of siege engines to add per shipload.
 */
var siegeRatio = t => t < 8 ? 0 : randFloat(0.03, 0.06);

/**
 * Percent of champions to be added after spawning heroes, healers and siege engines.
 * Rest will be citizen soldiers.
 */
var championRatio = t => Math.min(1, Math.max(0, (t - 25) / 75));

 

Since I'm really into Danubius replays: Can I haz? :pizza:

  • Like 2
Link to comment
Share on other sites

@elexis can you please sum up and illustrate simply?

i like Danubius and been trying to figure out the frequency of Gaia unit spam in land and sea. The land forces are not hard to contain but the ships are, they are garrisoned with around minimum 10 units and it's hard to counter that without sacrificing Econ. .  It's going to need P3 for the player to dispose the Gaia methodically and they are good use farm for units to have experience though needs micro. 

Each Gaia CC side has a beginning of un garrisoned combined champs and citizen soldiers and it's hard to penetrate without destroying the defenses and structures one at a time. In addition they have so much healers.

Each side has initial ungarrisoned 20 naked fanatics (around 6 in ritual place, 14 in CC defense), 4 melee cav champs and  citizen soldiers. But each temple has I guess 16 naked fanatics and 4 cav champs garrisoned. Each tower has maybe 3 naked fanatics and 2 champ swordsmen.  The CC I guess has the same number and quality of units as in the temple. Civs with catapults and bolt shooters are in the advantage. 

The island towers have the same garrisoned units but some have more sword champs than naked fanatics. 

Once you dispose the ungarrisoned ones they are not replenished I think but they keep on spamming Gallic cavalries and citizen soldiers. 

Ships spam in proportion to the highest tech/phase of any player imo. They start with non garrisoned at P1, around 10 garrisoned at P2 (I think 3ships each side) and ram garrisoned in P3 with Gallic melee cavalries and soldiers. 

I currently have a game of same 5 AI and me at very Hardest and the game lags between 600 to 800 units even in slowest speed on a giant map.

 

Edited by Servo
  • Like 1
Link to comment
Share on other sites

5 hours ago, elexis said:

> had to be a couple thousand or more gaia units roaming

That should (TM) be impossible. Should be 50-100 if one side of the river is wiped out. The gif at D204 is expected be representative. The ships stop ungarrisoning units on that side of the river, if that side of the river is wiped out.

There definitely were hundreds and hundreds of units. It was a decent sized map and there were so many gaia units moving it looked like a huge swarm that completely encompassed the other side. I don't think I had any teams that particular time - was just a free for all. Generally the AI can survive if there are teams and often does not survive when alone.

The lag is pretty bad, but that could just be pathfinding for lots of units? It's quite a fun and unique map though. I really do like it. I think perhaps we should make a new map category for the ones that have significant trigger work. Maybe "scripted"? They provide a unique experience and I think it would be nice if they were more discoverable. Also, for players that don't want anything but a pure random map, it could provide a nasty surprise if they don't read the description carefully. Of course, that would be one way to make people read descriptions.

  • Like 2
Link to comment
Share on other sites

RE WhiteTreePaladin:

> There definitely were hundreds and hundreds of units.

Yep, just looked at the code and the FAIL case is true - forgot to add the check whether that side of the river has any units on it for the CC units (it was implemented for ships at least). Thanks for the report (We never had this case when testing)

> was just a free for all

(That case with spawning indefinite units on one side of the river can still only occur if the game isn't won after one side of the river was defeated, i.e. more than 2 teams or equivalently FFA).

> Generally the AI can survive if there are teams and often does not survive when alone.

I was worried Petra was overwhelmed most often. Relieved to hear that!

> The lag is pretty bad

If there are too many units, that's definitely the foremost cause.

> It's quite a fun and unique map though. I really do like it

Thanks

> new map category

We have a map filter "Trigger" for maps with trigger scripts (they can occur on every map type).

> for players that don't want anything but a pure random map, it could provide a nasty surprise

Yep, odd maps showing up when using the random filter can be a problem (for example with Survival Of The Fittest, Extinct Volcano or Polar Sea too). However if we exclude the maps from the "Default" map filter, then they will be even less discoverable. (I was thinking whether to rename "Default" to "Land Maps". We might then add "Land Maps & Not Trigger" maybe, but that sounds ugly).

Still wouldn't mind to see more replays :-) (The only thing more entertaining than playing this map is spectating a match on that map)

  • Like 2
Link to comment
Share on other sites

> can you please sum up and illustrate simply? been trying to figure out the frequency of Gaia unit spam in land and sea.

In case the description in the code isn't simple enough, it should be rephrased. (The balancing changes from alpha to alpha and is expected (just as survival of the fittest) to require changes later. So it should be possible to fix the balancing even without understanding the code.)

CC Attackers:

/**
 * Time in minutes between two consecutive waves spawned from the gaia civic centers, if they still exist.
 */
var ccAttackerInterval = t => randFloat(6, 8);

/**
 * Number of attackers spawned at a civic center at t minutes ingame time.
 */
var ccAttackerCount = t => Math.min(20, Math.max(0, Math.round(t * 1.5)));

So time * 1.5 units (-> minute 10 = 15 units), but at most 20 units spawn at the civic centers all 6 to 8 minutes and are ordered to patrol near the map border (so players are attacked from all sides as opposed to only from the river). They stop spawning once the CC is captured or destroyed.

Ship Attackers:

/**
 * Time between two consecutive waves.
 */
var shipRespawnTime = () => randFloat(8, 10);

/**
 * Limit of ships on the map when spawning them.
 * Have at least two ships, so that both sides will be visited.
 */
var shipCount = (t, numPlayers) => Math.max(2, Math.round(Math.min(1.5, t / 10) * numPlayers));

/**
 * Order all ships to ungarrison at the shoreline.
 */
var shipUngarrisonInterval = () => randFloat(5, 7);

/**
 * Time between refillings of all ships with new soldiers.
 */
var shipFillInterval = () => randFloat(4, 5);

/**
 * Total count of gaia attackers per shipload.
 */
var attackersPerShip = t => Math.min(30, Math.round(t * 2));

All 8 to 10 minutes the script respawns ships so that there are at least 2 but not more than 1.5 * players ships (so at most 12 ships when playing with 8 players).

There are 2 * time attackers per ship (i.e. 16 attackers minute 8), but never more than 30 per ship.

All 5 to 7 minutes the ships unload.

One more thing to note is that the script doesn't distinguish between alive and defeated players. So there are still 12 ships if there are only 2 of 8 players alive.

Ships only land units on that side of the river if there is at least one Unit on that side. Otherwise they patrol the sea forever.

Attacker composition:


/**
 * Likelihood of adding a non-existing hero at t minutes.
 */
var heroProbability = t => Math.max(0, Math.min(1, (t - 25) / 60));

/**
 * Percent of healers to add per shipload after potentially adding a hero and siege engines.
 */
var healerRatio = t => randFloat(0, 0.1);

/**
 * Percent of siege engines to add per shipload.
 */
var siegeRatio = t => t < 8 ? 0 : randFloat(0.03, 0.06);

/**
 * Percent of champions to be added after spawning heroes, healers and siege engines.
 * Rest will be citizen soldiers.
 */
var championRatio = t => Math.min(1, Math.max(0, (t - 25) / 75));

After minute 25 there each Gaul hero might appear (but no hero can occur twice simultaneously), certainly after 60 minutes.

There can be 0 to 10% healers per ship / CC wave.

After 8 minutes, there are 3% to 6% siege engines per ship (i.e. one or two).

Before 25 minutes, there are only citizen soldiers, but then the number of champions per ship increases until after 1h there are 100% champions (besides hero, healers and siege engines).

Gaia Defenses:

The buildings are garrisoned only at gamestart. The defensive ones with random champions, the houses with random ratios of women and healers.

var gallicBuildingGarrison = [
	{
		"buildings": ["House"],
		"units": [femaleTemplate, healerTemplate]
	},
	{
		"buildings": ["CivCentre", "Temple"],
		"units": championTemplates
	},
	{
		"buildings": ["DefenseTower", "Outpost"],
		"units": championInfantryTemplates
	}
];

The CCs get a bunch of random champions to defend at the start:

var ccDefenders = [
	{ "count": 8, "template": "units/" + pickRandom(citizenInfantryTemplates) },
	{ "count": 8, "template": "units/" + pickRandom(championInfantryTemplates) },
	{ "count": 4, "template": "units/" + pickRandom(championCavalryTemplates) },
	{ "count": 4, "template": "units/" + healerTemplate },
	{ "count": 5, "template": "units/" + femaleTemplate },
	{ "count": 10, "template": "gaia/fauna_sheep" }
];

The CC defenders and ritual participants are set to defensive, so if you retreat, they will retreat as well (otherwise it would be easy to lure them into your defenses).

defense.gif

Gaia Ritual:

The number of units at the ritual place depends on the mapsize (maleCount used for every skirmisher, fanatic and healer (unless there was a weird 'wall placement' bug):

let mRadius = scaleByMapSize(4, 6);
let femaleCount = Math.round(mRadius * 2);
let maleCount = Math.round(mRadius * 3);

ritual.gif

> Ships spam in proportion to the highest tech/phase of any player imo

Just as on Survival Of The Fittest, all players should have the same chance of being destroyed, so it depends on the players abilities whether he/she can survives Gaia, is able to cross the river and destroy the enemy.

  • Like 2
Link to comment
Share on other sites

3 hours ago, soloooy0 said:

is posible similar sistem (soft) gaia and objective take the city ,destroy fort or Keep the hill (x)-time??

Danubius is the precursor of a great storymode, isn't it? Unfortunately it took weeks to implement the map and attackers. Campaigns are usually scenario maps, so it will be at least a bit easier to create than a random map script. A good campaign would also include some story, subtitles and cinematic cutscenes. Would be great to have that possible to play in multiplayer too, but that has the problem that we can't really script the opponent if it can be player-controlled.

For the "King of the Hill" gamemode, checkout the map Extinct Volcano with rising water. We should have something like that where players have to fight for a hill (that is more usable than the volcano on that map). The water could also recede after some time which would allow players to capture their old buildings.

  • Like 2
Link to comment
Share on other sites

2 hours ago, elexis said:

Danubius is the precursor of a great storymode, isn't it? Unfortunately it took weeks to implement the map and attackers. Campaigns are usually scenario maps, so it will be at least a bit easier to create than a random map script. A good campaign would also include some story, subtitles and cinematic cutscenes. Would be great to have that possible to play in multiplayer too, but that has the problem that we can't really script the opponent if it can be player-controlled.

For the "King of the Hill" gamemode, checkout the map Extinct Volcano with rising water. We should have something like that where players have to fight for a hill (that is more usable than the volcano on that map). The water could also recede after some time which would allow players to capture their old buildings.

To me next step is adding a serie of objectives, add hints to the GUI and a map representing the scenario..

  • Like 1
Link to comment
Share on other sites

Thanks "elexis"! It's also good to know that Gaia units could occur in any map by triggering it on options. Now there will be more interesting maps to trigger it than A21(only had in Alphine Mountain). 

I think this will be very nice in Mediterran and Cycladic Archipelago. 

Spawning/garrisoning  in random unit types will be more interesting too. 

Link to comment
Share on other sites

Currently only Survival Of The Fittest, Polar Sea, Danubius and Gallic Fields (3) spawn gaia units repeatedly after the gamestart.

But it is planned/wished for to add a gamesetup option to spawn them on all maps and to have a difficulty setting in the gamesetup.

Gallic Fields (3) only spawns a handful of roman swordsmen which become irrelevant after the first 15 minutes.

Danubius does spawn unit types at random.

Polar Sea only wolves.

You might want to try Survival Of The Fittest. That was reworked in Alpha 22 too and now also spawns units like the fire raiser which were never seen ingame before.

I hope we will see replays of good players of that. We played it a lot in Alpha 21 but the problem is that it always ended up in infinite games because gaia was too soft in late-game.

  • Like 2
Link to comment
Share on other sites

  • 2 weeks later...

The "indefinitely spawning units" problem can be called solved, as of D777. Thanks to our new team member bb for reviewing this!

There are still 2 edge cases left:

  • The last women can hide in the last house that is disconnected from territory. All gaia units will ignore it, but no more gaia units will land on that riverside (neither CC nor ships), so it's not too hard for the enemy to find that house.
  • A civic center or lone outpost could be surrounded by impassable terrain, forests or gaia buildings, so that rams never reach it. Then units would still spawn indefinitely. We don't have a good way to solve thise case, as it would require using the pathfinder (i.e. ugly code and adding more lag to this already laggy map). Luckily it never occured yet.
Link to comment
Share on other sites

8 hours ago, elexis said:

A civic center or lone outpost could be surrounded by impassable terrain, forests or gaia buildings, so that rams never reach it. Then units would still spawn indefinitely. We don't have a good way to solve thise case, as it would require using the pathfinder (i.e. ugly code and adding more lag to this already laggy map). Luckily it never occured yet.

Couldn't you give Gaia a "population limit" check before spawning units?

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

5 hours ago, elexis said:

Gaia units don't promote as far as I know (originally I placed elite citizen units, but FeldFeld reported that as a bug because only the model was elite while the attack and defense stats were still basic unit ones)

That sounds like a bug. It's certainly not expected behavior. (I guess it somehow uses different code?)

Link to comment
Share on other sites

It's because promotion bonuses are implemented as autoresearched technologies that only affect promoted units and Gaia (amongst other things) doesn't have a TechnologyManager (defined by player_gaia.xml opposed to player.xml). Mabye we will add more support if we add more scripted maps with gaia units.

(There's also the desire to remove the 8 player limitation, in which case we could use an actual playerslot.)

Edit: Therefore no reason to believe that gaia units can't promote, which means we probably have to listen to the EntityRenamed message as bb stated!

  • Like 2
Link to comment
Share on other sites

As of alpha 22, the engine can deal with 8 players * 150 pop, so 12 players * 100 pop and 16 players * 75 pop are quite realistic. All the random maps will need consideration, but nothing impossible. We also had few instances with 8 players and 16 observers already, so there's no real overhead (only the rejoin process is a bit laggy).

If we already do some effort to break the barrier, we might just as well go all the way (i.e. 256, unless we need to allocate memory for the maximum in advance somewhere).

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...