The Forums Are Now Closed!

The content will remain as a historical reference, thank you.

Fallen Enchantress: Tactical Battles - Part 1

AI Talk

By on October 3, 2011 1:45:16 PM from JoeUser Forums JoeUser Forums

image

As some of you know, I’ve never written tactical battle AI before.  Galactic Civilizations and Stardock’s other games didn’t have tactical battles. War of Magic had tactical battles but I wasn’t involved in that portion of the game.

This series of journals will take you through the journey of how to write AI for tactical battles.  In my experience, games have tended to have pretty crummy AI when it comes to tactical battles (War of Magic no exception).

 

Preliminaries

So for starters, I’ve got help.  Seasoned developer Charles Lentz, who has been at Stardock for some years now, is assisting me on this project.  The first thing I asked him to do is make it easy for me to do mock battles.  When I was working on War of Magic v1.4, which was the first build I even got to look at how tactical battles were done, I noticed that there was no way for me to conduct mock battles.  I’d have to “get lucky” and find an AI player who could cast spells to see if it even worked which was time consuming.

So for Fallen Enchantress, I asked Charles to set up a cheat key that would create opposing armies and that it would read from an XML file that I could mod to decide what powers those units would have.  That way, I could test out all kinds of combinations.

Counter-Spells

Since I come from the modding world, I prefer to have my games let me, the player, mod as much as possible.  My AIs have not been very moddable in the past because, frankly, the coding necessary was far outside my area of expertise (i.e. making it read variables and data from external XML files rather than just hard coding it in C++).  But with Fallen Enchantress, Charles is going to take care of that for me.

So one of the things I intend to do is stuff as much data as I can in XML files.  I want to be able to have the AI gather as much data as it can about who it opposes and then look at the XML data to help it decide what to do.

That means I want to make it so that every spell, ability, weapon, etc. in the game has in its XML AI data that I (or others) can mod with good things to go against it.

Does the enemy side have a spell that rains down a fire storm on me? Then I want that spell to include in its XML what spells are good counters to it. Then,  the player comes in with his fire mage and the enemy casts a frost shield on her first turn. 

Moreover, this gives me the excuse to request the UI team to let both sides see what spells/abilities each other have easily because a good tactical battle, in my opinion, should be a real battle of wits making use of terrain, spells, counter-spells, and maneuver. And the more data the player gets to see, the more data I can let the AI see without “cheating”.

+912 Karma | 119 Replies
October 4, 2011 12:33:27 PM from Elemental Forums Elemental Forums

I tried to analyze other tactical battles that I remember having fun playing to see what was interesting in these systems. One thing for sure, the MOM tactical system is pretty boring and replicating this system will not make it better. I tried to select games that was close to a fantasy medieval setting. So I excluded games like master of orion and PTO.

 

Gemfire

Gemfire Tactical Battle

A simple square map move and attack tactical battle system. Both side had exactly the same unit, except for the 5th one, but in different numerical value. The AI was pretty dumb and the only good strategic element in this game is that you try to flank your enemy because the side from which you attack from will influence the amount of damage you make. So attacking from the rear or the sides will make more damage than the front.

Romance of the 3 kingdoms

R3K 2 Tactical battles

The screen shots above are for r3K 2. What was interesting in this system is the various strategies you could use. You could switch enemy units, setup fires,  charge through enemy units, surround and make simultaneous attack. Move ennemy units into fire (that was fun), etc. Surprisingly, they seem to have made some sort of Iphone version of R3K2.

 

R3K 3 Tactical Battles

 

In R3K 3 they setup the battles closer around the city. In the screen shot above, we do not see much the city, but you had to attack gates to open them. Or taunt the ennemy to open it for you. You could also setup pits which was pretty fun to see enemy fall into them. R3K 3 also had horses and cross bow equipment that you can see in the screen shots above. It added more strategies because now units were no all the same.

In R3K 11, they powered up even more the idea of tactical manuvers to add more strategies to their tactical battles. Here is an extract of the rule book I posted some times ago.

R3K 11 Tactics List

 

So all the systems above had actually good reasons to manage tactical battles. There was something interesting to manage. In MOM, the only thing worth managing is for abusing the game. LIke regenerating werewolf that you move around the map. For life stealing creatures that you want to attack with multiple units at the same time, else they are all going to die, etc. Else, there is not really any interest to manuver your units on the battle ground since there is no flanking, simultaneous attacks, traps, tricks (ex: fire) and maneuvers.

So unless you want to implement some of the feature above, you might want to have a simplified the combat system to remove the burden of moving each unit individually for no good reason.

 

 

October 4, 2011 1:36:28 PM from Elemental Forums Elemental Forums

I think i have posted before about making AI for JollyGrim, which is a grid-based strategy game.

My approach was to write an AI that was very generalizable, considering that we plan to add new mechanics to the game regularly and we don't want to update the AI all the time.

It will be interesting to compare to your approach, which seems very different.

Are you also going to put in "synergy" information as well as counter information?

For example, cast -50% enemy fire resistance before doing a spell that does fire damage, but only if the combat is going to last long enough to do lots of fire damage (because these spells usually take multiple spells to pay off in damage over time).

Also check if the enemy doesn't have a strong ranged/caster army, because in that case you want to kill them as fast as possible, you don't have time to set up combos, unless mana conservation is a serious issue.

I am interested to see how you handle the more complex interactions like what I just brought up. 

October 4, 2011 1:50:31 PM from Elemental Forums Elemental Forums

A tagging system doesn't work well with this kind of spell system unless you get so specific that it's just confusing. The difficulty is that as soon as you have more then one counter... what are you countering? Does it counter the damage? Leaves the damage but counters a debuff part of the spell? Counters as in negates the spell before its cast? Once the spells get complicated it's hard to do right. The upside is that you can add new spells and they'll more or less just work.

That said, the problems with an XML list are obvious: if you add a new defensive spell the AI will have no idea whatsoever of how to use it. You'll have to go through all the other spells figuring out where to list it as a potential counter. There's no discovery going on by the AI.

 

I've always preferred another style of caster combat. I see an army being lead by a guy with level 4 fire magic (or whatever)? Probably want to cast ice shield immediately. He starts casting ignite? I start casting extinguish flames. His spell still goes off, but when my spell finishes I simply put the ignited units out.

He starts casting Hellfire? If I'm a strong enough caster, I start casting Counterspell to negate it entirely. If not, I start casting an AoE heal to bring anything that survives back up health wise.

He casts Flaming Weapons? Disjunction.

Summon Phoenix? Banish. (Or maybe Summon Kraken, and we'll just let them go at it!)

 

The difference there is that aside from a true Counterspell (which would have to be expensive due to its control power) I can't actually see what he's casting and negate it before he finishes by starting another spell after he does. I can react to it, but his spells still get to land. If I want defenses up before he blasts me, I need to be the one taking the casting initiative.

October 4, 2011 2:25:14 PM from Elemental Forums Elemental Forums

In D&D I you have the option to attempt an interruption of a spell caster's concentration by attacking him before he could cast the spell. If he was hit he could cast the spell with a successful concentration check. If he failed the check the spell was not cast or mis-fired.

October 4, 2011 3:05:53 PM from Elemental Forums Elemental Forums

Quoting Frogboy,

But it didn't really surprise me either given that there was no quick and dirty way to set up battles. I'm a man of iteration. I expect to have thousands of tactical battle fails before I get it right.  And if I had to "play the game" to get to a natural tactical battle, there'd be no way to do that.


Reminds me of when I had to kill Janusk 10^78 times to test new spell fx... But back on topic:


Quoting Frogboy,


And a lot of the goodness of the AI comes down to the architecture.  For instance, in WOM, the units were pre-defined at the start of the battle, would set a target and continue their strategy until they accomplished their goal.

By contrast, this AI looks at what a given unit should be doing every initiative activation (i.e. every time it gets a chance).

So a sovereign might start out the battle as an TACTICAL_SUPPORT unit where it casts some buffs on its army or on a particular unit.  Then later it might become a TACTICAL_MELEE unit, whacking away at units with its sword or with a short-range magical spell and then it might turn around and cast a heal spell.  

The point being is that you can't set a role for a unit at the start of the battle, it needs to be able to make a change whenever possible. Who it attacks, who is helps, who is runs from, etc. should be done during each initiative and making that "fast" includes being able to call from XML what the appropriate counter-move is.

Is there a higher strategy level as well? I mean like... how does the AI decide when to turn from TACTICAL_SUPPORT to TACTICAL_MELEE? Does each sov have its own combat style, like defense, ranged magic, full attack etc?

October 4, 2011 3:29:18 PM from Elemental Forums Elemental Forums

I have said it before, and I will say it again. Why not copy from the best: 

 

KINGS BOUNTY has the best tactical battles there is. If it would be anywhere near that level we would be ecstatic  

October 4, 2011 3:30:47 PM from Elemental Forums Elemental Forums

Wait wait wait. Brad. Seriously? You don't know how to implement an XML parser in C++? What?!

You be trollin bro. Either that, or there's some kind of thread safety issue you don't want to deal with. Speaking of which, is FE even multithreaded?Anyway, I simply refuse to believe that a veteran programmer can't figure out how to implement and use XML parsing over a weekend. Even stoned out of your mind, it's not a particularly complex task*; I find it harder to operate the damn microwave myself. Especially when there are literally dozens of libraries that will (mostly) do it for you. 

There's just no way it's too complicated for you. The way I see it, you have decided to :effort this off to a minion, you are trolling, or you have "selective amnesia" about XML because you find it boring. Which I understand completely! 

*don't recommend it, because you end up with variables that have truly absurd names. Such as hahahahFingers or momomomoeu. 

October 4, 2011 3:42:50 PM from Elemental Forums Elemental Forums

WOM was multithreaded, so FE should be also.

 

 

October 4, 2011 4:06:18 PM from Stardock Forums Stardock Forums

Quoting Lord Xia,
You know, we don't need Deep Blue level of AI skill in Tech battles, would just be fun if the AI used it's abilities and they did something other then pick one guy and chase the hell out of him.  I think some basic tactical battle concepts would have helped WoM, like true ZoC meaning it's difficult to run around units, limited range on spells and bows, flanking, and meaningful terrain.  It has to be hard to really write good AI without those basics in place, I would think.

 

I vote for Deep Blue level of AI skill in Tech battles

October 4, 2011 4:07:12 PM from Elemental Forums Elemental Forums

Quoting Edwin99,
In D&D I you have the option to attempt an interruption of a spell caster's concentration by attacking him before he could cast the spell. If he was hit he could cast the spell with a successful concentration check. If he failed the check the spell was not cast or mis-fired.

D&D also let you make a spellcraft check to figure out what spell they were casting and then if you had an approporiate spell, counterspell it (or attempt to use Dispel Magic as a general counterspell).

It was a good system for this stuff.

October 4, 2011 4:28:55 PM from Elemental Forums Elemental Forums

Wait wait wait. Brad. Seriously? You don't know how to implement an XML parser in C++? What?!

Obviously Elemental is filled with XML parsing already.

But it makes as much sense for me to set up new parsing abilities as it does for me to code new file handling code. Do you want me writing AI code or writing file reading code?

October 4, 2011 4:48:48 PM from Elemental Forums Elemental Forums

Quoting Frogboy,

Wait wait wait. Brad. Seriously? You don't know how to implement an XML parser in C++? What?!

Obviously Elemental is filled with XML parsing already.

But it makes as much sense for me to set up new parsing abilities as it does for me to code new file handling code. Do you want me writing AI code or writing file reading code?

 

I want you to write me a love poem...

October 4, 2011 4:57:12 PM from Elemental Forums Elemental Forums

Flanking, LOS, terrain, etc, are all interesting concepts.

But there's also some meat and potatoes here that are easy to overlook because we take them for granted.

How about the AI just freaking healing a hurt unit? Or slowing down a charging unit? 

If you want to talk about the design of tactical battles, that's Derek's thing.  I can say, IMO, that I am not keen on tactical battles being the deciding factor in whether someone wins or loses a given game.  If a tactical battle with say 8 units takes more than 5 minutes then that's very very bad.  

October 4, 2011 5:03:23 PM from Elemental Forums Elemental Forums

I understand that, this is mostly a STRATEGY game, and not a TACTICS game.  But yea, I guess I did take those ideas for granted.  I would guess that a "Healing spell" is in fact a counter to my "Mace to your Face" spell.  

October 4, 2011 5:33:59 PM from Elemental Forums Elemental Forums

Quoting Frogboy,
But there's also some meat and potatoes here that are easy to overlook because we take them for granted.

How about the AI just freaking healing a hurt unit? Or slowing down a charging unit? 

  • Or how about AI units targeting the powerful spell casting sovereign, while ignoring the wimpy spearmen that accompany him.
  • Or if the AI has ranged attacks and the enemy does not then holding position and letting the ranged attacks slay the enemy forces, instead of charging into battle
  • Or casting wind shield to protect your units against ranged missle (arrows) attacks if the enemy has powerful archer units
  • Or having the AI freeze in place the most powerful enemy unit while attacking and slaying weaker enemy units.

It will be interesting to see what XML guidelines the AI uses to have the sovereign act as a magic caster or a melee unit.

October 4, 2011 7:11:22 PM from Elemental Forums Elemental Forums

Quoting Frogboy,
Flanking, LOS, terrain, etc, are all interesting concepts.

But there's also some meat and potatoes here that are easy to overlook because we take them for granted.

How about the AI just freaking healing a hurt unit? Or slowing down a charging unit? 

If you want to talk about the design of tactical battles, that's Derek's thing.  I can say, IMO, that I am not keen on tactical battles being the deciding factor in whether someone wins or loses a given game.  If a tactical battle with say 8 units takes more than 5 minutes then that's very very bad.  

Well, everyone has their own tastes I guess. Weighing all the options in a tactical situation and coming out on top is a very engaging experience for me. I'd love a complex, fully featured tactical battle system like the one in 4e DnD (for example). Hopefully, we'll see someone create something similar in a 4X game some day. Ultimately, I want the best of both worlds (strategic and tactical).

Heroes could have several specific roles. For example, in 4e, there are defenders (sticky tank guys), controllers (lock down guys), strikers (damage guys) and leaders (buffers/enablers/healer guys). Various classes would offer a slightly different flavor and unique way of fulfilling their role. Normal units would be tuned down heroes with a limited number of abilities (1-4). There is line of sight, opportunity attacks, flanking, terrain, full and partial cover, various movement types, etc.

Probably a nightmare in terms of sheer amount of content, balancing and AI coding. Hopefully, some one will be crazy enough to do it one day.

DISCLAIMER: I realize this post is in no way realistic.

October 4, 2011 9:14:30 PM from Elemental Forums Elemental Forums

arguing to make visible what an enemy can do:

I'd like to see two things with this.

 

1st: I'd like to see the abilities my enemies most frequently use. 

 

This is a GREAT place to make espionage viable in a real way that only espionage could be. 

 

NO intel would only let you see how frequently the enemy uses the abilities he uses against you.

Low levels of intel could allow you to see what an opponent tends to use overall vs other opponents.

Moderate Intel could allow you to see more rare abillities that your opponents use.

High intel could let you know every trick your opponent has available to him.   And warn you of the potentially dangerous ones he could currently bring to bear against you.

October 4, 2011 10:37:45 PM from Elemental Forums Elemental Forums

If you searched back through the forums you would laugh as hard as I do when I see someone mention espionage. 

October 4, 2011 11:22:43 PM from Elemental Forums Elemental Forums

Quoting Frogboy,
Flanking, LOS, terrain, etc, are all interesting concepts.

But there's also some meat and potatoes here that are easy to overlook because we take them for granted.

How about the AI just freaking healing a hurt unit? Or slowing down a charging unit? 

If you want to talk about the design of tactical battles, that's Derek's thing.  I can say, IMO, that I am not keen on tactical battles being the deciding factor in whether someone wins or loses a given game.  If a tactical battle with say 8 units takes more than 5 minutes then that's very very bad.  

too true.. I remember playing MoM and thinking tactical battles were very cool to start with.. until i just wanted to skip them in the late game because of the repetitive nature of the battles and how long they would possibly take.. this is the same for other games like Total War etc..

I'm a strategist mainly and tactical battles interest me little unless they are warhammer style, but that is a game unto itself.. ingame tactical battles should be quick and fun as not to detract from the main game..

October 5, 2011 12:49:39 AM from Elemental Forums Elemental Forums

Quoting Vaul_Darkhour,


I remember playing MoM and thinking tactical battles were very cool to start with.. until i just wanted to skip them in the late game because of the repetitive nature of the battles and how long they would possibly take..

From my perspective, the key is to make tactical battles less repetitive - to have your opponent continually surprise you - that's not easy to do if all the opponent's have access to the same AI routine and are alike.

I read in other posts that more attention was being paid to making each fraction unique. If so, then the tactical battles could have a chance to play out differently based on which fraction you are facing.

If the Wraith fraction focused on Death Magic while the Trogs are focused on Melee Combat each of these fractions would present a dramatically different combat experience to the player.

October 5, 2011 2:24:55 AM from Elemental Forums Elemental Forums

I've never actually programmed A.I. of any real calibre, however to me the best way would be a combination of [tag] controls and data-driven A.I.  Again, I've never programmed anything resembling a complicated A.I., so this is merely where my limited programming knowledge takes me.
So, for example, the A.I.s army composition would generate some basic attribute numbers for it to use in response calculations - so it can say to itself 'I have a [small number] of [high HP] units with [good] [spell defense]'.
If I begin casting a spell - lets say a [Damage][AOE] - which, by the principles of balanced game design, would deal a smaller amount of damage to a larger area of units - the A.I. could look at what I was casting and say 'The [Damage][AOE][Spell] is [bad] against my [small number] of [high HP] units with [good] [spell defense]'.  From there, it would use its allocated thread and do what good chess A.I. does; perform a series of background calculations on possible retaliation moves and plan as many steps as possible ahead from there, building a logic based plan.  It could arrive at the conclusvie that, in order to do the most amount of damage, it needs to slow my troops down.
It's still exploitable, however its [Tag] and [attribute] information works more organically, and so the A.I.'s decisions shouldn't be as predictable, while still retaining a decent level of intelligence.  This way, its not casting [Spell B] whenever I cast [Spell A], and it's not casting [AOE][Heal] when I cast [AOE][Damage]; its saying "His [Spell] is [good] against my [Army]; I need to cast [Spell] to minimise its impact" due to the outcome of its simulated turns.
Ignore me if this is illogical to any experienced programmer; I'm a n00b, just sharing my n00b thoughts.

Anyway, I don't mind if the tactical battle's mechanics are repetitive; as far as I'm concerned, not every battle should be a tactical one.
For me, the tactical battles are when I'm saying "Ok, this battle needs my human element" and step in in place of the Auto-resolve.
In WoM, this basically meant that I was exploiting the fairly weak A.I., and because it was so consistantly exploitable I was kind of forced to play the tactical battles more often than I'd have liked to ensure that I had as many victories as possible.
If the A.I./Auto-resolve was better, you'd need to play less tactical battles as the component A.I. would misimise the effect of the "human element"; going tactical would have less of an impact, and so less incentive to play it as often.  5 minute tactical battles aren't bad if you're playing them every half hour.  If I'm doing them every 5 minutes, however, it becomes bad.  Hell, 15 minute tactical battles aren't bad if the space of time between them is large enough.

My 2 cents.

P.S) We should have a '2 Cent piece' emoticon.

