[BTS] Barb galleys and spawn-busting

Pangaea

Rock N Roller
Joined
Sep 17, 2010
Messages
6,390
This has me really confused now. Tried to search, but only found some threads of loose relevance from 2009 and 2010, so here is a new one.

First off: Spawn-busting is the form of dark arts that is well-known by now, thanks to the work of the legendary DanF-something (he doesn't show up with @-trick). It means that if you have a unit placed in the fog (or anywhere), a barb cannot spawn in the region two tiles from that unit in all directions (so 25 tiles in total).

I am 99.9% sure this also applies to barb galleys, which is why I've seen seriously good players like @Fippy plan for that in competitive play where they place warriors in such a fashion that they cover the tiles on the coast as well, so that barbgalleys cannot spawn and ruin her seafood/day.

So then, imagine my surprise when a barb galley suddenly spawn, given this protection:

y2DE6Zk.jpg


The chariot "protects" the grey square of 5x5 tiles, including the darkened tile in the corner. The city itself covers the row south of it, as they are highlighted (not in the fog of war) -- even without the worker there (I tried to delete him). Yet a barb galley somehow showed up here. All the tiles further south are ocean tiles (only 1 :commerce: ), so my initial WTH thought of there being an island further south probably cannot be correct (galleys can't travel on ocean tiles, unless you control the cultural borders there). But what on earth has happened here? :confused:
 
That is weird... I'm pretty sure fogbusting barb galleys should work the same as for any other units.
 
As far as I know land units do prevent sea barbs from spawning, so the only explanation (at least that I can think of) is that either a galley snuck into the one fogged tile without you noticing, or it's been there the entire time and only on that turn did it decide to finally move. Both sound unlikely, especially the "the barb snuck right past the city flipping it's tables because the enemy has been spotted near Rheims!" theory, so I guess testing is required to confirm that land units do prevent sea barbs from spawning?
 
Busting galleys definitely works, so there has to be an explanation like maybe 1t you did not have a unit there. It only takes one turn.
 
I'm honestly quite stumped. But something must explain it. Later I can try to go through some saves games with WB (don't have a lot from the period, but a few), but don't want to reveal the map as I'm currently playing. Maybe some tiles were not covered to the south at some point. But the barb galleys usually move constantly, so I should have seen it in that case. It certainly hasn't snuck past at some point, that I know (units were also on guard duty, so alarms would have gone off).
 
Barbarian spawns are controlled by CvGame::CreateBarbarianUnits(), which in turn has the line

Code:
pPlot = GC.getMapINLINE().syncRandPlot((RANDPLOT_NOT_VISIBLE_TO_CIV | RANDPLOT_ADJACENT_LAND | RANDPLOT_PASSIBLE), pLoopArea->getID(), GC.getDefineINT("MIN_BARBARIAN_STARTING_DISTANCE"));

That is calling CvMap::syncRandPlot with some flags and other inputs, which is going to select a plot at random from within an area.

The constraints? The plot must not be visible to any civ, the plot must be next to a land tile (it can be land or water itself, but not deep ocean), and the plot must be passible - not a mountain. The plot must be in the right "area" (the game divides the map into areas, like one continent will be one area - so it's generating barbarians independently for each continent, hence why some continents can have barbs spawning while others do not). And the plot must be at least MIN_BARBARIAN_STARTING_DISTANCE (2) tiles away from any other units.

This portion of the code is agnostic about what type of unit, specifically, is being spawned - it picks a tile first, then iterates over all the barb civ's unit types to pick the best one to create on that specific tile, with constraints like not picking land units for water tiles. It doesn't know or care whether the unit created will be a galley, warrior, or helicopter until after it has chosen the tile. Which means galleys are fogbusted in the exact same fashion as other barb units.
 
Thank you, that's a great explanation. Must mean I missed at least one tile at some point, as the barb galley can't have been created otherwise.
 
Welcome back Pangaea :)
I think barbs stand still after they appeared first (like AI workboats etc), so if you accidently missed fogbusting for 1t before that would explain why it appeared after you covered that tile.
 
Barb galleys can appear to be "hiding" from you in the fog far more than you'd expect if they were moving around randomly. This is because barb galleys are held back by a constraint: they will only enter your cultural borders if there's something to attack/pillage within 7 tiles from the border. Judging from your screenshot, that rule seems to apply, and so it's possible the barb was going back and forth in the fog for several turns.
 
Have played the map long enough now to go into the World builder without revealing stuff I don't know (at least locally), so here we go...

Well, then, look at that. From 1AD.

cKhktnm.jpg


That one tile (or the one south) must have been uncovered at some point, the galley spawned, and then simply stayed there without moving (or technically moving back and forth without the human being able to see it between turns).

Perhaps the chariot was placed slightly differently, and then moved to the current position. Or maybe the area wasn't perfectly covered prior to the city being founded there. I don't recall exactly with such details. Once borders expanded, the galley was probably revealed, as then there were no tiles in the fog of war any more.

Thanks for the welcome back as well. Fun to play the game again, and I'll see how long it lasts this time. It's cyclic.
 
Good to have you back :)

yeah, I've seen galleys hang out for ages like that
 
Back
Top Bottom