Quick Answers / 'Newbie' Questions

Samson

Deity
Joined
Oct 24, 2003
Messages
14,465
Location
Cambridge
Thanks, that makes a lot of sense!

What map scripts would you recommend? Hemispheres with massive continents have produced decent results for me so far.
From what I observed, the AI seems to have more issues handling small islands/snaky continents. Marathon speed also seems to screw with the AI somewhat.
Fractal is my go to map script. Generally the AI is optimised for the default settings, so anything that deviates from that will disadvantage it.
 

Samson

Deity
Joined
Oct 24, 2003
Messages
14,465
Location
Cambridge
Why fractal? I‘ve seen it being recommended multiple times now, what is so good about it?
It is hard to say for sure, other that I tend to prefer the games with that than with others.

I THINK is is just the right balance of variability (such that one starts in all sorts of different terrain types, and it may be a pangea or continents) and consistency/balance (there tends to not be too vast differences in quality of starting spot, not too frequently alone on an island, that sort of thing).
 

AcaMetis

Emperor
Joined
May 21, 2018
Messages
1,552
My personal favorite map script type is Inland Sea, with +1 AI (assuming standard size). Very even distribution of land and AIs, at the cost of higher than average Barbarian trouble.
 

sampsa

Ghost
Joined
Jan 1, 2006
Messages
3,538
Location
Finland
Reasons why I play nearly 100% fractal:
  • archipelago/water maps are way too easy, because GLH is OP and AI is extremely weak on watery maps.
  • pangaeaish maps are strategically too simple. You know from the get-go what you need to win - a military tech and enough troops to capitulate every AI. This works even on deity. Perhaps bigger maps can be better, but still...
  • continents can be interesting, but after meeting the AIs on your continent there is nothing pushing you to scout further, because you know the rest of the AI are unreachable pre-astro.
  • fractal offers you variety and rewards scouting, sometimes creating strategically unique situations which reward "out of the box"-thinking. Of course, most of the time it's just one of the above, but at least you need to find out which one it is. ;)
Sometimes you get a very tough game and sometimes a very easy one, but I'm not sure if that is such a horrible thing.
 

ChiefBigFeather

Chieftain
Joined
Sep 27, 2022
Messages
5
Interesting perspective, thanks! My last game turned out to be completely busted - marathon game with Roosevelt where I got a wicked workboat start, tons of coastal cities with GLH and colossus. It got very boring very fast. That felt pretty busted, good to know it wasn't an outlier.

I think I like the idea of having continents. It could lead to an entirely new game post astronomy. But maybe that will turn out to be very boring in practice :)
Maybe I should try Totestra, that script seems to produce good looking results. Dunno if those will play well though.
 

need my speed

Rex Omnium Imperarium
Joined
Oct 3, 2009
Messages
2,340
Location
European Union (Magna Batavia)
Recently, Númenór wanted to invade me, Isengard. Looking at the map, I thought, well, Númenór needs to cross Dunland to reach me. So I contacted Dunland, and wanted to ask this civilisation to stop trading with Númenór, so that the open borders would be cancelled.

Curiously enough, I didn't have the option of asking Dunland to stop trading with Númenór - is this because they would have signed open borders less than 10/20 turns ago, and so it couldn't be cancelled yet?

I could, however, ask them to stop trading with Rivendell, although the option was red, and had the text: "Not before we have erected a most beautiful monument to our everlasting glory."
I have never seen this text before, but, I would >assume< it implies Rivendell is supplying them with a resource that boosts the production of a wonder? Because I have no wonder that absolutely requires a resource in my game.

But, curious, I entered the World Builder, and saw that Dunland was building Culture in all of its cities. So they weren't building a wonder at all. So what does this text mean?
Google knows nothing, and the XML file calls it 'TXT_KEY_DENIAL_MYSTERY'.

(Númenór ended up invading me through the lands of Rohan, hmpf)
 

Lennier

Emperor
Joined
Mar 10, 2013
Messages
1,404
Location
Orange County, NY
Sounds like you were playing a mod.
 

need my speed

Rex Omnium Imperarium
Joined
Oct 3, 2009
Messages
2,340
Location
European Union (Magna Batavia)
Sounds like you were playing a mod.
Obviously (my own). But 'TXT_KEY_DENIAL_MYSTERY' is present in the base game, so that is irrelevant.
 

f1rpo

plastics
Joined
May 22, 2014
Messages
1,420
Location
Germany
[...] But 'TXT_KEY_DENIAL_MYSTERY' is present in the base game [...]
It is present and says "We have our reasons" – but the original game doesn't ever give that reason when refusing to stop trading: CvPlayerAI.cpp#L7137
No DENIAL_MYSTERY in there, just DENIAL_POWER_THEM (vassal refusing to stop trading with master) and attitude-based denials. DENIAL_MYSTERY is only used when refusing a tech trade, namely, when the tech would allow the recipient to compete for a wonder that the AI is currently constructing. To get to the bottom of this, I would try searching the source code of the mod's DLL for DENIAL_MYSTERY.

As far as I can tell, one can't ask the AI to stop trading if there is no deal that can currently be canceled (see the definition of and calls to isTradingWithTeam in CvPlayer.cpp). So that seems to work as in BtS in your mod's DLL.
 

need my speed

