For element type, you could vary the color of the rune(use non-standard colors too, like green for fire, neon pink for necromancy, etc =-), and for strength you could have a small gryph in the corner of each rune represent a number. Look up non-arabic number systems and mix and match pieces to get meaningless symbols that can be from say 0-10. Just don''t show any differences in strength smaller than that (so if a rune is strength 0.1 you would just show it as 0), or maybe have two digits and round to the nearest tenth. If you want to have some _REALLY_ powerfull runes, you could make the scale non-linear something like 1 is twice as strong as 0, 2 is twice as strong as 1, etc, so 10 would mean 512 times as strong as a 0 rune. You could use 1.5 times as much instead of twice as much, and you get 10 is ~38 times better than 0.
Also, you don''t really need a whole lot of functions (well, I guess that depends on what you consider a lot). I think you could probably get by with about 20 runes, especially if you make a ''function marker''. Anything following that rune is a function, so you could do things like
SetHealth(GetHealth-10)
by doing "F 1 F 2 F 3 10" in runes
where F is the function marker, 3 is get health, 2 is subtract, and 1 is set health. It''s like the byte code for a virtual stack machine, which could offer a LOT of flexability (maybe too much, players might never figure it out) =-)
The art of magic.
"Walk not the trodden path, for it has borne it's burden." -John, Flying Monk
So you can do a super modifyable magic system in under 20 functions? please share!
BTW, that goes along my line of thought, Extrarius. I also want mages to be what the player wants them to be - not fit into any sort of pre-defined mold.
I want a system where Caleb''s Towering Inferno both looks, and acts somewhat differently then his competitors best attemp at it.
*sigh*
Complexity = Power of the System in this case. At least it''s complexity for the coder, and not the end user! ( and i am also glad i love a challange, otherwise i wouldn''t even begin tackling this monster
)
BTW, that goes along my line of thought, Extrarius. I also want mages to be what the player wants them to be - not fit into any sort of pre-defined mold.
I want a system where Caleb''s Towering Inferno both looks, and acts somewhat differently then his competitors best attemp at it.
*sigh*
Complexity = Power of the System in this case. At least it''s complexity for the coder, and not the end user! ( and i am also glad i love a challange, otherwise i wouldn''t even begin tackling this monster
![](smile.gif)
In a way, yes - but what i am going for is something more powerful then the morrowind system. I want to avoid doing what morrowind does - defining spell types (open lock, fire, shock, walk on water, etc).
As it is, so far it seems that the rune-making step would be useless if we go with the previously defined method. We''d still have cookie-cutter spells (user definable cookie-cutter spells, but thats not the point
) Ah well, it was a good idea.
As it is, so far it seems that the rune-making step would be useless if we go with the previously defined method. We''d still have cookie-cutter spells (user definable cookie-cutter spells, but thats not the point
![](smile.gif)
quote:
Original post by ShiNoDebiru
So you can do a super modifyable magic system in under 20 functions? please share![...]
Really I said 20 runes(all you need really is 2 different runes to be able to create a system with any any level flexibilty... computers use binary and they can do a lot of stuff =-), but if you give me a large list of spells you'd like to be able to create I'll try to help you come up with a minimal set of functions to implement them all and an 'optimal' encoding =-)
For many of the spells from AD&D and GURPS, you could get by with three simple functions: SetTarget(as I said before), GetProperty and SetProperty, with the arguments being which property and (for set) the new value. Assuming Health, Speed, all stats, Armor, etc are all accessible from the two functions, you can recreate a LOT of spells with those three simple functions (well, you would need subtraction and addition as well unless you can live with all sets being absolute instead of relative).
In order to help things ALWAYS be different between different players (as in one player can't every make the exact same thing as another character), you could apply small bonuses and penalties to each function(or rune, or cost, or whatever) so when two people use the exact same formula it will still be slightly different.
[edited by - Extrarius on April 2, 2003 4:24:45 PM]
"Walk not the trodden path, for it has borne it's burden." -John, Flying Monk
Hmm, i see where you''re getting at, but so far it only offers modification of the targets properties.
Hmm... Taking what you''ve given me so far, lets take the functions a step further...
SetTarget(target) : Sets the target of the spell, not needed - default target is the spellcaster.
SetArea(areasize) : Sets the area of effect. not Needed - default is 0 (direct hit required for effect).
SpellBehavior(behaviorFlags) : Behavior of the magic. Such things as dumbfire, grenade (influnced by gravity), etc.
Special(special) : Reserved for unique runes. Super powerfull special effects like MIRV, Homing, etc.
GetProperty(target, property) : Get the value of a property from target.
SetProperty(target, property) : Set the value of a property of target
CreateItem(Pos, ItemID, Duration, Flags) : Create an item at position ''pos'', of itemid, that lasts for set duration, and acts acording to its flags
CreateCreature(Pos, CreatureID, Duration, Flags) : Create a Creature at position ''pos'', of itemid, that lasts for set duration, and acts acording to its flags
Hmmm... How''s that?
Hmm... Taking what you''ve given me so far, lets take the functions a step further...
SetTarget(target) : Sets the target of the spell, not needed - default target is the spellcaster.
SetArea(areasize) : Sets the area of effect. not Needed - default is 0 (direct hit required for effect).
SpellBehavior(behaviorFlags) : Behavior of the magic. Such things as dumbfire, grenade (influnced by gravity), etc.
Special(special) : Reserved for unique runes. Super powerfull special effects like MIRV, Homing, etc.
GetProperty(target, property) : Get the value of a property from target.
SetProperty(target, property) : Set the value of a property of target
CreateItem(Pos, ItemID, Duration, Flags) : Create an item at position ''pos'', of itemid, that lasts for set duration, and acts acording to its flags
CreateCreature(Pos, CreatureID, Duration, Flags) : Create a Creature at position ''pos'', of itemid, that lasts for set duration, and acts acording to its flags
Hmmm... How''s that?
It''s a good base set, except that I would change the default target to the location the caster is facing. Otherwise, you''ll end up with a lot of dead n00b wizards that just made their first damage spell without setting the target =-) Sure magic is dangerous, but if you implement all the stuff to make it hard to figure out the system I think its a bit unfair to expect them to put in the target code in their first few spells =-)
Also, when you are coding the system, you could make each function (in the real programming language, C/C++ whatever) take a boolean value, and if the value is true you make it do whatever effect it would normally do but if its false you have the effect return a number that represents the cost of that function. That way each function can calculate its cost and you can just add them up to get the cost of the spell (or maybe, add them up, and divide by the number of functions called + 1, so short spells get a cost reduction {specialized spells are easier because they only do a little bit, and the more functions the spell uses, the less that +1 matters, so a 1-function spell costs 1/2 normal, a 2 function spell costs 2/3 normal, 3/4, 4/5, 5/6, etc costing more of the base value each time})
Also, when you are coding the system, you could make each function (in the real programming language, C/C++ whatever) take a boolean value, and if the value is true you make it do whatever effect it would normally do but if its false you have the effect return a number that represents the cost of that function. That way each function can calculate its cost and you can just add them up to get the cost of the spell (or maybe, add them up, and divide by the number of functions called + 1, so short spells get a cost reduction {specialized spells are easier because they only do a little bit, and the more functions the spell uses, the less that +1 matters, so a 1-function spell costs 1/2 normal, a 2 function spell costs 2/3 normal, 3/4, 4/5, 5/6, etc costing more of the base value each time})
"Walk not the trodden path, for it has borne it's burden." -John, Flying Monk
Great ideas here, but whatabout the spell animations, I mean, How tyo be sure that a heal spell won''t look like a fireball..?
I teleported home one night; With Ron and Sid and Meg; Ron stole Meggie's heart away; And I got Sydney's leg. <> I'm blogging, emo style
quote:
Original post by xMcBaiNx
Great ideas here, but whatabout the spell animations, I mean, How tyo be sure that a heal spell won''t look like a fireball..?
Why would you want to make sure of that? Is there any reason you can''t have "Healing Fire"? From what I gather, ShiNoDebiru wants anything to be possible, and having different spells look the same and the same spells look different sounds fun to me. You could never be sure that your ally really just healed you. Maybe he cast a spell that heals and trys to charm you as well. Gotta be suspicious of those mages ya know =-P
"Walk not the trodden path, for it has borne it's burden." -John, Flying Monk
yeah... but an area spell that looks like a ligthning bolt won''t work, unless there''s some energy wave that goes out
I teleported home one night; With Ron and Sid and Meg; Ron stole Meggie's heart away; And I got Sydney's leg. <> I'm blogging, emo style
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement
Recommended Tutorials
Advertisement