Opened 9 years ago

Last modified 3 years ago

#3517 assigned defect

Exploit spawning / ungarrisoning to climb impassable mountains

Reported by: elexis Owned by: temple
Priority: Must Have Milestone: Backlog
Component: Simulation Keywords:
Cc: Patch: Phab:D1040

Description (last modified by elexis)

There are several ways how to get onto impassable mountains. All of them use a flaw when spawning units.

Example 1: Ungarrison units from a ship near a mountain. Example 2: Ungarrison units from a ram near a mountain. Example 3: Ungarrison units from a wall or houses that is build near a mountain. Example 4: Produce enough units at a barracks near a mountain. Build walls around the barracks or don't move the other correctly spawned to limit the area of newly spawned units.

Being on an impassable mountain has advantages like not being able to be defeated as the enemies can't attack you. Some nomad map types require units to go through a maze of impassable mountains. Thus being there allows you to kill the tradeline comfortably and even place towers there.

The flaw exists at least since alpha 18. The solution would be to check the height difference when spawning units. (Ungarrisoning probably uses the spawning algorithm too).

Bug reported and mastered by ffm.

https://trac.wildfiregames.com/raw-attachment/ticket/3517/climb.gif

Attachments (2)

commands.txt (13.2 KB ) - added by elexis 9 years ago.
Replay for r17126, provided by ffm.
climb.gif (234.3 KB ) - added by elexis 9 years ago.

Download all attachments as: .zip

Change History (18)

by elexis, 9 years ago

Attachment: commands.txt added

Replay for r17126, provided by ffm.

by elexis, 9 years ago

Attachment: climb.gif added

comment:1 by elexis, 9 years ago

Description: modified (diff)

comment:2 by ffm, 9 years ago

In addition to limit the height difference of the spawningpoint to building, if the territory is intended to be impassable, it should be marked as such. Some generated mountains have spots to walk up. The border should also not cross that impassable wall. In some cases players are even able to build on the valley of survival of the fittest, as their boarder leaps down too much.

Last edited 9 years ago by ffm (previous) (diff)

comment:3 by mimo, 9 years ago

I think the right solution here would be to use the maps of connected regions from the hierarchical pathfinder, and allow spawning only in tiles which are in the same region as the tiles under the spawning entity.

comment:4 by wraitii, 8 years ago

Milestone: BacklogAlpha 20

Agree with mimo at first glance.

comment:5 by elexis, 8 years ago

Milestone: Alpha 20Backlog

Backlogging due to lack of progress.

comment:6 by sanderd17, 8 years ago

I don't think the map of connected regions would be useful. It should be possible to have the ship with a center on impassable terrain (water), but to unload units on the shore.

The solution is probably to let map makers explicitly mark certain terrains as impassable, and not derive it from the steepness. Then the entire center of the mount could be mapped as impassable, even if it's completely flat.

comment:7 by mimo, 8 years ago

My idea for that was:

  • for structures, only spawn in the region connected to the tile in front of the door
  • for ships, only spawn in regions containing some shallow water, and if several regions possible and that the player has a set a rallypoint on one of those, only that region will be taken

comment:8 by Vladislav Belov, 7 years ago

My idea: implement not a cylinder, but a sphere for distance checking, then we won't spawn with very high difference of heights, and spawn a unit only if there is a way/path between building and place all inside the sphere. It looks logically, because if the unit spawning takes 1 sec and unit returning/garrisoning - >= 1 minute, then it looks strange. Also it's easy to implement.

comment:9 by elexis, 6 years ago

Description: modified (diff)
Milestone: BacklogWork In Progress
Patch: Phab:D1040

comment:10 by temple, 6 years ago

Milestone: Work In ProgressAlpha 23
Owner: set to temple
Status: newassigned

comment:11 by temple, 6 years ago

Milestone: Alpha 23Alpha 24

comment:12 by elexis, 6 years ago

Description: modified (diff)

comment:13 by hawara, 5 years ago

Vladislav Belov, would we have to introduce the idea of being "ungarrisonable"? On that climb.gif, it doesn't look like there is any way for that unit to get out.

comment:14 by Imarok, 5 years ago

Component: UI & SimulationSimulation

Move tickets to Simulation as UI & Simulation got some sub components.

comment:15 by Freagarach, 4 years ago

Milestone: Alpha 24Backlog

Backlogging due to lack of progress.

comment:16 by Freagarach, 3 years ago

Also spawning/ungarrisoning at the other side of a wall. #6010

Note: See TracTickets for help on using tickets.