Another Magic System
I'm writing up a GDD for my RPG, and I need some advice on the 'magic' system.
It's for the PC, and utilizes a standard WASD (or custom keys) for movement. The issue is how to implement the magic system so you can move around competently while casting at the same time.
The magic system is fairly complex, where there are 6 'sigils', each representing some element, that you combine in 'seals' composed of 1 or more sigils. For example, the most basic shadow spell is 'stealth' = Shadow + Light.
Now, would it be more appropriate to have all 6 sigils in some sort of action bar which you would click, or have each sigil assigned to a key (either the number pad or the UIHKNM keys that ring the J key). You aim not by targeting, but by literally aiming, like in an FPS, so it's sort a hybrid between RPG and FPS controls.
I can't figure out what the best of implementation is for this particular game:
-Clickable action bar vs. Keyboard shortcuts (or both)
-Aiming with mouse vs. Locked targeting
It just seems too hard to try to push keys for a complex casting combo, whilst you are diving to the left... although I would imagine that would be difficult in real life as well. Perhaps it's even better, because it takes extra skill and concentration to pull off a dodge left + fireball w/ aim.
Thoughts? I'm probably making this more complicated than it needs to be.
I think you might be throwing a few too many balls in the air there.
The player must move around, aim, and cast complex magic combos, all at the same time. You might be setting the bar unreasonably high.
Still, if I had to implement that functionality I'd try something as intuitive as possible, like mouse movements for the spells and not keyboard shortcuts.
For instance, every time the player pressed the left mouse button, your game would record it's movement and translate that movement into a spell, or nothing, if performed incorrectly. That spell could be incrementally created, so, if the spell was composed of 3 basic movements, the player could just do them all in one left mouse click, or make 3 separate movements.
When the spell is complete, something in the game let's the player know this and now he can press the right mouse button to "release" the spell to hit the target, this is when aiming comes in.
Mouse movements may sound a bit difficult to implement, but it can be quite simple in fact, all you do is create a 2d array for all the pixels in the screen, or create a smaller one for a specifically delimited area on the screen the player can use to perform spell movements, and assign a percentage to each pixel.
Something like this:
-100 -100 -100 -100 -100
-100 +050 +050 +050 -100
+050 +100 +100 +100 +050
-100 +050 +050 +050 -100
-100 -100 -100 -100 -100
This array could represent a spell movement that would return a perfect score if the player "drawed" a perfect 3 pixel horizontal line, and would give a bit of margin for error with those 50% values. You could actually create these spell movements with an image editor, just chose a big soft brush and draw a spell movement in red. Then superimpose the player movement over that one and check how red each pixel is to calculate the strength of the spell.
The player must move around, aim, and cast complex magic combos, all at the same time. You might be setting the bar unreasonably high.
Still, if I had to implement that functionality I'd try something as intuitive as possible, like mouse movements for the spells and not keyboard shortcuts.
For instance, every time the player pressed the left mouse button, your game would record it's movement and translate that movement into a spell, or nothing, if performed incorrectly. That spell could be incrementally created, so, if the spell was composed of 3 basic movements, the player could just do them all in one left mouse click, or make 3 separate movements.
When the spell is complete, something in the game let's the player know this and now he can press the right mouse button to "release" the spell to hit the target, this is when aiming comes in.
Mouse movements may sound a bit difficult to implement, but it can be quite simple in fact, all you do is create a 2d array for all the pixels in the screen, or create a smaller one for a specifically delimited area on the screen the player can use to perform spell movements, and assign a percentage to each pixel.
Something like this:
-100 -100 -100 -100 -100
-100 +050 +050 +050 -100
+050 +100 +100 +100 +050
-100 +050 +050 +050 -100
-100 -100 -100 -100 -100
This array could represent a spell movement that would return a perfect score if the player "drawed" a perfect 3 pixel horizontal line, and would give a bit of margin for error with those 50% values. You could actually create these spell movements with an image editor, just chose a big soft brush and draw a spell movement in red. Then superimpose the player movement over that one and check how red each pixel is to calculate the strength of the spell.
Quote:Original post by xor
I think you might be throwing a few too many balls in the air there.
The player must move around, aim, and cast complex magic combos, all at the same time. You might be setting the bar unreasonably high.
Still, if I had to implement that functionality I'd try something as intuitive as possible, like mouse movements for the spells and not keyboard shortcuts.
For instance, every time the player pressed the left mouse button, your game would record it's movement and translate that movement into a spell, or nothing, if performed incorrectly. That spell could be incrementally created, so, if the spell was composed of 3 basic movements, the player could just do them all in one left mouse click, or make 3 separate movements.
When the spell is complete, something in the game let's the player know this and now he can press the right mouse button to "release" the spell to hit the target, this is when aiming comes in.
Mouse movements may sound a bit difficult to implement, but it can be quite simple in fact, all you do is create a 2d array for all the pixels in the screen, or create a smaller one for a specifically delimited area on the screen the player can use to perform spell movements, and assign a percentage to each pixel.
Something like this:
-100 -100 -100 -100 -100
-100 +050 +050 +050 -100
+050 +100 +100 +100 +050
-100 +050 +050 +050 -100
-100 -100 -100 -100 -100
This array could represent a spell movement that would return a perfect score if the player "drawed" a perfect 3 pixel horizontal line, and would give a bit of margin for error with those 50% values. You could actually create these spell movements with an image editor, just chose a big soft brush and draw a spell movement in red. Then superimpose the player movement over that one and check how red each pixel is to calculate the strength of the spell.
Article on just this topic, on our very own GDNet
Edit:
Also, though, I guess I really don't see the point in using the "magic system" you're describing here. If your character is an experienced wizard, and the various sigil combinations have pre-determined effects (shadow + light = "stealth"), then why not just remove the middleman that is this sigil system entirely and just create specific spells that the player could, say, assign to hotkeys (think WoW), or choose as active spells and fire them with a mouse click (think Diablo)?
I have always found the idea of having complex interactions between various magical elements to be pretty interesting, but it doesn't seem like the kind of thing that would work well with an action game like you seem to be describing. What if you had a system similar to Final Fantasy (seven, I think?), where you could apply materia to your weapons for different enhancements? I never actually played that game (just watched my friends), but if you could sit back and experiment with magic (in a way that was fun, not tedious), doing magical "research," that might be a pretty cool aspect of the game. Might make me feel like a real wizard, not just a guy in a funny hat with a gun that shoots fireballs.
Another idea connected to this: what if, in additon to having non-pre-determined magic effects from the different materia (or whatever you want to call them), the effect was different/random/whatever depending on your character? Magic in video games, like pretty much everything else, seems generally to be a sort of mathematical system, a stale ritual for producing stale effects (maybe this is why I don't really play video games much anymore...). Even if you implemented the system above, people could just look online for the best combo (which wouldn't necessarily be a bad thing, except in terms of replay value). What if your personal attributes, experiences/choices in the game, or random chance determined part or all of how magic worked for your character? That might add a level of investment in an individual character.
[Edited by - silverphyre673 on March 7, 2008 2:21:35 AM]
6 sigils, rings a bell... Those who owned an Atari ST back in 1987 might remember Dungeon Master. One of the greatest games ever.
Your system sounds very interesting. But it’s to complex it will most likely get the players confused and bored.
For a system this complex (run, aim and perform spells) you need to break it into steps. For example:
Step 1, preparation: While you still control your character’s movement with the directional buttons, you set your spell first with the mouse. You hold the right mouse button to reveal a ‘seal’ on the screen. Then, you use the left mouse button to set the ‘sigils’ in their desired positions.
Step 2, seal the deal: If you left go of the right mouse button while having a valid combination of sigils, the spell will be activated. When a say ‘activated’, I mean that the character will glow indicating that it’s able to cast the spell.
Step 3, cast - FPS style: Now you use the mouse to aim and the left mouse button to unleash hell. While the spell is still active you can use it as many times (or mana) as you like. You turn off the spell by either deactivating it or changing the spell.
Note that while doing all that you can still move the character with directional buttons to hide or dodge enemies.
You can also make it more interesting by allowing spell combinations.
For example, let’s say that you have these 2 spells with their amount of sigils needed to activate them:
Fire Ball: 1 fire sigil + 1 fire sigil
Fire Wall: 1 fire sigil + 1 fire sigil + 1 fire sigil
If you have Fire Ball active, you can activate Fire Wall by just putting 1 fire sigil in the ‘seal’ instead of just 3. The fire sigil will be added to the activated Fire Ball’s 2 fire sigils to activate the Fire Wall spell.
This way you’ll encourage players to stick with spells that they can quickly switch from offensive spells, to defensive spells, to counter spells (or whatever).
You have a very nice idea in your hands, just figure out a good way to implement it easily and cleanly.
Cheers :)
For a system this complex (run, aim and perform spells) you need to break it into steps. For example:
Step 1, preparation: While you still control your character’s movement with the directional buttons, you set your spell first with the mouse. You hold the right mouse button to reveal a ‘seal’ on the screen. Then, you use the left mouse button to set the ‘sigils’ in their desired positions.
Step 2, seal the deal: If you left go of the right mouse button while having a valid combination of sigils, the spell will be activated. When a say ‘activated’, I mean that the character will glow indicating that it’s able to cast the spell.
Step 3, cast - FPS style: Now you use the mouse to aim and the left mouse button to unleash hell. While the spell is still active you can use it as many times (or mana) as you like. You turn off the spell by either deactivating it or changing the spell.
Note that while doing all that you can still move the character with directional buttons to hide or dodge enemies.
You can also make it more interesting by allowing spell combinations.
For example, let’s say that you have these 2 spells with their amount of sigils needed to activate them:
Fire Ball: 1 fire sigil + 1 fire sigil
Fire Wall: 1 fire sigil + 1 fire sigil + 1 fire sigil
If you have Fire Ball active, you can activate Fire Wall by just putting 1 fire sigil in the ‘seal’ instead of just 3. The fire sigil will be added to the activated Fire Ball’s 2 fire sigils to activate the Fire Wall spell.
This way you’ll encourage players to stick with spells that they can quickly switch from offensive spells, to defensive spells, to counter spells (or whatever).
You have a very nice idea in your hands, just figure out a good way to implement it easily and cleanly.
Cheers :)
Thanks! I admit I got carried away when I thought of this, and just kept adding complexity because it sounded cool.
For this implementation then, aiming with the mouse (FPS) would definitely be preferable. Also I really like Farraj's suggestions, because it makes logical sense.
However, the one thing that I still need to decide before I begin, is what the spells will actually do.
I do not want to have the players simply memorize that X + Y + Z = Fireball, and Z + Y + Y = Icebolt. There would be no point, and I might as well have one button for each possible spell (World of Warcraft).
Another option would be to have each part of the spell control something (X controls which skill tree, Y controls the effect (Direct damage vs. AoE), and Z controls something else). I don't know, something that would make the combinations actually make sense for their effects. I forgot to mention, but I am trying to make spells have more utility (like slowing movement, turning invisible, creating illusions) than simply types of damage (Fire damage, Frost damage, Light damage).
Thanks everyone!
-Humble Hobo
For this implementation then, aiming with the mouse (FPS) would definitely be preferable. Also I really like Farraj's suggestions, because it makes logical sense.
However, the one thing that I still need to decide before I begin, is what the spells will actually do.
I do not want to have the players simply memorize that X + Y + Z = Fireball, and Z + Y + Y = Icebolt. There would be no point, and I might as well have one button for each possible spell (World of Warcraft).
Another option would be to have each part of the spell control something (X controls which skill tree, Y controls the effect (Direct damage vs. AoE), and Z controls something else). I don't know, something that would make the combinations actually make sense for their effects. I forgot to mention, but I am trying to make spells have more utility (like slowing movement, turning invisible, creating illusions) than simply types of damage (Fire damage, Frost damage, Light damage).
Thanks everyone!
-Humble Hobo
I actually think it would be fun if you could precast the spells. Do the combinations then have it stored into memory to actualy unleash later.
how about using a motion system, but allowing the user to build up spells in parts. You could then at any time start a new spell (use a hotkey for this, middle mouse, tab, button on screen, whatever) and as you start the new spell, the old one gets a countdown until it falls to pieces, and the more partial spells you have, the quicker the countdown goes. It could allow you to strategically nearly finish a number of spells, and then complete them in quick succession for extra combo damage, or just excruciating burst damage, but you'd sacrifice time to do so. Perhaps make it riskier, so that if the character is hit, there's a chance that any one of your spells could collapse, either just fizzling out, or even back-firing, depending upon the spell, and how badly you take the hit.
I don't know if it would be adding more unnecessary complications, but it could be quite a fun system, in my opinion at least.
I don't know if it would be adding more unnecessary complications, but it could be quite a fun system, in my opinion at least.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement