Maintaining control in RTS games
First a small disclaimer:
This topic may have been discussed over and over before, but a cursory search didn’t turn up anything – so I’m going to start a new thread right here.
If this is a tired old topic, just ignore it and let the thread die – either way, let’s keep it amiable.
As the subject line stated, this is about ways to provide adequate player control over the complex situations that arise in strategy games.
Traditionally, the easiest solution is to make the game turn based – since that gives the player as long as they need to plan and execute their moves. This works well in terms of control, but turn based strategy games usually detract a little from realism as they have to invent arbitrary rules to allow one player’s units to move whilst the others are all frozen in time. An example would be the Battle Isle series of games – where, for instance, a recon buggy could advance, bombard an enemy with rockets, and retreat within a single turn – with no opportunity for the enemy to defend itself. Certain games modify this slightly by having all the players take their turn simultaneously. Instead of each player moving their units around whilst the enemy is frozen, they instead issue orders for all their units to carry out when the next turn is generated. Once all players have submitted their orders, the turn is generated and everyone can then see the outcome. This is in some sense fairer – as there is no fixed order of movement for the participants. Stars! Would be an example of such a game.
Whilst either method allows great strategic and tactical control, they both suffer from the drawback that many people don’t want to wait around for other people to finish their turn whilst they sit idle. RTS games overcome this problem (obviously), but the definition of player skill moves further from strategic adeptness and closer to micro-management attentiveness and mouse-cleanliness.
So how does one make an RTS with the same scale as many turn based games, but whilst allowing the player to retain great control over all that transpires? The obvious answer is that such a game cannot be made. Just as the General of an army does not concern himself with the behaviour of every single soldier under his control, neither would the player doing his job in a computer game. Even with complete information and ability to control, said General would simply not have the capacity to direct a war, or even a small battle on his own. The problem, in real life, is overcome by a hierarchical command structure – the General has subordinates, who themselves have subordinates and so on. In an RTS, this would work quite well for a clan (or at least team-oriented) environment, where each team organises itself into a hierarchy and actually respects the orders that come down from above. On the other hand, let’s face it, this won’t happen in your average online game. Besides, sometimes people may want to win for themselves, without the aid of anyone else – limiting the ‘team’ to just one person.
So how about letting an AI control the units which the player is not currently focussed on? Most RTS games do this already, albeit in a very limited way. In Warcraft for example your units will, by default, chase and attack any enemy units which come within a short distance of them. This is an AI which governs individual units, but Warcraft also provides an AI which can control an entire team (cpu-players). Such an AI would be inappropriate to give to each player in the game – simply because it is very, very good. The small scale of Warcraft games means that the player is expected to control everything themselves – micro management of units being one of the more important skills required. If players could simply hand over control to the AI, they would gain the ridiculous advantage of being able to micromanage every individual unit simultaneously – which would force all players to do the same, meaning that no-one is actually playing!
So here’s the (odd) suggestion – make an RTS with the individual unit complexity of Warcraft (or more), but with the scale of operations usually seen in games such as Total Annihilation (or more!). The player is allowed as much or as little control over the units as they desire. The player can assign groups of units to AI control as they see fit, meaning that they can take the role of the general, using AI commanders etc, or as a small squad leader – leaving the overall battle in the hands of the AI. Naturally this leads back to the ‘AI is better than human’ problem that was mentioned above – but to remedy this the AI is made rather poor. The interesting part is that the particular AI assigned to a group of units is chosen by the player, and the player can write new AIs themselves. The game would ship with a base set of not-too-spectacular AI personalities. These would be notionally classified according to the level at which they are given control.
For entire-team control there would be ‘rusher’ and ‘techer’, rusher builds low-tech barracks and pumps out units quickly, sending them to the enemy when they reach critical mass – whilst techer would build a strong base and race for high level units.
There would be intermediate level AI personalities such as ‘line holder’ and ‘divider’. These would be best assigned groups of around 50 units each – they know how to control forces of such a size, but would make little use of the player’s base if given control over it.
Low-level AI personalities could include ‘flanker’, ’skirmisher’ and ‘kiter’. These would be most effective when controlling groups of 1-5 units, a larger force would simply be too unwieldy to perform their preferred tactic, and base control is certainly not their metier.
New AI personalities could be written by players and used within the game. It would probably be the case that the player won’t actually have time to write new AIs whilst playing, so there would be no need for a scripting language – it could be as simple as a C++ API.
Obviously this could get quite complicated – AI is not an easy thing to write, and AIs which control smaller forces which are themselves AI controlled.. could be interesting! The ‘rusher’ personality may, by default, only contain code to build the base, produce units, and assign them over to the ‘divider’ personality, before giving that personality the order to scout the map and attack.
Basically this struck as a good idea because people could refine their AI personalities after each match. If they test out a new change and the AI fails miserably, the player will just take on the responsibility of that control for the match, until it is fixed (or use a different personality, they would all be available, always).
Pros:
o) Since the player can write the AI, they can effectively have as much control as any military strategist to date. The analogy is that of formulating a plan for battle /before/ joining it.
o) Magnanimous players may donate their custom personalities to others in the community (the publisher could host them all?), so that players who don’t wish to write code don’t have to.
o) Allows players to concentrate on the particular scale at which they are most comfortable. The Warcraft 3 veterans would simply flick on the ‘rusher’ AI and then micromanage the units that
it produces. TA players conversely, may take overall control of unit and resource production, assigning their units to the ‘divider’ and ‘line holder’ AIs to fight with.
o) Allows cooperative play – nothing to stop multiple people controlling the same in-game team, each using their own AI personalities as they need to.
Cons:
o) May shift the required skills further from micro-management AND from strategic adeptness, more towards coding fluency.
o) Activating lots of complicated personalities could hog CPU.
o) Client-side AI disallows the very fast network implementation used by Warcraft – which relied on determinism and identical AI on every machine. This could be fixed by having each participating player send their personalities to every other one (since they don’t change during play), but this could lead to personality stealing by clever players. (Mind you, if a player is smart enough to capture and decrypt the incoming personality, they should be good enough to write their own!).
Anyway, that’s the idea and it is probably old news – but it seemed interesting enough to warrant discussion anyway. There is a lot more I could say on this topic, but I wanted to keep it short and see what y’all had to contribute.
--
QSense
Hi QSense,
These are my thoughts which don't differ from your own very much.
You're right that 'middle-ground' is hard to find. It's possible a more complex turn-based system could be used than the 'I-go, you-go'. Some games have tried. Combat Mission works well for me but that's because the AI takes over from the player at some point. Some games have used the simultaneous turns and the pause turns. These do lack a bit of immersion, IMO. My problem with the traditional RTS is escalation to 'click-fest'. The Total War series seemed to be OK in Shogun but, with the increase in unit in Medieval, it was too easy to leave a unit without orders.
These units would soon become fodder until they routed.
For me, 'dumb' units is a heinous crime especially those that simply stand there being culled such as the units in Platoon.
So, what would I do to have the player in control but also not swamped with unit management in an RTS.
First, have a good AI control the unit when not under the player control. I'm assuming the computer controlled opponent has a reasonable AI which controls each unit. The same AI could be used to control player units. Simple 'find cover', 'return fire', 'retreat in order' etc is needed but nothing which would alter the player's tactics (maybe 'Change Target' in extreme cases).
Once a unit can take care of itself the player has some extra time to give more complex orders ('Unit A flank Enemy B using best cover and attack'). If simple orders are given then, maybe, the unit AI can decide the best way to achieve the order so 'Unit A attack Enemy B' becomes 'Unit A flank Enemy B using best cover and attack'
How possible this is in reality, I don't know. If anybody knows a game which uses this method then I'd like to check it out.
These are my thoughts which don't differ from your own very much.
You're right that 'middle-ground' is hard to find. It's possible a more complex turn-based system could be used than the 'I-go, you-go'. Some games have tried. Combat Mission works well for me but that's because the AI takes over from the player at some point. Some games have used the simultaneous turns and the pause turns. These do lack a bit of immersion, IMO. My problem with the traditional RTS is escalation to 'click-fest'. The Total War series seemed to be OK in Shogun but, with the increase in unit in Medieval, it was too easy to leave a unit without orders.
These units would soon become fodder until they routed.
For me, 'dumb' units is a heinous crime especially those that simply stand there being culled such as the units in Platoon.
So, what would I do to have the player in control but also not swamped with unit management in an RTS.
First, have a good AI control the unit when not under the player control. I'm assuming the computer controlled opponent has a reasonable AI which controls each unit. The same AI could be used to control player units. Simple 'find cover', 'return fire', 'retreat in order' etc is needed but nothing which would alter the player's tactics (maybe 'Change Target' in extreme cases).
Once a unit can take care of itself the player has some extra time to give more complex orders ('Unit A flank Enemy B using best cover and attack'). If simple orders are given then, maybe, the unit AI can decide the best way to achieve the order so 'Unit A attack Enemy B' becomes 'Unit A flank Enemy B using best cover and attack'
How possible this is in reality, I don't know. If anybody knows a game which uses this method then I'd like to check it out.
I had a few thoughts along these lines myself. The most likely result I could think of, if the game was successful, was that one particular AI would become predominant and available for download over the net, and 95% of players would use it, or slight modifications of it. That's not necessarily a bad thing, but I suspect you would be back at the "AI is better than players at micromanaging" problem.
This is an interesting idea, and I also had some thought about it myself earlier. The motivation behind this was to eliminate the clicking, so that you can prove to others that "I am a better strategist if you take away the click fest in at RTS." People that are interested in this type of game probably belong to these groups:
- People who likes current RTS but wants more strategy than clicking, they want to have better hierarchical commands to reduce the effort for controlling the army.
- People who look at the current RTS AI, saying, "omg the AI is so stupid, should have known better", and wants to implement more intellient (or "common sense") behaviors to the AI
- People who want to enjoy intense battle micromanaging units, and doesn't want to deal with base development while doing so. These people differ from those that play space shooting games because they also want to take the credit for winning the war, not just for winning a battle.
- People who wants to devise the ultimate AI, in which the player has next to zero influence (AI wars in RTS)
I think that the situation in group 1 is easiest to implement, and will give the most satisfaction compared to the effort. In group 1, the burden on AI is not too high, and the AI does not need to be very complicated.
As you go down the list, the difficult of implementing the AI increases rapidly. Basically, you start to run into perception and representation problems. Since your game is not like a chess game, you will have to devise a model of information gathering and reprsenting the information.
The "common sense" tactic commands (such as Unit A Flank Enemy B) might not be as easy as you might think, here is a list of considerations for this command:
- In terms of the perception of unit A, does A only see where B is? or does A also see the surroundings and B's allies?
- If A have access to the data about the surrounding, how does it evaluate it and decide where to get cover? Are you able to write the AI so that A can identify covers in most situations?
- If A can see B's allies, how should A decide from which side he should flank B?
- Does A need to know what his teammates are doing? Does their position affect his own positioning? To what extent do teammates communicate and cooperate, to what extent does the leader conduct the action?
- What if B starts to move? what should A do, follow B or abort?
- What if B is already attacking you? such that B is already facing you and you can't flank him, do you just run in circles?
- What if B is using the same AI and is trying to flank you? will there be a deadlock?
- Does A ever need to send interrupt back up the hierarchy, when it "notices" "special situation"?
- How does A tell his squadron leader whether he is succeeding or failing the flank tactics?
To simplify the effort, a squadron leader won't assign the team to "flank" an enemy unless the target is relatively slow and alone. The fighters executing the tactic will have to bear the assumptions made by the leader. You might run into situations, where your tactic has so many assumptions that it is seldom employed.
The tactics will probably be constructed from simplier commands: "concentrate fire on target B" or "select and attack based on priority P", "reteat when condition C is met." And these commands work ok in most situations, and can be implemented in nicely in hierarchy in group 1.
As long as you can perceive the situation well, your AI will be ok. Most work will probably have to be done on defining your custom "priorities" and "conditions" as you go up the hierarchy.
If you have the right priorities, the squadron might emerge to be flanking an enemy, while they are not explicitly commanded to to do so.
- People who likes current RTS but wants more strategy than clicking, they want to have better hierarchical commands to reduce the effort for controlling the army.
- People who look at the current RTS AI, saying, "omg the AI is so stupid, should have known better", and wants to implement more intellient (or "common sense") behaviors to the AI
- People who want to enjoy intense battle micromanaging units, and doesn't want to deal with base development while doing so. These people differ from those that play space shooting games because they also want to take the credit for winning the war, not just for winning a battle.
- People who wants to devise the ultimate AI, in which the player has next to zero influence (AI wars in RTS)
I think that the situation in group 1 is easiest to implement, and will give the most satisfaction compared to the effort. In group 1, the burden on AI is not too high, and the AI does not need to be very complicated.
As you go down the list, the difficult of implementing the AI increases rapidly. Basically, you start to run into perception and representation problems. Since your game is not like a chess game, you will have to devise a model of information gathering and reprsenting the information.
The "common sense" tactic commands (such as Unit A Flank Enemy B) might not be as easy as you might think, here is a list of considerations for this command:
- In terms of the perception of unit A, does A only see where B is? or does A also see the surroundings and B's allies?
- If A have access to the data about the surrounding, how does it evaluate it and decide where to get cover? Are you able to write the AI so that A can identify covers in most situations?
- If A can see B's allies, how should A decide from which side he should flank B?
- Does A need to know what his teammates are doing? Does their position affect his own positioning? To what extent do teammates communicate and cooperate, to what extent does the leader conduct the action?
- What if B starts to move? what should A do, follow B or abort?
- What if B is already attacking you? such that B is already facing you and you can't flank him, do you just run in circles?
- What if B is using the same AI and is trying to flank you? will there be a deadlock?
- Does A ever need to send interrupt back up the hierarchy, when it "notices" "special situation"?
- How does A tell his squadron leader whether he is succeeding or failing the flank tactics?
To simplify the effort, a squadron leader won't assign the team to "flank" an enemy unless the target is relatively slow and alone. The fighters executing the tactic will have to bear the assumptions made by the leader. You might run into situations, where your tactic has so many assumptions that it is seldom employed.
The tactics will probably be constructed from simplier commands: "concentrate fire on target B" or "select and attack based on priority P", "reteat when condition C is met." And these commands work ok in most situations, and can be implemented in nicely in hierarchy in group 1.
As long as you can perceive the situation well, your AI will be ok. Most work will probably have to be done on defining your custom "priorities" and "conditions" as you go up the hierarchy.
If you have the right priorities, the squadron might emerge to be flanking an enemy, while they are not explicitly commanded to to do so.
Best approach: Total Annihilation. No friggin' overcomplicated units. Just pure, sweet combat. Spell casting units, manually transforming units, units with more attribute bars than just health - these things have no place in a large scale RTS. Simple, unit-level control - no aggregates, no complicated per-unit AIs - you just give units pathing information and they shoot anything they see on the way. If you allow them to manoever or roam, they'll stray from the path to pursue targets. Simple, neat. Construction units are implemented with infinite-length queues, ditto buildings - construction units can assist other construction units and buildings. No limits on unit grouping.
I can handle a 500 unit army without too much hurting, and I can control each unit individually. TA is still the greatest RTS ever.
I can handle a 500 unit army without too much hurting, and I can control each unit individually. TA is still the greatest RTS ever.
-- Single player is masturbation.
June 29, 2004 02:41 AM
'Best' is relative - TA is the best RTS for you because you like large scale battles and dislike complex individual micromanagement.
Many people abhor TA because they find the units to be characterless, preferring games such as Warcraft where there are smaller battles, but each unit can function specially if you can handle the mirco.
The original idea of this thread was a game in which the AI does the job that the player doesn't want to, leaving them free to concentrate on the part which they like. Obviously this still has flaws, and is by no means an absolute 'best' solution - but it is worth considering nontheless.
--
QAtWork
Many people abhor TA because they find the units to be characterless, preferring games such as Warcraft where there are smaller battles, but each unit can function specially if you can handle the mirco.
The original idea of this thread was a game in which the AI does the job that the player doesn't want to, leaving them free to concentrate on the part which they like. Obviously this still has flaws, and is by no means an absolute 'best' solution - but it is worth considering nontheless.
--
QAtWork
Quote: Original post by QSense
but Warcraft also provides an AI which can control an entire team (cpu-players). Such an AI would be inappropriate to give to each player in the game – simply because it is very, very good. The small scale of Warcraft games means that the player is expected to control everything themselves – micro management of units being one of the more important skills required. If players could simply hand over control to the AI, they would gain the ridiculous advantage of being able to micromanage every individual unit simultaneously – which would force all players to do the same, meaning that no-one is actually playing!
It's a long time since I actually played WC3, but if I remember correctly, you can actually do just this. You can choose to have the computer play for you. That way you can micro-manage till your hearts content, and the computer will make sure the rest of your game isn't neglected.
Hi Estok,
You're right that the AI for the 'common sense' approach would not be easy.
The use of Influence Maps, Terrain cost analysis for cover and FSM would help cover most points. Remember that the AI Player would need processes to cover the same issues.
How would the AI player decide how to flank the human player?
Maybe 'Unit A flank Enemy B' is a bit too far. Obviously, waypoints won't help if Enemy B is moving but, maybe, moving enemies would be covered by a different process (i.e. ambush or intercept). Personally, I would be looking for a system which allowed me to control the tactics while still being an active part of any combat.
You're right that the AI for the 'common sense' approach would not be easy.
The use of Influence Maps, Terrain cost analysis for cover and FSM would help cover most points. Remember that the AI Player would need processes to cover the same issues.
How would the AI player decide how to flank the human player?
Maybe 'Unit A flank Enemy B' is a bit too far. Obviously, waypoints won't help if Enemy B is moving but, maybe, moving enemies would be covered by a different process (i.e. ambush or intercept). Personally, I would be looking for a system which allowed me to control the tactics while still being an active part of any combat.
I had a similar idea a while back , where instead of actually programming your AI, you simply trained it. You'd still be tactically in control, and free to do the fine tuning, but if the AI is drilled well enough, you could perform complex manouvers with a few keypresses.
( link to thread)
[Edited by - Sandman on June 29, 2004 6:03:47 AM]
( link to thread)
[Edited by - Sandman on June 29, 2004 6:03:47 AM]
Quote: Original post by SandmanSo I spend a week drilling my troops, marching themn around the parade ground and over an assault course before I can actually get to play a level? I don't know many cases where training is fun/entertaining so it seems a little out of place in anything but a hardcore military/war simulation.
I had a similar idea a while back , where instead of actually programming your AI, you simply trained it. You'd still be tactically in control, and free to do the fine tuning, but if the AI is drilled well enough, you could perform complex manouvers with a few keypresses.)
Or maybe you mean selecting from actions that they have previously trained in, that you group together. Press one button and they perform a set of actions. The RPG Sacred has a varient of that, where you press a button and a character casts spells then performs certain attacks (or just performs a chain of attacks).
Dan Marchant - Business Development Consultant
www.obscure.co.uk
www.obscure.co.uk
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement
Recommended Tutorials
Advertisement