jdog5000
Revolutionary
(You can always get the latest stable release from the download thread or sourceforge. Development versions and updated source code can also be checked out from sourceforge.)
The main focus of this release was on reducing turn times to speed up the mod. Many thanks to stmartin and the other behind the CAR mod and those who contributed to the discussion on profiling the DLL! The most significant time saving aspects of CAR were brought over or adapted, including the plot danger cache system and the attitude value cache system. In addition, the BBAI system for transports to retrieve stranded units is now massively more efficient. Large maps with many civs should be much more palatable in this version.
Beyond efficiency, there are a lot of BtS and BBAI bugs and issues fixed in this version. Unofficial Patch 1.2 is included of course. In addition, a new era-based tech cost scaling system is included to allow easy rebalancing of tech pace. A hidden bonus where AI's would have their unit maintenance costs reduced by their number of cities after meeting the human player has also been removed in lieu of handicap adjustments for army size at this point.
Specific desired feedback:
- Game speed: Is the mod fast enough? If you experience really long turn times, please post a save.
- Tech rate: Do you and the AIs get to the modern era too early or too late? Does spaceship victory timing seem right?
Enjoy!
New in Better BTS AI 0.81
Added Unofficial Patch 1.2
Bugfix
- Fixed rare issue (introduced) with assault transports causing endless turns
- Fixed bug (introduced) causing assault transports to oscillate in and out of cities under certain circumstances
- Fixed bug causing AI to build only half as many workers as it wanted, then build too many under rare circumstances
AI bonuses
- Removed a hidden AI bonus for extra support free troops which favored larger empires
Efficiency
- Most calls to CvPlayerAI::AI_getPlotDanger really just need boolean, added new CvPlayerAI::AI_getAnyPlotDanger which is faster
- New cache system for CvPlayerAI::AI_getAnyPlotDanger and CvPlayerAI::AI_getPlotDanger for plots verified safe or plots known to be border plots
- Improved efficiency and reduced usage of costly new functions, CvPlot::isHasPathToEnemyCity and CvPlot::isHasPathToPlayerCity
- Added CvSelectionGroup::isHasPathToAreaPlayerCity and CvSelectionGroup::isHasPathToAreaEnemyCity, faster versions of prior plot-based functions
- Stranded status for groups is now cached
- Small speed up for earlier rejection of paths to cities/plots in other land areas
- Re-ordered sections in pathValid to reduce expensive calls
- Greatly increased efficiency of BBAI function CvUnitAI::AI_assaultSeaReinforce
- Adapted the getAttitudeVal cache system from CAR, significant turn time improvement on maps with many players
War strategy AI
- AI now considers whether team they're planning war against is already engaged, speeds up planning phase if that's the case
War tactics AI
- AI a little more selective about sending attack units after barb cities
- AI more likely to raze barb cities far from its empire
Tech Diffusion
- Added new era-based tech cost modifier to re-pace tech progress
Customization
- Added iTechCostModifier to CIV4EraInfos.xml, allowing easy per era scaling of tech costs
Unit AI
- Improved AI_protect with a max path length designator and weighting by path length
- Stranded units with no useful actions to take now check whether to load into transports, fixing issue with picking up stranded units in foreign cities
Naval AI
- Improved and fixed bugs in blockade breaking code (still needs to be better though ...)
- Greatly reduced chances for naval vessels to sail en masse around entire continents to deal with single enemy ship
- Transports will no longer consider switching unit types when they happen to be in someone else's city
- Fixed issue with picking up units stranded in foreign cities
Settler AI
- Fixed issue where transport mostly full of workers would idle infinitely unsuccessfully trying to pick up a settler
- When units are dropped off in new lands with settlers, they will now stay with the settler instead of often leaving, then returning to the new city after it's undefended for a turn
Barbarian AI
- Barb now more likely to send out small naval invasion fleet if it has one (happens on Terra maps now sometimes ...)
- Barb attack city stacks will now attack colonists much more readily (mostly on Terra maps)
- Barb cities now build more attack units, especially when in danger or when colonists are invading the new world
- Barb cities much less zealous about building workers
(EDIT: Also, the reported crash bug in multi-player games should be fixed)
The main focus of this release was on reducing turn times to speed up the mod. Many thanks to stmartin and the other behind the CAR mod and those who contributed to the discussion on profiling the DLL! The most significant time saving aspects of CAR were brought over or adapted, including the plot danger cache system and the attitude value cache system. In addition, the BBAI system for transports to retrieve stranded units is now massively more efficient. Large maps with many civs should be much more palatable in this version.
Beyond efficiency, there are a lot of BtS and BBAI bugs and issues fixed in this version. Unofficial Patch 1.2 is included of course. In addition, a new era-based tech cost scaling system is included to allow easy rebalancing of tech pace. A hidden bonus where AI's would have their unit maintenance costs reduced by their number of cities after meeting the human player has also been removed in lieu of handicap adjustments for army size at this point.
Specific desired feedback:
- Game speed: Is the mod fast enough? If you experience really long turn times, please post a save.
- Tech rate: Do you and the AIs get to the modern era too early or too late? Does spaceship victory timing seem right?
Enjoy!
New in Better BTS AI 0.81
Spoiler :
Added Unofficial Patch 1.2
Bugfix
- Fixed rare issue (introduced) with assault transports causing endless turns
- Fixed bug (introduced) causing assault transports to oscillate in and out of cities under certain circumstances
- Fixed bug causing AI to build only half as many workers as it wanted, then build too many under rare circumstances
AI bonuses
- Removed a hidden AI bonus for extra support free troops which favored larger empires
Efficiency
- Most calls to CvPlayerAI::AI_getPlotDanger really just need boolean, added new CvPlayerAI::AI_getAnyPlotDanger which is faster
- New cache system for CvPlayerAI::AI_getAnyPlotDanger and CvPlayerAI::AI_getPlotDanger for plots verified safe or plots known to be border plots
- Improved efficiency and reduced usage of costly new functions, CvPlot::isHasPathToEnemyCity and CvPlot::isHasPathToPlayerCity
- Added CvSelectionGroup::isHasPathToAreaPlayerCity and CvSelectionGroup::isHasPathToAreaEnemyCity, faster versions of prior plot-based functions
- Stranded status for groups is now cached
- Small speed up for earlier rejection of paths to cities/plots in other land areas
- Re-ordered sections in pathValid to reduce expensive calls
- Greatly increased efficiency of BBAI function CvUnitAI::AI_assaultSeaReinforce
- Adapted the getAttitudeVal cache system from CAR, significant turn time improvement on maps with many players
War strategy AI
- AI now considers whether team they're planning war against is already engaged, speeds up planning phase if that's the case
War tactics AI
- AI a little more selective about sending attack units after barb cities
- AI more likely to raze barb cities far from its empire
Tech Diffusion
- Added new era-based tech cost modifier to re-pace tech progress
Customization
- Added iTechCostModifier to CIV4EraInfos.xml, allowing easy per era scaling of tech costs
Unit AI
- Improved AI_protect with a max path length designator and weighting by path length
- Stranded units with no useful actions to take now check whether to load into transports, fixing issue with picking up stranded units in foreign cities
Naval AI
- Improved and fixed bugs in blockade breaking code (still needs to be better though ...)
- Greatly reduced chances for naval vessels to sail en masse around entire continents to deal with single enemy ship
- Transports will no longer consider switching unit types when they happen to be in someone else's city
- Fixed issue with picking up units stranded in foreign cities
Settler AI
- Fixed issue where transport mostly full of workers would idle infinitely unsuccessfully trying to pick up a settler
- When units are dropped off in new lands with settlers, they will now stay with the settler instead of often leaving, then returning to the new city after it's undefended for a turn
Barbarian AI
- Barb now more likely to send out small naval invasion fleet if it has one (happens on Terra maps now sometimes ...)
- Barb attack city stacks will now attack colonists much more readily (mostly on Terra maps)
- Barb cities now build more attack units, especially when in danger or when colonists are invading the new world
- Barb cities much less zealous about building workers
(EDIT: Also, the reported crash bug in multi-player games should be fixed)