m_k wrote:
there should be a section in the gamestateAI where each AI can store any information it needs in later turns, this would make saving easier than including a load/save function in every AI
Feel free to add any fields you need to the AIstate.
m_k wrote:
We should probably agree on the order in which the AIs are called. Some are mostly independent, like diplomacy and design, or passive like gamestate or fleet, but for example all AIs which use fleets and missions will be possibly influencing each other.
I agree that we need to keep an eye on this matter... however, as I conceive the fleet management now, there will be no difference in which order the individual modules will be called. There will be an AI that creates new fleets and assigns them their role, and the individual fleet management AIs like exploration, colonisation, warfare will only pick the fleets they've been assigned (by their role).
Geoff the Medio wrote:
If you want a central storage class or module to keep track of issued orders and AI plans and data, that's not game state; it's AI state.
This is what it is supposed to be. We'll call it AIstate then.
Geoff the Medio wrote:
Regarding individual AI modules storing information, you don't need to do anything fancy (like providing a saving and loading interface for them to use). If you've got all your AI modules stored within a container, you can just pickile the whole container as your state string. If you want to separate temporary state information from state information you want to store and retrive when saving / loading, make a separate state information container and pickle that.
All the information that should be saved is stored within the AIstate class, so only this class needs to be pickled.
Geoff the Medio wrote:
You should keep track of ship designs by unique id, not name.
Ok.
Geoff the Medio wrote:
As noted, storing production or research queues is unnecessary when it's available from the gamestate accessors in foAIInterface.
I've removed it. It was more a reminder to myself there may be some information about the queues that we may want to store, but right now, I don't see what it would be.
Also, the term FleetAI is misleading, since it's more helper functions than an actual AI. Maybe it should just be called FleetUtils.