An idea for better magic

far_wanderer

Prince
Joined
Dec 20, 2008
Messages
454
I've been working on an idea to make the magic system a lot easier to work with, and I thought I'd share my idea.

The core change is to make each spell require its own promotion, and to make those promotions entirely separate from each other (although you could still make hierarchical spell chains if you wanted). So, for example, Sanctify requires the Spell: Sanctify promotion.
The second main change is alter the way arcane units work. Arcane units gain spells for free, they can have one per level (and probably a promotion tree increasing that number). At any town, they can use the ability "upgrade spellbook" to unlearn all current spells and pick new ones.

Why do this?
  • Spells can have, as a requirement, any combination of:
    • amount and type of mana
    • level (both actual unit level and Channeling 1/2/3)
    • state religion
    • technology
    • other normal promotions (combat 3, mobility 1, even racial promotions)
    • buildings/wonders in the city
    • civilization
    • other spells
    • anything else I forgot about that can be made a promotion requirement. (EDIT: upon reading the Mod-Modder's guides, it appears this list is about two pages long)
  • Spells could have more than one possible requirement (for example, Sanctify could require one Life mana OR two Law mana) EDIT: Upon delving into the Mod-Modder's guide, I find that things are not quite as variable as I had thought - it is not possible to make a promotion requite one of two things if those two things are not of the same type (a Tech OR a Mana source, for example).
  • It would be possible to make spells that can only be cast once before requiring a trip back to a city to relearn them.
  • It would further be possible to make a spell that requires a building to be constructed and then picked up in order to learn the spell, thus attaching production time to specific spells.
  • Spells can be placed in places outside the arcane research line (although most probably won't).
  • Arcane units can be optimized to use whatever spells you want them to have, no superfluous spells
  • Arcane units would no longer have to spend all of their promotions on spells, freeing up some potential design space (in addition to the more spells line I suggest above, I could also see a summoning enhancement line and a direct damage enhancing line at least, plus promotions to allow access to certain categories of spell).
  • Spells will be able to have a whole lot more variability in power and effect, due to no longer being limited to a strict three-tier system.
  • Maintaining more than one source of a single type of mana will be important for access to high level spells, not just for affinity.

Some potential problems:
  • I can't do all of this on my own. There are a few things outside my current skill set that I list below. If I have to figure out those things by myself, it will take a lot longer to get this idea functional.
  • Arcane units would be a little more dependent on cities, as they wouldn't be able to field-promote new spells (unless... that could be a new high level promotion)

I have one request as you provide feedback:
Don't talk about spell ideas yet. I want to work out the core concept a bit before we get bogged down in discussion of individual spells. I deliberately stuck to only one spell in all of my examples. In a few days, I'll make a list of spells to start with and then we can brainstorm about specific spells

Here's a full example using Sanctify:
Spoiler :
Spell Sanctify. Clears hell terrain, cleanses city ruins, etc. Requires Promotion Spell: Sanctify OR Promotion Cast Sanctify.
Promotion Spell: Sanctify. Requires 2 Law mana OR 1 Life mana.
Promotion Cast Sanctify. Devouts start with this promotion.

In this example, arcane units that meet the requirements could learn Sanctify in any city, using up one of their available spell slots. Devouts would simply cast it normally, as they do now.


ADDENDUM: I've been starting to comb through the various modding guides and figuring out what I can do and what will be beyond my current abilities. Here are the current coding things I know I will need help with:
  1. Setting up the actual spell slot system. There needs to be a promotion requirement of 'available spell slot', arcane units need to automatically gain one spell slot per level, promotions need to be able to grant additional spell slots, and for future modding flexibility it would probably be good to have a promotion option to change the number of slots a single spell uses.
  2. A way of identifying spell promotions as different from other promotions, so that an 'upgrade spellbook' ability can simply remove all promotions of that type, without having to individually list each spell (I might need some help creating that ability, too)
  3. Adding a field to SpellInfos that allows a spell to require one promotion from a list, rather than all promotions from a list. This isn't truly necessary, but it will make things a whole lot simpler.
  4. Making the <PrereqBonus> lines allow the requirement of a minimum number of a specific resource, rather than just access to that resource.
  5. Once it's functional, I may need help figuring out the complexities of the modding process itself (things like updating, installing, best ways to make it available, etc.)
If someone can do those four things (#5 doesn't come up until I'm done) I can go ahead and do all the grunt work.

Miscellaneous ideas:
Spoiler :

Govannon and the Amurites: The Amurites gain a promotion giving all of their units 1 spell slot, making their arcane units slightly better and giving a small amount of magic to everyone. Non-arcane units will still be limited to only spells that do not require a Channeling level or a promotion that is only available to arcane units (since all arcane units start with Channeling 1, the only current purpose of making a spell require it would be to affect whether or not non-arcane units can learn it). Govannon can cast a spell that adds a second promotion, adding a second bonus spell slot and Channeling 1 (so at that point, all Amurite units become effectively Adepts in most situations). Looking at the Mod-Modding Guides, it looks like it might be possible to make Govannon a mobile source for spellbook changing.

Plan for design:
Spoiler :

Phase 1 - basic design. Get the mod functioning, but tweak the existing spell system as little as possible. The idea being that if people like the idea, they can absorb the code for the idea itself without having to deal with any major changes to spells.
  • Learn how to work with the DLL by copying an existing field to a new place: adding a <PrereqPromotionOR> field to SpellInfos.
  • Learn more about the DLL to add <iSpellSlotRequired> and <iSpellSlotProvided> to PromotionInfos. Help with this feature would still be appreciated.
  • Make Arcane units automatically gain one spell slot per level (can do it with autoacquire promotions if there's no easier way).
  • XML coding to change existing spells to the new system.
  • Learn how to publish a mod.
Phase 2 - advanced design. Create a second mod that takes advantage of the new spell slot system to vastly improve the magic system in its entirety.
  • Rebalance all existing spells to take full advantage of the new system.
  • Begin creating new spells
  • Hopefully magange to limit phase 2 to a module.
Phase 3 - the mentor. One of the primary benefits of the new system is to make it very easy for people to add new spells or change existing ones. The goal of this phase is to make that even easier.
  • Create an easy to use XML template for new spells.
  • Create a heavily abridged version of the Modder's Guide to FFH2, the Mod-Modder's Guide to FF, and some basic BTS promotion tags, limited to things that would be useful in creating spells and all together in one place.
 
I had the same reaction as Valk. I didn't like it, and then I considered it, and I think it could definitely have its uses.

Couple of ideas (not spells, don't worry):
- Just looking at your example of Sanctify, I wouldn't have it as an autoacquire promotion when you own those specific nodes. Instead, what if, depending on tier of unit, level, and promotions, the units had a limited number of "slots" in their "spell book?" And they could "scribe" a spell in town by using a promo acquired by being in a city that had no level requirement and didn't "use up" any exp. This would kind of balance it out a little, imo. On one hand you could have heavily promoted summoners, or more diverse units with an assortment of varying spells. After writing this, I realize you may have already stated this exact idea... If so, I am ashamed.
- Govannon could function more or less identically to his current form. Instead of teaching a T1 hierarchical spell perhaps he could simply teach only the spells with the weakest requirements to units? Such as anything that only requires one mana node, and maybe a few other things.
- Um... you said you had two requests for feedback, but you only stated one. :p


Also: You may want to add for spells requirements, other spells. Perhaps there could be multi-mana spells that would require several of their independent mana counterparts. Again, it would just add for some more flexibility. Once this core idea is out (hopefully somebody picks it up) I could see modders doing a WHOLE lot with the freedom of it.
I take your stance. I have no modding experience, and I can't dream of starting on something as archaic as the spell system, but should you require help and someone can point me to a tutorial, I'd be happy to give whatever time I could. :D
 
This idea could be cool. Not sure I like having my arcane units have to return to a city to recharge their spells though I do like the idea of being able to switch out spells for other ones. One thing I miss from FFH2 is being able to have mage priests. I wonder if this system would bring something approximating that back.
 
I had the same reaction as Valk. I didn't like it, and then I considered it, and I think it could definitely have its uses.

Couple of ideas (not spells, don't worry):
- Just looking at your example of Sanctify, I wouldn't have it as an autoacquire promotion when you own those specific nodes. Instead, what if, depending on tier of unit, level, and promotions, the units had a limited number of "slots" in their "spell book?" And they could "scribe" a spell in town by using a promo acquired by being in a city that had no level requirement and didn't "use up" any exp. This would kind of balance it out a little, imo. On one hand you could have heavily promoted summoners, or more diverse units with an assortment of varying spells. After writing this, I realize you may have already stated this exact idea... If so, I am ashamed.
That actually does sound exactly like what I'm suggesting. Spells cost no XP, but they are not autoacquire (the only autoacquire thing is the hidden promotion series to handle mana requirements). You can pick up any that you meet the requirements for in any town, but each unit has a limited number of spells they can carry at any one time.
- Govannon could function more or less identically to his current form. Instead of teaching a T1 hierarchical spell perhaps he could simply teach only the spells with the weakest requirements to units? Such as anything that only requires one mana node, and maybe a few other things.
That's generally the kind of thing I expect will happen, the problem is figuring out a set of rules for what spells get passed on that doesn't have any bizarre loopholes. The downside of freeing spells from rigid tier requirements is that then there aren't any rigid tier requirements. The other big problem is figuring out a way to prevent Govannon from picking up a set of 6 spells, teaching them to some units, relearning 6 new spells, teaching them to the same units, etc. The easy way to do it is to just give all Amurite units a promotion that gives them a few spell slots, but that would completely remove Govannon from the process. That may actually be the way to do it, and just come up with an entirely new function for Govannon. (...or the obvious solution right in front of my face is to let Govannon teach that promotion.) That way Amurite units could learn any spell that didn't require a Channeling level or an Arcane-specific promotion.
- Um... you said you had two requests for feedback, but you only stated one. :p

Also: You may want to add for spells requirements, other spells. Perhaps there could be multi-mana spells that would require several of their independent mana counterparts. Again, it would just add for some more flexibility.
Good catch. I will edit those as soon as I'm done with this post.

Once this core idea is out (hopefully somebody picks it up) I could see modders doing a WHOLE lot with the freedom of it.

I take your stance. I have no modding experience, and I can't dream of starting on something as archaic as the spell system, but should you require help and someone can point me to a tutorial, I'd be happy to give whatever time I could. :D
My initial research into what it would take to make this mod indicates the grunt work may not be as difficult as I thought, so I shouldn't need much help with that. The one thing that you can do right now is to start paying attention whenever you play for obscure or unintuitive places where the current spell system shows up. Catching all of those will be the real challenge.
Actually, aside from possibly the number of mana requirements it shouldn't be too hard to code. Xienwolf set up a VERY flexible promotion system. :lol:
I know! I spent some time looking at the Mod-Modders Guide to Fall Further last night, and got sidetracked for almost an hour just on the promotions info. It's amazing!
 
This idea could be cool. Not sure I like having my arcane units have to return to a city to recharge their spells though I do like the idea of being able to switch out spells for other ones. One thing I miss from FFH2 is being able to have mage priests. I wonder if this system would bring something approximating that back.

You don't need to go back to a city to recharge, only to learn new spells. The only way a recharge would be necessary is if someone made a spell that was specifically expended when cast.
I'm not entirely sure what you mean about mage priests, but several different interpretations of that phrase are certainly possible. Priests could have a limited number of spell slots and/or mages could gain access to certain spells based on your state religion.
 
I think He was refering to the divine/sorcery split, there was three or more spells per sphere, one for divine, one for sorcery, and one for summoning
 
I made a few changes to the original post
>corrected a few minor typos and omissions (thanks to The NeverTide)
>removed the bit about hidden autoacquire promotions to handle mana requirements. It was adding confusion, and I realized that if I was going to have a promotion that required more than one of a single resource, that same requirement could be on the spell promotion itself. I'm not sure why I didn't think of that originally
>Added a list of the few advanced coding things I need someone more talented than me to figure out. It's smaller than I originally thought, but consists of things I have absolutely no clue how to figure out. Help on those things would be greatly appreciated, even if it's just advice on how to do them myself.
>Added a miscellaneous ideas section, currently only contains my idea for accommodating Govannon and the Amurites
 
I take your stance. I have no modding experience, and I can't dream of starting on something as archaic as the spell system, but should you require help and someone can point me to a tutorial, I'd be happy to give whatever time I could. :D
Sorry to bring up a quote a second time, but I just thought of an important thing to mention: The real benefit of this system is that you don't have to delve into the spell system. You have to delve into the promotion system, but all spells need is a change to the requirements. Changes in the spell system won't be needed until the base mod is complete, and only then is it time to start adding new spells and changing the existing ones.

I think He was refering to the divine/sorcery split, there was three or more spells per sphere, one for divine, one for sorcery, and one for summoning

Got it now, that was before my time. There certainly won't be a three-way split, as the point of this idea is to get further away from that kind of rigid structure. There is the possibility for many more spells, however, so if there's something you miss it would be very easy to bring it back.
 
Interesting :)

Basically, you would have to re-do all SpellInfos.xml and the promotions. That would be a lot of work. Some things are tricky, though, like the quantified bonus required. I don't think it's implemented right now.

I'm willing to help. Just ask what to help for :)
 
Interesting :)

Basically, you would have to re-do all SpellInfos.xml and the promotions. That would be a lot of work. Some things are tricky, though, like the quantified bonus required. I don't think it's implemented right now.

I'm willing to help. Just ask what to help for :)
It's actually not looking like as much work as it sounds. Yes, there are 96 spells I want to fiddle with, but it only requires changing one line each in SpellInfos and most of the work creating the new promotions is copy/paste.
If you can help with any the things at the bottom of the first post, that would be huge. Otherwise, there's not much to help with right now.

Sadly, most of the points you're asking for help with look like they'd be best done via the DLL, which I can't help with. :lol:
Actually, just that piece of information is a huge help, as now I know what things I need to learn if I ultimately end up doing all of this myself.
 
Now that I am done with classes, I am hoping to finish up my Idiot's Guide sometime. If you have to dive into the DLL, there are worse places to start :)
I took a look at the Idiot's Guide. THANK YOU! It's extraordinarily helpful, although still very complicated. I still feel like I'm looking for a needle in a haystack, but that guide takes away about 75% of the haystack. Half of the stuff on my list of things I need help with looks a lot more plausible now.
The other thing it showed me is that I can do a whole lot of the XML grunt work ahead of time, because the tags are created there. I only have to delve into more advanced things to make the tags actually do something.
 
Any chance you could change it so a person only has to have the spell sphere, and the requirements are level based? I'm sick of having to buy the second level of the spells and never having time for other improvements like combat or mobility.
 
This is really easy to do, Mylon, even though you'd have to skim through all the spells you want to change. However, I'm not sure it fits with what far_wanderer wants to do...
 
Would this change generally make arcane units have even fever spells?
 
Back
Top Bottom