Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

New Premium Module: Tyrants of the Moonsea! Read More
Attention, new and old users! Please read the new rules of conduct for the forums, and we hope you enjoy your stay!

"Linear warriors, quadratic mages?"

subtledoctorsubtledoctor Member Posts: 11,468
Let's fix that. :naughty:

I'm bored, so let's try to stir up some brainstorming. Let's say some people might be working on a mod that is geared toward transforming the game into a low magic world. Or, well, that's pretty much impossible. But maybe a medium-magic world. A world with lots of magic, but where magic is not quite as powerful as it was. Something like that.

The mod is about half done, but I don't want to talk about what we've done or are planning. I want to hear from people around here, what you would do to limit the power of magic. In all likelihood you all will have some ideas that never occurred to me. So have at it!

(Note, I will tell you right off the bat, this will largely take the form of a tweak mod. I'm not going to rewrite the Cowled Wizards as the Hooded Scientists or something like that.)

typo_tillyStummvonBordwehrAquadrizztGrammarsalad

Comments

  • KamigoroshiKamigoroshi Member Posts: 5,326
    Why only nerfing arcane magic? I'd say spell failure due to wearing armor/shields should also be extending towards the divine spellcasters. Armor made Clerics more powerful than Mages either way.

    But back to the topic at hand. Easiest way for nerfing the spell schools would simply to reduce all damage output and durations by ~50%. Which means editing every single arcane spell. This alone would modify Baldur's Gate enough to call it a game of the Sword & Suckery subgenre. :p

  • Grond0Grond0 Member Posts: 5,737
    Here's a few quick thoughts to throw into the mix.
    - change saving throws for individual spells or just give enemies something like the LoB bonus to them.
    - reduce the number of spells you can cast per day.
    - definitely reduce the number of wands/charges/damage to make them rare and special.
    - restrict the amount of resting possible (potentially linked to real time), to give more of an incentive to save spells for when they're really needed.
    - reduce the strength of summons (say to 60% to fit in with the treatment of simulacra).
    - not allow sequencers (or at least make them more difficult to use, e.g. by requiring them to take a round to cast and allowing the cast to be interrupted).

    tbone1StummvonBordwehrsemiticgod
  • PaulaMigratePaulaMigrate Member Posts: 1,201
    edited June 2017
    Brainstorming I
    During the Time of Trouble and the Spellplague the use of magic had some limits. The spellcaster had to be within some distance of some source for his magic (could be a person, object, artifact or whatever.) Let's say the protagonist has some crystal or lens that is required to bundle the energy of the Weave to cast a spell. Only a spellcaster in some distance to the PC can cast spells and only if the PC has the item and is !StateCheck(Player1,CD_STATE_NOTVALID) and the (optional) daily loads of the item are not used yet.

    Brainstorming II
    Harry Potter, spellcasters need a magic wand to cast. Only if the item is equipped in the weapon slot they can cast. The item only has basic quarterstaff combat abilities. Or they need to wear Elminster-like hats that reduce their movement rate while worn.

    Brainstorming III
    Again Spellplague - reduced resources.
    Each spell has a higher failure possibility. The probability to miscast and waste spells increases with the level of the spell. Spell scrolls cannot be bought anymore, you can only find them on defeated enemies. Enemies have only scrolls up to the level they use against you, i.e. you need to defeat a guy casting level 5 spells at you in the hope to find a level 1-5 scroll on him that you can learn.

    A combination of the above:
    Option I applies to clerics - the item required is some symbol of their deity
    Option III applies to mages

  • subtledoctorsubtledoctor Member Posts: 11,468

    Why only nerfing arcane magic?

    Not only nerfing arcane magic. The "quadratic mages" thing is just a quote from some forumite or other. So far we are looking at changes that affect all magic. Of course, mages being the ones who lean most heavily on magic, they will be most affected. Warriors will become far more powerful by comparison... for which reason we're considering slowing down XP advancement for fighters.

    Easiest way for nerfing the spell schools would simply to reduce all damage output and durations by ~50%. Which means editing every single arcane spell. This alone would modify Baldur's Gate enough to call it a game of the Sword & Suckery subgenre. :p

    Funny thing: this kind of already happened when nobody was looking. Most people these days, aided by Beamdog's prominent gameplay option, only play with max hit points. Which is very much NOT supposed to be how the rules work. An average 10th-level thief should have about 35 hit points, and an average 10th-level Fireball should do about 35 hp of damage. Meaning that the Fireball is supposed to be capable of killing the thief. But most BG players have 80 hp thieves at 10th levels (full 6 per level plus max CON of course), so the Fireball amounts to a minor flesh wound. If anything, for proper gameplay, magic damage should be increased, not decreased...

    Ahem. But, that is not the point of this mod. We aren't going to outright reduce damage, but one of the effects of the mod is that most such spells will not end up doing as much damage as you are used to... more on the technical details later. I want to hear more ideas before I poison the conversation with my own. :wink:
    Grond0 said:

    - reduce the number of spells you can cast per day.
    - definitely reduce the number of wands/charges/damage to make them rare and special.

    I'm with you :wink:
    Grond0 said:


    - restrict the amount of resting possible (potentially linked to real time), to give more of an incentive to save spells for when they're really needed.

    This is a good idea, one which I had not considered. I'm not sure how easy or hard it is to implement... rather than reinventing the wheel, we could maybe just point players to the Tweaks Anthology component that increases rest spawns in dungeons. But I'll look into it.
    Grond0 said:


    - reduce the strength of summons (say to 60% to fit in with the treatment of simulacra).

    Hmm. I kind of think the opposite... magic will be weaker, but for that very reason, mages might have to rely more on the physical strength of summons rather than on their spells. Anyway I've already nerfed summons, but in a different way than this...
    Grond0 said:


    - not allow sequencers (or at least make them more difficult to use, e.g. by requiring them to take a round to cast and allowing the cast to be interrupted).

    Again, I sort of go the other way: as spell slots will become scarcer, I think sequencers actually become more important, and more special, by comparison. These will be more of a crutch for mages. Also note that you can only load sequencers with spells you have memorized, so reducing spell slots does (sort of, a tiny bit) reduce the capabilities of sequencers.

    If we were really evil we might make sequencers disappear out of your spellbook after you cast them, so you can only use as many sequencers as there are scrolls in the game. (This would be especially hard on sorcerers!)

    Grond0StummvonBordwehr
  • kjeronkjeron Member Posts: 2,137
    I run something similar in effect by utilizing a stamina-based system.
    Every spell and ability can be used at-will, but fails if the user is fatigued, while fatigue is recovered at a rate of 1 per round.
    Every spell(or similar innate) increases fatigue by (Level + 1). Innates without an equivalent spells are based on their effect and rate of acquisition.
    Any innate that can be is converted into a modal ability which either stops or reverses fatigue recovery while active depending on how strong it is: Poison Weapon, Frozen Fists, Flaming Fists, Offensive/Defensive Spin, Defensive Stance, Shapeshifts, along with several 3E inspired modal abilities.
    Spell slots are shared among all spell levels but heavily reduced in number (done through the UI, max of 12 slots for full casters). Resting still required to change spells.
    Luck penalties for Fatigue are left in place.
    Miscellaneous balance changes here and there.

    A spell-caster can maintain casting an average of 10 spell-levels worth of spells per turn(10 rounds) at level 1 and level 50.

    Enemy AI simply cannot function with at-will spellcasting and/or functions better without it, so these changes are entirely party-only.

    Kamigoroshi
  • subtledoctorsubtledoctor Member Posts: 11,468
    That is... some heavy changes. I thought fatigue cannot be decremented? Can it be applied with temporary timing?
    kjeron said:

    Enemy AI simply cannot function with at-will spellcasting and/or functions better without it, so these changes are entirely party-only.

    In limited doses it's okay. I've been finding that the AI can handle our "level 1 cantrips" mod, which makes 1st-level spells (and only 1st-level spells) castable at will.

  • bob_vengbob_veng Member Posts: 2,295
    what about material components?

    Kamigoroshi
  • Contemplative_HamsterContemplative_Hamster Member Posts: 844
    edited June 2017
    @bob_veng Hehe, like a Lynx Eye gem for every Fireball, and so on? There'll be a run on the stores.

    "If you care to step this way, goodsir, I can show you our range of gem bags."
    "How many 'ave ya got?"
    "Ooh we stock more than twenty in assorted colours and fabrics. Here, notice the fine stitching on thi-"
    (Through gritted teeth) "I'll take every. Single. One. Oh, and a tower shield to hide behind while my friends take out some xvart villages and plunder their belongings. Can't do much until I find me some Lynx Eyes."

    Grond0
  • PokotaPokota Member Posts: 594
    I have long wondered why Divine Foci aren't required implements for divine magic in the infinity engine but are in older engines...

    One thing I would love to see implemented is Universal Surging. Per the FR Wiki,
    Cosmic disasters like the Time of Troubles caused the emergence of severe wild magic zones after the Weave was heavily damaged. After the Time of Troubles, most wild magic zone disappeared but some remained.
    Since the BG games happen before the assassination of Mystra (and the subsequent Spellplague/Rebuilding of the Weave) it stands to reason that someone as world-changing as the Ward of Gorion would come across at least ONE wild/dead magic zone.

    To my knowledge, only Arcane magic can surge, not Divine.

  • subtledoctorsubtledoctor Member Posts: 11,468
    bob_veng said:

    what about material components?

    Is there any way to do that, that isn't more trouble than it's worth?

    ------------------------

    So, here's what we've got so far:

    - Remove all "generic" magical weapons/armor/apparel. The only enchanted items in the world are unique ones; everything else gets downgraded to "fine/masterwork" stuff.

    - Fewer spell slots for casters... specifically, Fewer high-level spell slots. High level magic is still powerful, but rare. (This will pair well with a cantrip mod - you can cast more low-level magic, and less high-level magic.)

    - No level scaling for spells. So Fireballs only ever do 5d6 damage, DUHM only ever adds 1 point to your stats, etc. Higher-level will truly be more powerful than low-level magic. (Sunfire will do 9d6 damage, and a Delayed-Blast Fireball will I think do 13d6.)

    - Reduced spell durations. You can still Slow opponents, but only for 3 rounds. You can raise a magical Shield, but only for 6 rounds. Etc.

    - More expensive spell scrolls. Want to buy that Time Stop scroll to add it to your spell arsenal? 8,100gp please!

    - Less powerful wands. They will be used like ranged weapons, at will, but will only do about 1d6 damage, or put enemies to sleep for 2 rounds, etc.

    - Slower advancement for non-casters. Warriors with their high APR will be way, way more powerful relative to before. So we'll slow them down to match the paladin/ranger advancement, and slow down rogues to use the original fighter advancement.

    bob_vengAquadrizzt
  • kjeronkjeron Member Posts: 2,137

    That is... some heavy changes. I thought fatigue cannot be decremented? Can it be applied with temporary timing?

    Temporary only works with SET. Increment is still flaky even with permanent timing modes. Since I need to detect Fatigue level in the first place, I just run a check against all fatigue values 0-15 and 16+, then SET the value based on the spell and current fatigue level. It may have worked using a negative Increment in IWDEE (I don't remember using SET back then), but due to other changes in v2.0 I had to fully switch to this method. However, it is possible that it only works because the mod is constantly adjusting and controlling fatigue levels, but it never has lost control of fatigue.

    In limited doses it's okay. I've been finding that the AI can handle our "level 1 cantrips" mod, which makes 1st-level spells (and only 1st-level spells) castable at will.

    Limited yes, the lower the spell level the later it is usually checked by a script to cast, so at worst they will end up spamming an attack cantrip instead of making physical attacks, not necessarily an undesired result in that case.

  • subtledoctorsubtledoctor Member Posts: 11,468
    kjeron said:


    In limited doses it's okay. I've been finding that the AI can handle our "level 1 cantrips" mod, which makes 1st-level spells (and only 1st-level spells) castable at will.

    Limited yes, the lower the spell level the later it is usually checked by a script to cast, so at worst they will end up spamming an attack cantrip instead of making physical attacks, not necessarily an undesired result in that case.
    Exactly. It's also fun with things like Imbued Wights in IWDEE, which get unlimited Magic Missiles to throw at you, instead of only one.

  • bob_vengbob_veng Member Posts: 2,295
    i've got a terrible idea: assisted casting...required for level 9 spells. you need a simulacrum or something like that to co-cast the spell with you, and both of you must not be interrupted

  • tbone1tbone1 Member Posts: 1,995

    Why only nerfing arcane magic? I'd say spell failure due to wearing armor/shields should also be extending towards the divine spellcasters. Armor made Clerics more powerful than Mages either way.

    I disagree with this. Is there any point in the game where the cleric is the strongest class? Early in BG, it's the warrior types. By Chapter 4 of SoA it's mages, hands down. But clerics? I think they are under appreciated, but never are they top dog, except situationally, so I don't see why they would need holding back

  • ArdanisArdanis Member Posts: 1,691
    kjeron said:


    In limited doses it's okay. I've been finding that the AI can handle our "level 1 cantrips" mod, which makes 1st-level spells (and only 1st-level spells) castable at will.

    Limited yes, the lower the spell level the later it is usually checked by a script to cast, so at worst they will end up spamming an attack cantrip instead of making physical attacks, not necessarily an undesired result in that case.
    Individual timers solve it with ease. But of course that would require to make AI changes, so I guess it's out of the mod's scope.

  • kjeronkjeron Member Posts: 2,137
    Ardanis said:

    Individual timers solve it with ease. But of course that would require to make AI changes, so I guess it's out of the mod's scope.

    I did this for the PC's (manually written) scripts, I just never found an efficient way to mass-patch script blocks individually per spell.

  • subtledoctorsubtledoctor Member Posts: 11,468
    edited June 2017
    Ardanis said:


    Individual timers solve it with ease. But of course that would require to make AI changes, so I guess it's out of the mod's scope.

    Wait - can do his be done? I've had an idea for another mod for a while, which would take caster's off the "one spell per round" rails and make casting speed bonuses let you cast more, as well as faster. So low-level wizards could only cast once every 7-8 seconds, but at higher levels and with good equipment you could cast once every 3-4 seconds.

    I figured on approximating it with the AI by simply doing a level check, and setting the casting interval to 7, 6, 5, or 4 seconds at levels 1/6/12/18. But I didn't think this was possible, so I dropped the idea.

  • Grond0Grond0 Member Posts: 5,737
    edited June 2017

    Grond0 said:


    - not allow sequencers (or at least make them more difficult to use, e.g. by requiring them to take a round to cast and allowing the cast to be interrupted).

    Again, I sort of go the other way: as spell slots will become scarcer, I think sequencers actually become more important, and more special, by comparison. These will be more of a crutch for mages. Also note that you can only load sequencers with spells you have memorized, so reducing spell slots does (sort of, a tiny bit) reduce the capabilities of sequencers.

    If we were really evil we might make sequencers disappear out of your spellbook after you cast them, so you can only use as many sequencers as there are scrolls in the game. (This would be especially hard on sorcerers!)
    I still think sequencers are OP, but if you want to make them more special then how about linking them to specialist mages (who generally need to be made a bit more attractive to use anyway - particularly if your mod will make fighter mixes even more the power gaming option). You could have something like the following (though I don't know if this is doable):
    minor sequencer - usable by all mages
    sequencer - all mages can put 2 spells in one. The third has to be the specialist spell category of a mage.
    trigger - only specialist spells can be used.

    You could also delete or nerf the chain contingency spell - given that's pretty much always used not to deal with contingencies, but for cheese (the standard contingency spell seems fine to me).

  • ArdanisArdanis Member Posts: 1,691
    kjeron said:


    I did this for the PC's (manually written) scripts, I just never found an efficient way to mass-patch script blocks individually per spell.

    You could inspect AI block by block and patch in a timer if it contained HaveSpell(X) trigger and Spell(X) action. But with occasional at-will castings, forced castings, prebuffs, multiblock targeting etc. it might fail at about 10%-20% of times, I imagine. Though if you were to gather and review enough AI, a more precise solution may be possible to find. For comparison, I believe it took me a couple weeks to complete IR's weapon description patching code.

    Ardanis said:


    Individual timers solve it with ease. But of course that would require to make AI changes, so I guess it's out of the mod's scope.

    Wait - can do his be done? I've had an idea for another mod for a while, which would take caster's off the "one spell per round" rails and make casting speed bonuses let you cast more, as well as faster. So low-level wizards could only cast once every 7-8 seconds, but at higher levels and with good equipment you could cast once every 3-4 seconds.

    I figured on approximating it with the AI by simply doing a level check, and setting the casting interval to 7, 6, 5, or 4 seconds at levels 1/6/12/18. But I didn't think this was possible, so I dropped the idea.
    Most advanced AI scripts already run on one-round timer (and sometimes on individual spell timers in addition), so definitely yes. However, I do believe you still can't go under 6 seconds without forced casting or aura cleansing and its hardcoded feedback.

  • RaduzielRaduziel Member Posts: 4,716
    You only need two things to nerf wizards:

    1) limited rest. No rest in dungeons and only one rest every 24 hours. Did this in a IWD run and things became much more interesting.

    2) give wizards a grimoire that may be destroyed by area damage.

  • AasimAasim Member Posts: 591
    Raduziel said:


    1) limited rest. No rest in dungeons and only one rest every 24 hours. Did this in a IWD run and things became much more interesting.


    Say hello to my little friend.


    For as long as you leave this as it is, you cannot really nerf the no.of spells allowed. Furthermore, whatever table you use - SCS will use. So by nerfing number of available spells per level, you'll be making the game easier - enemy non-caster thugs are generally nothing more than XP bonuses. PC fighters have better equpiment, are buffed, and are led in combat by more or less IQ-driven personel.

  • subtledoctorsubtledoctor Member Posts: 11,468
    Ardanis said:

    Ardanis said:


    Individual timers solve it with ease. But of course that would require to make AI changes, so I guess it's out of the mod's scope.

    Wait - can do his be done? I've had an idea for another mod for a while, which would take caster's off the "one spell per round" rails and make casting speed bonuses let you cast more, as well as faster. So low-level wizards could only cast once every 7-8 seconds, but at higher levels and with good equipment you could cast once every 3-4 seconds.

    I figured on approximating it with the AI by simply doing a level check, and setting the casting interval to 7, 6, 5, or 4 seconds at levels 1/6/12/18. But I didn't think this was possible, so I dropped the idea.
    Most advanced AI scripts already run on one-round timer (and sometimes on individual spell timers in addition), so definitely yes. However, I do believe you still can't go under 6 seconds without forced casting or aura cleansing and its hardcoded feedback.
    Right, that's the isssue: I want to apply aura cleansing to everyone in the game. PC casters would be delayed instead by a combination of increased casting times, and opcode 145 effects after the spell is cast. Items & abilities that usually speed up casting, like Alacrity or the RoV, would either reduce casting times, or reduce the 145 effect after casting. So it wouldn't be like having Improved Alacrity forever - at low levels, you would end up casting more slowly than vanilla, not faster.

    Of course AI casters run on scripted timers; they don't care about opcode 145. So the question is, could you reasonably check each caster's level and script, and DECOMPILE_AND_PATCH/REPLACE_TEXTUALLY to change that creature's timer to some new value instead of 6, and have that value be based on the creature's level.

    I have a proof-of-concept somewhere to make this work for the player... it's that last part, applying to enemies, that has always confounded me.

  • ArdanisArdanis Member Posts: 1,691
    edited June 2017
    So the question is, could you reasonably check each caster's level and script, and DECOMPILE_AND_PATCH/REPLACE_TEXTUALLY to change that creature's timer to some new value instead of 6, and have that value be based on the creature's level.

    Level-dependent timers can be automated. I assume you know that timers are really just variables, yes? You can do something like
    REPLACE_EVALUATE ~SetGlobalTimer("\([^"]+\)","[Ll][Oo][Cc][Aa][Ll][Ss]",6)~ BEGIN
      SET $timer_list("%MATCH1%") = 1 // assemble a list of timer names while we're at it, may want TO_LOWER it too
    END ~SetGlobalTimer("\1","locals",6) ApplySpellRES("spltimer",Myself)~
    Not sure it's gonna compile right away, but you get the idea.

    The spltimer.spl adjusts the timers in timer_list array with 309 opcode, parameter1 scaling with caster level. Pretty sure you can use negatives, if not then replace timer in script with lower value. One second equals to either 15 or 30, but should be easy enough to determine with a few tests, or just check in a savegame.

    Since some scripts may not have any timers at all, read it block by block:
    OUTER_SPRINT space ~\([%LNL%%MNL%%WNL%%TAB% ]+\)~
    REPLACE_EVALUATE ~IF\(\(%space%[.]*$\)+\)THEN\(\(%space%[.]*$\)+\)END~ BEGIN
      SPRINT trigger ~%MATCH1%~
      SPRINT response ~%MATCH3%~
      PATCH_IF ~%trigger%~ STRING_CONTAINS ~HaveSpell([.]+)~ && ~%response%~ STRING_CONTAINS ~^%space%\(Really\)?\(Force\)?Spell([.]+)~ BEGIN
        no_timer=1
        INNER_PATCH_SAVE response ~%response%~ BEGIN
          REPLACE_EVALUATE ~SetGlobalTimer("\([^"]+\)","[Ll][Oo][Cc][Aa][Ll][Ss]",6)~ BEGIN
            SET $timer_list("%MATCH1%") = 1
            no_timer=0
          END ~SetGlobalTimer("\1","locals",6) ApplySpellRES("spltimer",Myself)~
          PATCH_IF no_timer BEGIN
            REPLACE_EVALUATE ~\(^%space%\(Really\)?\(Force\)?Spell([.]+)\)~ BEGIN
            END ~SetGlobalTimer("spltimer","locals",6) ApplySpellRES("spltimer",Myself) \1~
          END
        END
        PATCH_IF no_timer BEGIN
          SPRINT trigger ~!GlobalTimerNotExpired("spltimer","locals") %trigger%~
        END
      END
    END ~IF %trigger% THEN %response% END~
    It has even less a chance to compile, but again, you should get the general idea.

    Grammarsalad
  • cherryzerocherryzero Member Posts: 129
    Do you plan to address some of the normal weapon immune creatures in BG1 if you're removing generic magic items?

    Vampiric wolves and ghasts come to mind as creatures you can run into early on that will be nearly impossible to deal with unless you've got some low level magic items...

    Or will they be hittable by masterwork items instead?

  • subtledoctorsubtledoctor Member Posts: 11,468
    Right now it's:
    Normal ones hit as +0
    Masterwork hit as +1
    Magical ones hit as +3
    Artifacts hit as +5

    That's easy to change, though. I kind of think it would be better to drop masterwork weapons to have zero enchantment... most late-game trash mobs will have these weapons, so this would be an effective nerf of dumb ol' PfMW. (Whereas, most PCs will be using named magical weapons at that point, so it will still be an effective spell for the AI to use against you! :naughty: )

    I'll probably just add configurable options for this - either have alternate subcomponents, or have one default installation but let players change it in the mid's .ini file.

    Aquadrizzt
Sign In or Register to comment.