October 5, 2011 4:21:09 AM from Elemental Forums Elemental Forums

Quoting Frogboy,
Flanking, LOS, terrain, etc, are all interesting concepts.

But there's also some meat and potatoes here that are easy to overlook because we take them for granted.

How about the AI just freaking healing a hurt unit? Or slowing down a charging unit? 

If you want to talk about the design of tactical battles, that's Derek's thing.  I can say, IMO, that I am not keen on tactical battles being the deciding factor in whether someone wins or loses a given game.  If a tactical battle with say 8 units takes more than 5 minutes then that's very very bad.  

 

Exactly what I was getting at before. The WoM system is not bad, it is just bad because the AI can't play it and there wasn't much depth. I would PREFER a system with flanking, LOS, etc. Failing that, I PREFER the WoM system with a competent AI. If you can successfully fix the AI while Derek adds in depth with abilities, more balanced equipment, etc, I will be very happy. Assuming that the strategic AI works too! Bottom line, better to have a moderately complex system that the AI can play, and is fun, than a complex system that the AI can't play.

 

As the series develops, these things can always be explored in later games.

 

As for the importance of tactical battles, it shouldn't be THE deciding factor, but it should be A deciding factor. So if two empires have developed fairly evenly, victory in battle could and should be one way for one to gain the upper hand. If the results of tactical combat can't be decisive, there is no point in having it. It just should be one of many viable paths, and that seems to be what you guys are doing.