Rex Omnium Imperarium
Joined
Oct 3, 2009
Messages
2,340
Location
European Union (Magna Batavia)
Ah ha, I didn't realise that this mod might change what exists in the basegame - thank you for pointing that out for me! And indeed, in CvPlayerAI:
Code:
    {
        if (GET_TEAM(getTeam()).isOpenBorders(eTradeTeam))
        {
            if (GET_TEAM(getTeam()).getAnyWarPlanCount(true) > 0)
            {
                return DENIAL_MYSTERY;
            }
        }

    }
So the AI is planning a war, for which it might need open borders with another civilisation, and so it doesn't want to stop trading with that civilisation. Smart!

But also, in CvTeamAI.cpp:
Code:
DenialTypes CvTeamAI::AI_techTrade(TechTypes eTech, TeamTypes eTeam) const
...
    for (iI = 0; iI < GC.getNumUnitInfos(); iI++)
    {
        if (isTechRequiredForUnit(eTech, ((UnitTypes)iI)))
        {
            if (isWorldUnitClass((UnitClassTypes)(GC.getUnitInfo((UnitTypes)iI).getUnitClassType())))
            {
                if (getUnitClassMaking((UnitClassTypes)(GC.getUnitInfo((UnitTypes)iI).getUnitClassType())) > 0)
                {
                    return DENIAL_MYSTERY;
                }
            }
        }
    }

    for (iI = 0; iI < GC.getNumBuildingInfos(); iI++)
    {
        if (isTechRequiredForBuilding(eTech, ((BuildingTypes)iI)))
        {
            if (isWorldWonderClass((BuildingClassTypes)(GC.getBuildingInfo((BuildingTypes)iI).getBuildingClassType())))
            {
                if (getBuildingClassMaking((BuildingClassTypes)(GC.getBuildingInfo((BuildingTypes)iI).getBuildingClassType())) > 0)
                {
                    return DENIAL_MYSTERY;
                }
            }
        }
    }

    for (iI = 0; iI < GC.getNumProjectInfos(); iI++)
    {
        if (GC.getProjectInfo((ProjectTypes)iI).getTechPrereq() == eTech)
        {
            if (isWorldProject((ProjectTypes)iI))
            {
                if (getProjectMaking((ProjectTypes)iI) > 0)
                {
                    return DENIAL_MYSTERY;
                }
            }
This seems to be about not selling a technology that would allow an opposing civilisation to build stronger units, wonders, or projects.

And later on:
Code:
DenialTypes CvTeamAI::AI_mapTrade(TeamTypes eTeam) const
...
if (GC.getGameINLINE().isOption(GAMEOPTION_RUTHLESS_AI))
    {
        if (AI_getWarPlan(eTeam) != NO_WARPLAN)
        {
            return DENIAL_MYSTERY;
        }
...
else if (bWarplans)
        {
            return DENIAL_MYSTERY;
        }
And this seems to say that, if we plan on going to war against someone, don't sell them our map.

A fun dive into files I normally never visit, thank you! :)
 
Last edited:

f1rpo

plastics
Joined
May 22, 2014
Messages
1,420
Location
Germany
Ah ha, I didn't realise that this mod might change what exists in the basegame - thank you for pointing that out for me! And indeed, in CvPlayerAI: [...] So the AI is planning a war, for which it might need open borders with another civilisation, and so it doesn't want to stop trading with that civilisation. Smart!
Cool. :thumbsup: Someone just forgot to adjust the DENIAL_MYSTERY text (or to use a new or different type of denial). DENIAL_RECENT_CANCEL would work ("not right now, maybe we'll change our mind in a few years"). Though, in any case, this smart AI move gives away the AI war plan and rewards the human player for constantly checking the trade screen, so I'm not sold on this change.
Edit:
This seems to be about not selling a technology that would allow an opposing civilisation to build stronger units, wonders, or projects.
That's this:
when the tech would allow the recipient to compete for a wonder that the AI is currently constructing.
And it also applies to world projects and world units (if a mod adds those). So this part is as in BtS.
 
Last edited:
Joined
Jan 23, 2019
Messages
13
Is there a way to make all units of a stack appear by default instead of just one unit of the stack appearing when it is not selected?

1668479952629.png
 

TheBirdMan

Prince
Joined
Jun 5, 2018
Messages
322
Location
Northwest Zealand, Denmark

Fippy

Mycro Junkie Queen
Joined
Mar 17, 2013
Messages
12,773
What advice would you give to immortal players who struggle to beat deity?
1. Value every turn. Things like finding better first city placements (2:hammers: tiles aka plains hills, stone or marble). Getting fogbusters out instead of warriors or scouts running around curiously.
2. Diplo with AIs. Know which bonuses you can get (open borders, resources, gifts etc.), playing too proud and ignoring them can lead to pain ;)
 

migalhone

Monarch wannabe
Joined
May 26, 2013
Messages
229
Location
Portugal
1. Value every turn. Things like finding better first city placements (2:hammers: tiles aka plains hills, stone or marble). Getting fogbusters out instead of warriors or scouts running around curiously.
2. Diplo with AIs. Know which bonuses you can get (open borders, resources, gifts etc.), playing too proud and ignoring them can lead to pain ;)
"Getting fogbusters out instead of warriors or scouts running around curiously."

By that, you mean builds units more powerful than warriors to be more effective against barbarians when we send them out to places we haven't settled yet?
 
Top Bottom