OK, as a show of good will, I printed out the whole thread (

we really need a "printable version" button), and made sure I read everybody's arguments. My overall opinion, after weighing things out, is that we should take some risks and allow AI development to run a little wild, then fix what's wrong. It will be better for the game's development than setting very strict limits from the start. The best way to know if something is good is experimenting - besides, this is the attitude of the SYs, and up to now they have made wise choices. However I'd also like to address some specific points. I'm certainly gonna repeat some things that were already said, but here it goes:
1/ We need options up fast in the lobby to control which group AIs are being used. Here's a nice system: first of all, each AI .dll on each player's computer is checksumed, and compared with a database on the server. If it's unknown, it's uploaded to the server, and its name and version number (mandatory to include if you make a group AI) are registered. Everybody has the ability to comment registered group AIs, so when you play someone, you can check what other people say about the AIs he's using. Then you have two options: a) the server decides which group AIs can be used b) the server allows people to vote on which group AIs can be used. This way, you can refuse to play with someone that has an unknown/unbalanced group AI, if you don't trust him; or you can accept to play but vote against the unwanted AIs. Of course, you can also download any AI that has ever been used (since they're uploaded to the main server automatically - an AI dll should be very small I think).
2/ The worry that I agree most with is the following, best expressed by WZ: that players will code unit behaviors to exploit weaknesses in the engine. But I would like to point out that it was already very annoying to be beaten by a freedom fighter rush or a comm-naping, or other exploits (call them "smart tricks" if you want). If anything, those bugs being exploited by AI will lead to fixing them quicker. Don't forget that this is an open-source game, where balance will be reajusted with each version, and exploits shouldn't last long. Look at the game Battle for Wesnoth as an example: balance is reajusted frequently, and losers who thought they had found the single winning strategy and are exploiting it to death can't rely on it anymore.
3/ In my opinion, one of the best way of preventing AI from being too useful and powerful is adding more depth to the game. One thing WZ and I want very much (I hope I'm not misrepresenting his wishes) is terrain that is more relevent to gameplay. The fact that most online OTA games happened mainly on flat, featureless maps is a bad sign: terrain was difficult to use strategically, trees got in the way, and on top of that, pathfinding was horrible (it's a bit better in Spring, but I have good ideas to improve it... coming soon). So let's add in roads, forests in which you can hide, city environments, weather conditions, and so on. The more factors we add to terrain, the better, because not only it will give us more devious ways of surprising our opponents, but also it will make life more difficult for AI, which has a hard time taking many factors into consideration efficiently.
4/ Maybe it's a good idea to say something related to the
original subject of this thread? I have already presented several time the idea of a priority queue GUI element, which would give you direct control over what your units will target first, both at the global level and at the unit category level, and even for a specific group. Basically, every unit would inherit from the global priorities, until you assign specific ones to a category or group.
The form that this queue would take is that of a panel at the left that would be toggleable with the unit orders/build menu. It would be a simple list of elements that you can move around in the queue; you would be able to drag enemy units from the screen (and a few special orders from a tray) to add new items, when that panel is open. (A few keyboard shorcuts would be nice too, so you don't have to use the panel much except for complex orders.) Right-clicking on a queue item would make the order more general, so if you dragged a mexx on the queue, right-clicking on the "metal extractor" item would make it "metal producing facilities".
Just to give an example, the current priority queue would probably look like:
But you could change it to:
And then in preparation for an air raid you could send a group of Flash tanks with the priority:
Code: Select all
AA towers
Return to base if there are no more of the above targets
In that last example, I hint at the idea that we could also include specific orders in the priority queue.
This would not be the AI playing the game for you, 'cause you have to make the right decisions in your targets queue, and your units must still be at the right place at the right time. Plus, it won't hinder your tactics (direct orders will be followed as usual), only it will help with the split-second hesitations where you would need to give another target, but you can't because you're looking elsewhere, or the screen is too crowded with moving planes and stuff.
One last note: using these priorities will be much more efficient with large groups of units than queueing all Missile Towers to attack: then you waste firepower and turret turning time, as 50 flashes fire at the same MT (I exxagerate the numbers a bit). If they are governed by priorities, your 50 units should target several MTs at the same time, each one with enough firepower to make sure it's destroyed quickly. Of course, if you want to split your units in three control groups and give different targets to all three simultaneously, you can still do that. But it starts sounding like mad-clicking.[/code]