Opened 6 years ago

Last modified 3 years ago

#5150 new defect

Jebel Barkal improvements

Reported by: elexis Owned by:
Priority: Nice to Have Milestone: Backlog
Component: Maps Keywords: simple
Cc: Patch:

Description (last modified by elexis)

These issues were noticed in most games and they will be equally relevant when creating the next map with scripted opponents:

  • Player Placement: The placement currently groups players in two teams, one left, one right. But we also want to play diplomacy games without starting in very close proximity to opponents. Especially with 3 players, there is one having half the map for himself and the other two fight from minute 0 on. It could use the stronghold-placement pattern if there are more than two teams.
  • Gaia Wonder Victory - map specific gamesetup option. Would give players another incentive to take the fight against napata (which otherwise is counterproductive to conquest).
  • Spy feature to reveal the Gaia city?
  • Make units that are ungarrisoned after building destruction patrol rather than idle. (Since all other units do patrol, devs may suspect them to be unitAI bugs, but it's just the missing order.)
  • Elephant Balancing: The number of gaia elephants per wave is most influential on the difficulty of the map, but proportional to the number of elephant stables and the number of stables can vary from 0 to 9 on normal sized maps! This means sometimes hard is easy and sometimes easy is hard. Instead the number of elephants should remain independent from the mapsize, similar to how the total attackercount per building currently is antiproportional to the mapsize.
  • Spawned attackers could receive a (probably significantly less than proportionally) higher likelihood of first attacking the closer targets. This rewards players destroying the gaia city near them.
  • Spawned attackers could first gather at the city point that is closest to the chosen primary target. Not until something like 30 seconds passed, the units could then receive the patrol order against the primary target.

This way units arricing in tiny fragments are not instantly slaughtered but have a chance to become more difficult. (This is yields the possibility to get the same difficulty with less total attackers, yielding less lag)

  • If beyond 50 units are spawned and set into a single formation, they often have trouble leaving the city gates. So there should be a maximum group size of 30-40 or something.

Balancing Exploits:

  • Spawn gaia ships to prevent people just waiting on the sea for others to die. (No ship before minute 30, maybe 4 ships after 60min in each wave on medium).
  • Hannibal demonstrated that elephants can be lured to enemies by placing a path of outpost foundations in their line of sight. The outpost could be forbidden. (CC foundations can't really form long paths)
  • Mapgen: Walls at the hill: When chosing a mapsize equal or greater than Large, there will appear walls behind the temples. But they are illogical, since the mountain would already be a sufficient wall.
  • Mapgen: Napatan palisade gates are not painted with clGate

Unit behavior:

  • City Patrol Paths: The units patroling the triggerpoints along the city roads chose a random order of triggerpoints. This means sometimes they get off from their paths and walk between houses or behind the temples, resulting in needless collisions which impact both performance and visual appearance.

Ideally the random map script and atlas could create triggerpaths (maybe the cinema paths format could be reused or refactored?) rather than creating the paths from triggerpoints with weird algorithms.

  • 5 Trade carts would be neat, especially if they had lots of loot. Adding very few roaming women, walking or idling near the city and roads too.
  • Garrisoned siege towers were logical, but should be garrisoned. The towers on survival of the fittest should be garrisoned as well. It should be as easy as an TriggerHelper.SpawnAndGarrisonAtClasses(elephantinePlayerID, "Tower", kushInfantryUnits, 1);.
  • UnitAI: Sometimes units end up idling, but the expectation is that they always patrol when not fighting targets in line of sight. We can also notice reported formation bugs in about every game.

Attachments (2)

cb4410b4d5707db91073a46f39a93d3bbb25cc41.diff (2.8 KB ) - added by elexis 6 years ago.
Giant mapsize bugfix and wall alignment improvement
3920f26d29d1da65751c835735bc44ee41943ee6.diff (1.6 KB ) - added by elexis 6 years ago.

Download all attachments as: .zip

Change History (14)

comment:1 by elexis, 6 years ago

Description: modified (diff)

comment:2 by elexis, 6 years ago

Description: modified (diff)

comment:3 by elexis, 6 years ago

Description: modified (diff)

by elexis, 6 years ago

Giant mapsize bugfix and wall alignment improvement

comment:4 by elexis, 6 years ago

Description: modified (diff)

comment:5 by elexis, 6 years ago

Description: modified (diff)

comment:6 by elexis, 6 years ago

["tower", "gate", "tower", "short", "tower", "short", "tower"],

should be

["tower", "gate", "tower", "short", "tower", "short"],

comment:7 by elexis, 6 years ago

Description: modified (diff)

comment:8 by elexis, 6 years ago

Distracting enemies using foundations is now in wide use, also for arbitrary foundations within ones own territory. So enemies should just ignore foundations that don't have obstructions / 0% progress as an easy harm reduction (as the alternative would be to have thinking AIs)

comment:9 by elexis, 6 years ago

Performance: if (tileClass.has(point)) continue; in the CityPainter after let point = . 12 seconds -> 8 seconds on a normal sized map.

comment:10 by Freagarach, 3 years ago

In 24617:

Fix Jebel Barkal giant.

Adjusts the jb.js to not try and place walls outside of the map.
Only adds really added walls to the entity list (refs. #5919).

Patch by: @elexis
Differential revision: D3299
Tested by: @Freagarach, @Stan
Fixes: #5177
Refs. #5150

comment:11 by Silier, 3 years ago

Keywords: simple removed
severity: simple

comment:12 by Silier, 3 years ago

Keywords: simple added
Note: See TracTickets for help on using tickets.