GoodGame
Red, White, & Blue, baby!
- Joined
- Dec 17, 2004
- Messages
- 13,725
PieceOfMind said:If the result of the AI picking techs one at a time is that if often doesn't see a really great tech 2 techs away because it's blocked by a poorer tech, then it'd be a problem.
I reckon averaging the value of two or three techs ahead could be worth it (or some more appropirate way to weight them). This would require the AI to be able to value techs that it cannot currently research though. Beelining too far down the tree is probably not a good idea by the way, especially if it is not flexible to shift strategy along the way.
Dom Pedro II said:But I don't think all hope is lost though... I think that one of the major faults of the AI is that it doesn't retain any knowledge from game to game. Having played over and over again, we develop a list of techs that we think are particularly useful and become "must-have" techs.
It would make sense to me to have the AI compile at the outset of each game a list of must-have techs (let's say 5) based on that AI's particular strategy. Then it would be a lot easier for the AI to cycle through that short list of techs and work its way backward to a preferable path to that tech than to start from where the AI is now and work forward with an increasingly wider set of branches on the tech tree. We could also make it so that the AI would periodically reevaluate the top-five techs it wants cycling out already researched ones, or ones that have dropped in value from a shift in strategy.
This reminds me of the problem of writing AI for FPS games. Pathways for the AI have to be seeded so it: 1. knows where key points on the map are, & 2. the best way to travel between them. Totally analogous to the AI pursuing a tech tree strategy in Civ, I think. Except the 'map' would be the specific set of techs the particular civ should strategize for it's particular situation. And of course, don't have computing power to do a Deep Blue intensive search.
I think in interest of speed though, it'd be better to pre-compile lists of techs for specific 'modes', with the modes being mid-term goals---e.g. Happiness, War, Culture, Health, Gold, Research, Sea power, and DiploVictory---to suggest a modest list.
A quick situational estimation would determine which mode would best suit the AI for a couple of turns (e.g. next 10 turns). The mode would determine the list, and the list would have appropriate target techs listed, queued for the more immediate paying techs (quickest to research). The AI would then still do a 1-tech depth, 'next tech to research' decision, but if those techs were pre-reqs for tech on the mode list, then they would have extra weight in the 'next tech' decision process. It'd even be possible for the AI to pursue a 'shades of grey' approach, with it deciding it was fractionally in multiple modes (e.g. say fractionally both in Culture and War mode) so that the final weights used in the 'next tech' decisioning could be complex (but it'd still be a quick system

The main tweaking would be: how does the AI efficiently determine what its mode is, and are the techs listed in the mode list in the most optimal/expert fashion?
And with complex mode tallying (e.g. where the AI says its .40 in one mode, .20 in another mode, .30 in another mode, and .10 in a final mode) the weighting of target techs could be dynamic---turn to turn if there were system resources---since it would use fractional weights which respond to subtle situational changes. Though there might be an issue of getting stuck in an oscillation between two specific tech choices, turn to turn, I guess.