Wednesday, January 13, 2010

Dragon Age: Thoughts on the Tactics System

Things were looking grim. My dwarven rogue was fighting for his life, my mages were out of mana, Alastair's warrior shield  was the only thing protecting the squishy casters hiding behind him but he was being hacked from all sides and would surely succumb in seconds. Finally overcoming his opponent my rogue turned  fully expecting to see Alastair dead and the mages being chopped to pieces but then an amazing thing happened. As Alastair was moments from death the witch Morrigan had scraped together enough mana to cast her one and only protective spell which put a force field around Alastair. His enraged opponents tried to cut through the field but their blows could no longer hurt him. Trapped within the force field Alastair could make no further contribution to the battle himself but while his opponents continued their futile attempts to hack through the barrier it was a simple matter for my stealthy rogue to sneak up behind each one in turn and finish them off with a knife in the back. 

What a clever witch Morrigan is to think of saving the day like that. Then again of course she is, she is doing exactly what I told her to do. There it is right in the list of her tactics commands: If "ally health <10%" then "cast Force Field".

The tactics system is a major innovation in Dragon Age allowing you to tailor your parties AI in quite a detailed fashion. I have grown to like it a lot and I get particular satisfaction when I see one of my party carry out my pre-programmed commands. The above scenario has actually happened by the way. More than once that single force field spell which seems out of place among Morrigan's array of offensive spells, has saved the day.

Unfortunately the system is far from perfect. Bioware admit as much when they note that at anything above easy difficulty level you will need to bypass the programmed behaviour and micro-manage your parties actions using the pause function.  In my experience autopilot using tactics works well for a warrior, an archer or a healing mage but doesn't really work for a melee rogue (because there is no way to tell the rogue to get behind an opponent for a backstab) or for an offensive mage (because there are too many spells and too many friendly fire effects to be considered). Nevertheless it is an interesting innovation that adds to game-play and gives some insight into the way developers have been programming AI for years.

I do hope this system gets take up by more games and hopefully expanded upon. I have some thoughts about extra features that would make the tactics more useful.:

1. I think it is unfortunate that Dragon Age puts an artificial low limit on the number of tactics slots available that can only be increased by spending skill points. A skill is a skill while a tactic is simply a programming tool - they shouldn't be confused.

2. The lack of commands relating to positioning is particularly frustrating. There is only one global move / stay command for all characters. Even something as simple as telling your archer to stay put on this piece of high ground while your melee charge into battle is hard to do. It should be possible to individually tell characters whether to to stay put or move.

3. Related to 2 - there needs to be some way to tell rogues in particular to try and attack enemies from the rear in order to avail of back stab opportunities.

4. The tactics system in Dragon Age is quite confusing in relation to targeting. Each tactic has one condition and one action that will be carried out if that condition is met. While you can often specify an explicit target for the condition you never get to specify an explicit target for the action. I think the target of the action is usually assumed to be the target of the condition but it is not always obvious. I think the system would me much more powerful if you could always explicitly state the target of both the condition and the action and this targeting should include general cases like "any member of my party" or "my current target". 

Examples from the current Dragon Age System:

a. If "I am being attacked in melee" then "cast freeze" - It isn't clear who you will freeze. I think it will be the melee attacker but it could also be your current target.

b. If  "Enemy has heavy Armour" then "Use ability Shatter Armour". Does this mean that you will break off your current fight to chase down a heavy armour wearer or does it mean that you will  use shatter armour in your current fight if your opponent has heavy armour?

Improved system with more explicit targeting:

a. If  target:"this character" condition: "is being attacked in melee" then action: "Cast Freeze" on target "cause of condition".

b. If target: "My current target" is condition: "wearing heavy armour" then action:"Shatter Armour" on target " my current target"

5. Dragon Age's tactics system is more complex than it first looks. It even has flow control with "goto" ability. The documentation does not explain it properly unfortunately. According to Dragon Age wiki users appear to have found out by trial and error that once a condition is met and a tactic executed the pointer is reset to the top of the list of tactics. That is a vital piece of information. It means that tactics that lie below commonly met conditions may never be evaluated. For example if (as I once did) you put all your buffs at the top of the list of tactics with condition "any" then the first buff will be executed repeatedly and no other tactic will ever be looked at. A programming system with this level of complexity needs proper documentation.


Tesh said...

Have you played FFXII? I'm wondering how the two compare. The ability to set up "action macros" is indeed a very useful philosophy... but the execution is easy to botch, especially if the player fails at logical thinking.

mbp said...

Hi Tesh. I have never played FFXII (nor any Final Fantasty title actually). I must check out those action macros to see if they were the inspiration for Dragon Age's tactics.

Jayedub said...

Wow, number 5 on your list is a huge help.

Lars said...

When I first started playing DA:O, I thought the tactics was very much like FFXII's gambit system. But in FFXII I recall there were more variations like 'Foe:nearest' 'Foe:flying' (target a flying foe), 'Foe:lowest HP' (I used this to get the whole group to target the weakest opponent, even if it wasn't my target), etc.