I don't query this now. I thought it would be a good moment to think a bit deeper into this question.DaveMcW wrote:It's easy to write an AI for Factorio. The most challenging part of the game is designing efficient layouts, which can be pre-programmed into the AI.
It wouldn't take much effort to write an AI that outperforms most humans.
If PVP or PVE ever becomes interesting it might get harder for the AI.
1. What does "An AI for Factorio" really mean?
2. Is this really useful? Would someone use it? Or does it spoil the "pure game"?
3. How could there be an AI, which - generally and with a little bit help by the modder - can play with all types of mods?
4. How important is the role of good, efficient (and smart) layouts (blueprints)?
to question 1:
I think to three general types:
- Completely acting alone, works like a character (or in god-mode), useful for PVP games. I don't see, that this is a realistic target yet, cause such an AI would be easily played out.
- Coop. Like above but you can give it some kind of orders. The side effect is some kind of Interface for the orders, which would also an interesting thing for the "normal" coop-game (but is of course fast over-engineered).
- Helper-AI. I think this is the most realistic (cause simplest type) and also most fun. It is part of the game, you can build the AI and it is then able to do things instead of you (like "Connect this resource with these furnaces"), but maybe uses only robots and maybe you can build several of these in the game.
- Better enemy AI. More intelligent path-finding. More fun with them, following some kind of strategy.
to question 2:
I think yes. Especially as helper-AI this is like in music: Instead of manually pressing all the sliders and buttons on a mixer-console, there are automatics, which can do that for you and which is much more efficient. The game is so big and takes so long, that I always (and said it from beginning) would appreciate any speedup, and AI is such a thing.
to question 3:
I think the answer is in the next question.
to question 4:
I think this is very important. We need a library for "good layouts". A really big number of some hundred blueprints, sorted by usage, input-output item/fluid and so on in some different variations and subtypes. The AI then just needs to find and combine those blueprints and needs to know, how to build it. I think this is a realistic target.