October 5, 2011 4:31:15 AM from Elemental Forums Elemental Forums

Quoting Sir_Linque,
HenriHaki, so you want to have spell tags AND unique spell counter information in the XML, in order to simplify it from having only unique spell counter information?

I'm with Heavenfall on this. Doing it by tags makes it a lot harder to make AI do the right choices. You need to balance the tags perfectly for it to know which spell is the best counter. There's also a big risk that the AI would cast a spell that is in fact not a proper counter at all. Simple example: Spell "poison immunity" has tags [immunity] and [poison]. You cast a spell "spread disease" which says that spells that have tags [immunity], [resistance] and [disease] are a valid counter. Now, in order to not make the AI use poison immunity which wouldn't work, you would have to have the XML say that the counter MUST have the tag [disease] in it. So you need to have logic operations in the XML now, instead of just listing the counterspells directly. With a little bit of imagination, it's not hard to vision examples that make the tag system even more complicated.

Direct counter information is a better system.

Using a tag system makes things 95% less troublesome for modders - thereby simpler. Though I guess it is true that the modders will have to wrap their minds around the notion that they can work with tags AND names.

I think you've not read all my posts on the tag system. Regarding your "Spread Disease", it specifies [disease], [resistance] and [immunity]. As I explained before, these are categorized, so [disease] is part of the "damage"-category, and [resistance], [immunity] are both part of the "protection"-category. A valid counter spell must match at least one tag from every specified category. So a spell like "Poison Immunity" [poison], [immunity] would qualify, but "Mass Fire Shield" [fire], [resistance], [aoe] does not.

