Magic Combat and AI

There are things that devs and modders have tried to implement, but haven’t really come close to being successful at.  One of the most obvious and saddest examples is the AI versus player’s spell protections.  When the AI casts a spell like Spell Deflection, the player sees both the name of the spell as the enemy’s action, and can tell by the graphic overlay if the spell is still functioning in later rounds.  He also knows whether this spell is deflection, reflection, or absorption, and can act accordingly.  He can also easily keep up with how much of a beating the protection has taken, and can tailor his actions.

Sadly, the AI cannot come close to this level of knowledge.  BG only has two conditions to check for spell protections, HasBounceEffect and HasImmunityEffect.  The first returns true if the target has any reflection effects; this would be fine, except that this also includes spells that reflect physical projectiles like arrows.  The AI can’t tell the difference between the 6th level priest spell Physical Mirror and the 5th level mage spell Minor Spell Turning.

The second trigger, HasImmunityEffect, is even worse.  It returns true if the target is immune or protected, not from just spells, but from secondary applied effects like icon displays, visual effects, and display strings.  This means that HasImmEff will return true even if the player has only cast Remove Fear on himself, since part of that spell is protecting from the Fear visual effect, the string that says “Charname panicked”, and the Panicked icon.  The AI is unable to distinguish between Remove Fear, Minor Globe of Invulnerability, Spell Immunity, or Chaotic Commands.

In many effects exists a hardcoded setting of a variable, either as STATE or STATS (IDS files), that can be checked by a script to help with targeting.  For example, charm effects automatically set the STATE_CHARMED as true, so that when the charm is ended, whether by duration or dispelling, the STATE is also reset to zero.  Spells that apply an effect that does not have this hardcoded convenience can use the simple workaround of manually setting a STATS as a part of the spell.  There’s even enough room in the STATS and STATE IDS files to add new entries.  The venerable Detectable Spells mod, in use by many AI mods, does this with Spell Deflection for the various deflecting anti-magic spells.

The problem with this — and it’s a big one — is that it cannot account for the spell running out by decrementation (being used up by spells cast at it), and so only resets by either duration or dispelling. What you get is the ultimate in inefficiency:  You’ll see AI mages wasting a 6th level Pierce Magic spell to take a down a 3rd level Minor Spell Deflection that only has 1 spell level of protection left.  These are crippling mistakes that only the AI can make, not the player, and as such, are yet another opportunity for the player to inadvertently (or not) exploit the suboptimal AI.  Even the better AI mods are unable to overcome this deficiency.

Enchantment and weight

Given how much of AD&D was derived from Tolkien, I can understand why they would have magic armor reduced in weight. However, one of 2e’s numerous failings, that I will point out at every opportunity, was in not understanding why it happened in the first place. The entire idea was based on Bilbo’s mithril chain. The armor was light because of the material and construction, not because it was “magic”. Enchanting something doesn’t automatically alter any particular characteristic. If this weight reduction (and subsequent lessened Strength requirement) were valid, all magic items would be reduced in weight compared to their normal counterparts. This is clearly not the case. Tomes remain heavy and bulky, amulets bow to gravity and lie gently on the chest or neck, and potions retain their viscosity. Indeed, imagine the difficulties involved with enchanted arrows, whose efficacy depends on the physics of their flight remaining stable.

the summoning-oning-oning

I’ve been making up games and rules since I was a kid.  The thing I’ve always understood is that while you are free to make anything you want to be possible (This is magic”), you should still try to have internal consistency.  If your game is meant to be an alternative version of reality, like a medieval analog of our world except magic exists, then it should still conform to reality outside of the alternative aspects presented.  It’s fine to say “The king was assassinated by a spell,” but you better have some sort of logical reasoning behind how that spell works if you expect your players to be able to investigate the assassination.

Given the bugbear in the room regarding the concept of summoning spells, the best way to reconstruct them is to start with where we got the concept from in the first place:  consorting with demons.  Accepting and henceforth ignoring its religious origins, the early demon summoning spell itself was a drawn-out ritual, requiring obscure research and meticulous preparation.  The spell was intended to summon one specific creature, that would be trapped by the use of sigils and runes, and obligated to negotiate for its release by performing a service for the wizard.  There was an unstated understanding that, much like the power of words used in spells, words used as vows also had power, and that the Universe enforced or punished those involved.  Cf to 1e spells Suggestion, Geas, and Quest.  Note that the service might still not have been entirely paid for by releasing the demon.  Either way, the two big takeaways are that it was a tremendous effort, cost, and risk to the wizard, and that it was a unique event (although there might develop a “professional” relationship between the demon and wizard).

1e at least had it as a ritual spell with all the prep and risks.  2e pretty much avoided any talk of demons, having kowtowed to religious fundamentalists.  So too with demon summoning, removing (at least initially before its horde of DLC handbooks were published) the 7th rank spell Cacodemon.  Gate was already more of a generic “outer plane” summon spell, and so didn’t need further toning down. If someone can clue me in when TSR or WotC brought back demon summoning spells, I’d appreciate it.

Still, there at least was a bit of hope introduced in 2e, where in one of the MS descriptions was an indication that sometimes adventurers were whisked away, and not just monsters or evil humanoids.

does anyone understand summoning?

Think about what the 3rd rank spell Monster Summoning I, a staple of spellbooks since 1e, is capable of doing.

  • seeks out random creatures, usually of the types that would otherwise be enemies to the caster
  • teleports them to the caster’s location (no save)
  • enslaves them to the caster’s will (no save), including (and usually) fighting to the death

