http://apolyton.net/forumsOriginally posted by The Rusty Gamer
Patching up CT2 first to fix some of the bugs first would be nice.
Alot of people felt they were stung by Activision pulling support before the game had reached its full potential and will not quickly flock to buy CTP3.
Originally posted by Immortal Wombat
http://apolyton.net/forums
The number of bugs fixed is going on all of them. (Now we just wait for the site to come back online)
You could disable the ability to get units in goody huts. Not ideal by any means, but.Originally posted by The Rusty Gamer
They can't fix the bugs in the EXE, one of them being big delays when an opposing civ gets a miltary unit from a goody hut.
Technically, the AI could be completely rewritten, up to Civ3 standard and beyond, the fact that it would take the united community over 10,000 hours is the only thing stopping us.
There are other things as well, alot of the "fixes" or mods are workarounds using SLIC and so on. The AI is pretty bad in CTP2 and I think there is a limit on how this can be worked around with mods, again you would have to get into the EXE to fix it properly I believe.
Actually, AFAICS that problem is related to the size and complexity of the tech tree so having a small and straightforward tech-tree - as opposed to the current large and complex (i.e. with many cross-links) ones - would solve the problem as well. Not a bug in the EXE per se, just very inefficient programming (which, unfortunately, is all too common in modern computer programs, games or apps)...Originally posted by Immortal Wombat
You could disable the ability to get units in goody huts. Not ideal by any means, but.
I see you are a guy of conservative estimatesover 10,000 hours
YesOriginally posted by Locutus
I see you are a guy of conservative estimates![]()
Originally posted by The Rusty Gamer
They can't fix the bugs in the EXE[...] The AI is pretty bad in CTP2 and I think there is a limit on how this can be worked around with mods, again you would have to get into the EXE to fix it properly I believe.
AI_INTELLIGENCE_FACTOR 1
AI_GANG_UP_FACTOR 1
DISTANCE_FROM_CAPITOL_ADJUSTMENT 0
AI_DISTANCE_FROM_CAPITOL_ADJUSTMENT 0
POLLUTION_ADJUST 0
How much SLIC would it take to narrow down all the situations to the ones where it is necessary? Do we need to do some number juggling to figure out relative strengths and er... stuff...Originally posted by PeteT
1) It doesn't employ it's war strategies enough (STRATEGY_SEIGE, STRATEGY_ATTACK, STRATEGY_DEFEND). These can be refined and maybe we even want to add some new ones (say STRATEGY_BOMBARD_UNITS, which really prioritizes that goal - which wasn't in the original game - but is a strategy that isn't used very often). There's no real problem in getting an AI civ to use these strategies, it's just getting it to use the proper strategy at the right time.
Lets hope so. Disenchanted Civ3 players need something to play
Anyway, although it's the AI that everybody really complains about (going back to CTP1), and so it's 'the big challenge', I'm confident that we'll eventually get it sorted out.
Originally posted by PeteT
But so far as getting the AI to use better strategies is concerned, I think it's quite do-able. For example, there are two things it doesn't do that it obviously should do:
1) It doesn't employ it's war strategies enough (STRATEGY_SEIGE, STRATEGY_ATTACK, STRATEGY_DEFEND). These can be refined and maybe we even want to add some new ones (say STRATEGY_BOMBARD_UNITS, which really prioritizes that goal - which wasn't in the original game - but is a strategy that isn't used very often). There's no real problem in getting an AI civ to use these strategies, it's just getting it to use the proper strategy at the right time.
2) There's the problem of getting a weaker AI civ to attack a stronger human. This must be one of the major gripes about the game: once a human player gets into a strong position, the AI civs won't do anything. Richard Myers suggested how to do this and, IIRC, I tried it out and it works. (But I never did work out the proper diplomacy settings, so that it wouldn't immediately accept a ceasefire.)
The following variables help control the diplomatic desires for the AI. These are used to set the levels of motivations and fears that help determine when specific diplomatic requests are initiated as well as when high-level strategic decisions are made like when to go to war.
FearInvasion - Fear priority based on enemy?s ability to invade
FearCityDefense - Fear priority based on cities defense level
FearPiracy - Fear priority based on piracy risk
FearScienceRank - Fear priority based on relative science levels
FearMilitaryRank - Fear priority based on relative military levels
FearTradeRank - Fear priority based on relative gold income levels
FearPollution - Fear priority based on pollutions levels
DesireAttack - Desire priority to go to war
DesireGold - Desire priority to get gold
DesireScience - Desire priority to get advances
DesireMakeFriend - Desire priority to maintain peace
DesireEnlistFriend - Desire priority to get allied assistance
PiracyMemoryTurns - Length in turns to remember that a route was pirated
MaxPiracyEvents - Number of time a route can be pirated before redirecting the route
The force match structures define the army strength ration desired before attacking. These can be used to fine tune the win ratio of AI attacks. High force match ratios can guarantee that the AI will win every combat but could end up preventing the AI from attacking if it never has enough force launch a successful attack. The force match setting are refernced from Goals.txt
ForceMatch - The force match structure. See the example for proper syntax. Valid values: Offensive, Defensive, StealthAttack, Bombard, Special & Harass
AttackMatch - Ratio of army's attack strength to target's defense strength
DefenseMatch - Ratio of army's defense strength to target's attack strength
RangedMatch - Ratio of army's ranged strength to target's ranged strength
BombardMatch - Ratio of army's bombard strength to target's bombard strength
ValueMatch - Ratio of army's value to target's value The following variables control how the AI utilizes it?s nuclear capabilities.
NuclearFirstStrike - Controls the AI ability to initiate first strike with nuclear weapons. Valid values: Enabled & Disabled
NuclearTargeting - Controls the AI ability to target enemy cities with nuclear weapons. Valid values: Enabled & Disabled
PreemptiveStrikeRegard - Do not perform first strike if our regard is above some limit
PreemptiveStrikeRiskRatio - Ratio of foreign nukes to wipe us off the map? (eg. if more than 1 foreign nuke to every 4 of our cities would be enough to prevent us from launching, specify 0.25)
PreemptiveStrikeSuperiorityRatio - Ratio when the AI has enough nukes to wipe them off the map? (eg. if having less than 3 nukes to every 4 enemy cities prevents us from launching, specify 0.75)
You suggest that the AI never use these war strategies if it is in war with someone else?
Original Cradle
GOAL_DEFEND 557k 657k
GOAL_SEIGE 405k 705k
GOAL_ATTACK 405k 850k
GOAL_BOMBARD 407k 700k
For me this suggest if a fear priority is very high like FearMilitaryRank than this civ wouldn't attack another with a big army.
It also suggest if the FearTradeRank priority very high this civ wouldn't attack another civ that has a high income from trade either. But trade is worth nothing if you have not a big army. So here is my question did try anyone to set these numbers on zero and watched what happened?
This partially contradicts what was said in the documentation you quoted above, so how they affect when "high-level strategic decisions are made like when to go to war", is an open question. (Maybe Richard just forgot about that part.) What he said about how they are used to compute which new proposals an AI should make must certainly be true: I think that what it means is that an AI civ with a high 'FearTradeRank' motivation priority would be more inclined to enter into trade agreements and one with a high 'FearMilitaryRank' motivation priority would be more inclined to enter into military agreements. BTW, as for war, there's a function "INT GetDesireWarWith(int<player>, int<player>)" which returns 1 or 0. It seems to depend initially on the player's personality type but changes according to relative strength.The motivations are only used for computing which new proposals an
AI should make, so I don't think this gets at what you want.
Would this mean if I set all the values of the Offensive block to zero, it would turn any stack with an offensive goal into a suicide command?
How much SLIC would it take to narrow down all the situations to the ones where it is necessary? Do we need to do some number juggling to figure out relative strengths and er... stuff...
if (IsAtWarWithHuman(player[0])){
ConsiderStrategicState(Player[0], 1500, StrategyDB(STRATEGY_SEIGE),-1,-1,-1);
}
Originally posted by PeteT
In the original game, even when it's fighting a war it's primarily interested in defending it's cities. (Sound familiar? Even tonight, Richard III said just this in another thread.) In Cradle it's primarily interested in attacking your units, and secondarily your cities. (Actually it's a bit more complicated than that because David also modified some of the parameters in the definition of GOAL_SEIGE, the goal for attacking cities.)
Originally posted by PeteT
Basically, I think yes. These are exactly the settings for the Barbs in the original game (David changed them for Cradle) and there they are in kamikaze mode: they attack anything they can.
Originally posted by PeteT
WesW asked Richard about this data and got the following reply (luckily, I saved the whole thread on my HD:
This partially contradicts what was said in the documentation you quoted above, so how they affect when "high-level strategic decisions are made like when to go to war", is an open question. (Maybe Richard just forgot about that part.) What he said about how they are used to compute which new proposals an AI should make must certainly be true: I think that what it means is that an AI civ with a high 'FearTradeRank' motivation priority would be more inclined to enter into trade agreements and one with a high 'FearMilitaryRank' motivation priority would be more inclined to enter into military agreements. BTW, as for war, there's a function "INT GetDesireWarWith(int<player>, int<player>)" which returns 1 or 0. It seems to depend initially on the player's personality type but changes according to relative strength.
Originally posted by PeteT
Edit: To fix code. And, can anyone (perhaps a moderator) tell me how to stop messages from expanding horizontally? Thanks.