Note also that tags have parent-child relations; for example [disease] is a child of [all-damage]. Parent tags qualify; so a spell like "Immortal" [all-damage], [immunity] is a valid counter spell for "Spread Disease" even though "Immortal" does not specify [disease].

Refer to this post.

 

October 5, 2011 5:44:52 AM from Elemental Forums Elemental Forums

Gotcha. Okay, that is a much improved version. However it needs to be VERY well thought out to support more complex spells and to wield the right results. As you said, you probably need unique spell counter descriptions in that case.

It is however more difficult to keep track of what is considered a good spell and what isn't. For example the AI might never use spell X to counter spell Y and you might never know the reason why. Even if you do, it might be impossible to make the AI use that specific counter no matter how hard you try, unless you nerf the other counters by hand. Of course, you could overrule the tags to get the desired behavior (which I would assume most modders would to in order to cut corners), and that would result in a VERY disorganized database.

The point I'm trying to make with all this rambling is that while I now agree that the tag system is more powerful, it is also much harder to understand, to analyze and to adjust to give out the desired output. In this sense, I think it would be a disadvantageous to modders. Also, the learning curve for it would be much higher so modders with little programming background might have some trouble using it properly.

There are pros and cons to both sides, I admit. I just think the more rigid and simpler system is better.

October 5, 2011 6:06:04 AM from Elemental Forums Elemental Forums

Quoting Frogboy,
Flanking, LOS, terrain, etc, are all interesting concepts.

But there's also some meat and potatoes here that are easy to overlook because we take them for granted.

How about the AI just freaking healing a hurt unit? Or slowing down a charging unit? 

If you want to talk about the design of tactical battles, that's Derek's thing.  I can say, IMO, that I am not keen on tactical battles being the deciding factor in whether someone wins or loses a given game.  If a tactical battle with say 8 units takes more than 5 minutes then that's very very bad.  

 

8x8 battles already take more than 5mins, but for other reasons (slow animations). But yes I agree it should be fast like MOM.

Also the tag system is cool but not a holy grail solution:

eg: slowing an opponent's unit tagged as a charger is a poor choice if there are other units that are much closer to my vulnerable units. What the AI needs to do is asess the situation each turn (after all there are only 16 or 20) units and assign multiple values like (melee threat, ranged threat, weakness, strategic importance (killing a spouse, or a hero that gives a specific bonus), and so on. Thease weight should be computed by taking distance, HP/HP left, armor, damage type, spellcasting abilities, and terrain into consideration.

Stardock Forums v1.0.0.0    #108435  walnut2   Server Load Time: 00:00:00.0001016   Page Render Time:

Stardock Magazine | Register | Online Privacy Policy | Terms of Use

Copyright ?? 2012 Stardock Entertainment and Gas Powered Games. Demigod is a trademark of Gas Powered Games. All rights reserved. All other trademarks and copyrights are the properties of their respective owners. Windows, the Windows Vista Start button and Xbox 360 are trademarks of the Microsoft group of companies, and 'Games for Windows' and the Windows Vista Start button logo are used under license from Microsoft. ?? 2012 Advanced Micro Devices, Inc. All rights reserved. AMD, the AMD Arrow logo and combinations thereof are trademarks of Advanced Micro Devices, Inc.