Break that down:  Depending on distance, the first one might be worth a 2nd rank spell.  The second is already a rank 6 spell, but has qualifiers, including a chance for destroying the caster.  That this version would be bringing multiple creatures from places unseen, this spell would be at least rank 7.  Finally, the last one is like Mass Charm, a rank 8 spell, but with no save, forcing it to 9.  Three spells of a combined rank value of 16, all in one 3rd rank spell!

The absurdity is obvious.

Schools: As they were, as they are, as they will be

I don’t automatically favor any edition of AD&D over any other.  Though, of course, I have my opinions, and one of the strongest is that 2nd edition utterly missed the mark regarding schools of magic and specialist wizards.  1st edition only had one “specialist”, the illusionist, who was as much a complete subclass to mage as ranger was to fighter, and druid was to cleric.  It had its own unique spells, and a spell rank (level) cap of 7.  Unfortunately, continuing that edition’s trend of taking optional rules of limited application and turning them into official rules, 2e decided all schools of magic were worthy of having mage kits devoted to them.  It’s rare that you get the kind of failure they achieved by combining a poorly thought out idea with abysmal implementation such as this.

There are certain schools that no mage in his right mind would deliberately cut himself off from (at least in BG), namely Abjuration, Divination, and Illusion.  Abjuration is a must because it contains virtually all of the spells that can keep a mage safe in combat;  and Divination is the only way to counter the school of Illusion’s numerous spells that also, more indirectly, protect a mage.  So right off the bat, we’ve got three of the eight schools in the Must-Have category, which effectively eliminates their Opposing schools as well from being viable specializations.  There are further reasons for doing so, as will be discernable from the changes I make, but this is already enough to justify the overhaul.  I’ll just put it out there that the idea and execution of opposition schools is one of the worst things ever introduced in a game franchise.

It’s more than just the nuts and bolts, though.  Whatever their other purposes, games are meant to be fun, and how much fun would it be to play an Abjurer in BG2?  Really?  In PnP a Diviner could be extremely powerful;  but in a computer game like BG, where classes play a neglible role outside of combat, it’d be deathly boring.  Kits of other classes follow the tried-and-true formula of granting bonuses to the parent class while removing some of its main abilities.  What do mage kits add?  Nothing beyond an extra spell slot.  What’s the cost?  An entire school of magic, arbitrarily determined and assigned.  The most ridiculous part is comparison between kits.  The differences between an Inquisitor and Cavalier are numerous, and make each distinct.  The difference between an Illusionist and a Conjurer?  Nothing except the particular school of magic each can’t cast.

The fundamental question has two parts:  can you make a mage kit unique without it being over- or underpowered?  And can you do so based on spell schools?  The first question has some points of subjectivity, but only four current schools have any shot at being useful as a kit: Alteration, Conjuration, Evocation, and Necromancy.  You could make a case for Abjuration as sort an anti-mage party buffer, but that’s shaky, and it’s the best candidate of the remaining four.  But of those four, only Enchantment doesn’t contain at least one critical spell no mage would do without, so while Abjuration, Divination, and Illusion are not good candidates for specialization, neither are they acceptable as opposition schools.

back to school(s)

My current idea for mage specialists is to make them more special, but I wonder if just abandoning the school specialization completely wouldn’t be better.  Schools as the basis is less meaningful than weapon specialization for fighters.  Most other kits are based on roles, rather than some arbitrary characteristic.  Sage/researcher, battle wizard, necromancer (classic), etc.

distinctiveness with a limited resource

In the overall picture, nearly every asset in BG2 is geared towards one thing:  combat.  As sad (and still rectifiable) as it is, there are scant few instances in dialogs or plots where a character’s attributes, skills, or even race or class, come into play.  This is certainly the case with magic.  This makes magic a necessarily truncated experience, as the things that can be altered and the ways those things can be altered are both limited:  thac0, damage, AC, saves, and various states like panic, hold, and charm.  All spells outside of the metamagic category are some combination of these effects as either boons to allies or banes to enemies.  Some effects like petrification have a minimum but also static level of effectiveness (one cannot be partially petrified).  Others like panic have a de facto maximum due to widespread immunities or easy to obtain counters.  Both types can be given power mobility by adjusting the saving throws of their effects, and limiting or expanding their range or area of effect.  Other effects, notably damage, are easily scalable and can be crafted to fit any situation.  In essence, there are only a handful of  spells, but by managing the likelihood and extent of these handful of effects, we can have seemingly disparate spells of differing ranks.  (I use the term “rank” instead of “level” when talking about spell levels… er, ranks.)

One way to go would be to simply enumerate all these spells at rank One and scale them thereafter with no need for Two through Nine other than as deliberately expanded options.  Take Charm.  At rank 1, for example, it affects one creature of a specific creature type (humanoid) for a short amount of time with a significant save bonus.  That same rank 1 spell could scale to gradually reduce the save bonus into a penalty, the duration could be lengthened, the target types affected could eventually become universal, and the number of targets increased.  That’s one scaled spell that is doing the job of multiple BG2 spells without any real loss of verisimilitude or variety.  BG2/AD&D just so happened to parse out these iterations in a more arbitrary fashion.  Many damage spells do this exact thing but it seems more natural when the scaled effect is ‘damage’ as opposed to a status effect.