Original Post
How intelligent should the AI of units in an RTS be? On the one hand, it's frustrating if units are incredibly "dumb". Like the infantry in some C&C games that would heroically their position until they got run over by a tank. Also with the whole "more realism" thing that seems so important for games people want to give more abstract orders ("Attack that position and flank it") instead of "microing" every single unit, since that obviously isn't what a real general does (telling every infantryman personally what to do...). On the other hand, units that are trying to be intelligent can also be extremly annoying. Either because they are not doing what you expected them to do, or because they insist on doing something "wrong" and you have to contantly give them explicit orders. When I set out on my current project I started with the idea of having a very high level command system where you would assign units to some sort of "strike groups" and then only give abstract orders like "take that position", "destroy that enemy group" etc. and wanted them even to request permission to retreat or artillery assistance... Since I am only a one guy team programming for fun I almost immediatly realised that I'd never get there since even moving around a single unit intelligently proved to be quite a challenge. I also switched the whole game to a space setting since that allows me to disregard most of the expected vehicle physics, wayfinding etc. Also, after having replayed some of my old RTS Games, I realised that I prefer having units that are predictable in their "stupidity" (meaning, they do exactly what you tell them to in a straightforward way) than ones that are unpredictable because of their AI. This can be something as simple as wayfinding. In starcraft when the way for a unit is blocked by another unit at a choke or similar they start to recalculate their path which generally makes them wander around aimlessly further screwing up the wayfinding of other units they cross (ever tried to defend a base against carriers with a lot of goliaths?...). I'd rather have them to just stop when their path is blocked and issue a "can't go there" message and move on as soon as the path is cleared again. So what are your thoughts? Do you want intelligent behavior and a highlevel command system or just dumb tell-me-exactly-what-to-do-units?