Advertisement

Making an RPG - The Magic System

Started by March 27, 2009 01:37 PM
17 comments, last by statis 15 years, 10 months ago
Hi everybody! I'm a longtime lurker but I've decided to come out of the shadows and get feedback on a game I'm making. The game is a single player RPG in the tradition of "roguelike" games like Nethack or ADOM. I have a huge pile of notes and even more ideas floating in my head. I'd eventually like to share all of them so my game can benefit from the experience of experts, and I plan to have a series of posts about each aspect of the game. I'm starting with the magic system. Why? Because I plan for magic to be the central theme of the game. So many RPGs treat magic like a sideshow, with some spells that a wizard can cast and a few magic items. Or magic is invisible, used as an easy way to explain things. I want the presence of magic to be obvious and affect everything. If the game were a shooter, magic would be the guns. I've designed the magic system with some principles in mind. The basics: - It should follow the old RPG formula of advancement - face challenge, become stronger, face tougher challenges. I know that a lot of players complain about the "grind," but in my experience this is what makes games fun and addictive. - It should be easy to learn but hard to master. Chess is the best example of this ideal. - There should be trade offs - the player should have to make decisions about which abilities/spells to use. I find that RPGs in which the player can do everything aren't much fun. For me, making decisions from a set of choices is a huge part of the appeal of RPGs and games in general. Other principles more specific to my game: - No decisions should be irreversible. There will be trade offs but I want the player to have the freedom to change to a different strategy. - There should be lots of variety. This might not appeal to everybody, but I think that having 200 niche spells is more fun than having 20 general purpose spells. - The system should encourage emergent gameplay. I want to give the players some relatively simple building blocks which they can use build new strategies and discover different ways to play. So here's the system I came up with: There will be 12 types of magic, each representing an aspect of the universe. They will be aligned in a circle, with opposing type across from each other and similar types next to each other: Magic Each type of magic will have spells associated with it. Casting a spell of a certain type will draw the player's magic toward that type and away from pther types. To cast a spell, the player must meet the requirement of being close enough to that magic type. Here is the graphical representation of the spells an example player could cast: Magic The blue area represents the the set of spells the player can cast, the dots represent certain spells. In this example, the player has cast many Death spells, drawing their magic towards Death. The player would be able to cast the zombie spell but unable to cast the heal spell. Should the player keep casting Death spells, they might move close enough to Death magic that they are able to cast the ghost spell. However, in doing so, the player would be moving farther away from casting the heal spell. The player's power level will also affect which spells they can cast. For example, the zombie spell requires +20 towards Death to cast. A weak player with +1 to magic would need to be +19 towards Death to cast it. A stronger player with +15 to magic would only need to be +5 towards Death to cast it. Basically, when a character gets a higher level (not that I'll be using levels, but that's another topic) the blue area on the graph will expand. Each type of magic will have a large number of spells associated with it (think 20+). Spells will fall into 3 general categories: harm the enemy, heal/buff yourself, and utility spells. Each type of magic will have spells that do these things, but in different ways and with different effectiveness. For example, the player is hurt. He might cast the Heal spell from Life, which will heal the wound. Or he might cast the Steal Life spell from Death, which takes enemy life to restore his own. Or he might cast the Cauterize spell from Fire, which reduces the effects of the damage. To make things more interesting, the player will be able to create new spells. A new spell is made by combining and modifying the effects of known spells. For example, a player who knows the Firebolt spell could create a Fireball spell that does fire damage in a larger area. A more interesting example is how a player could combine the Darkness spell, that creates an area of darkness, and the Shadow Jump spell, that lets the player instantly move from one dark area to another. The player could create a spell that casts darkness where the player is standing, darkness some distance behind them, and then casts shadow jump to move between the dark areas. This would effectively create a sort of retreat teleport spell. The hope is that by providing a large number of spells and ways to combine them, the player can be creative and develop new tactics. So that's the basic description of the magic system. Some questions for those who made it through the post: - Are the principles I had in mind when creating the system good ones? Am I missing anything, or mistaken about what makes a game fun (at least for other people)? - Does the system I developed seem like it would, in practice, fulfill the requirements I laid out? - Does the magic system seem like the basis of a fun game? Of course I'd like to hear any suggestions, comments, or criticism.
i really like it,

+ability to customize playstyle , find best spells, best spell combination.
+many spells.

-hard to balance, have to listen to forums to find correct balance.

If you dont add levels , the game wont be played by many.
So i suggest make the spells deal a percent of spell damage , and make
each level increase spell damage, spell defense.

(if you are bored, you can make it so players always have 100hp and players of same level will have same spell damage/ spell damage which will guarantee stat balance), then add armor with more hp or damage , which having drawbacks.

i am looking forward to hearing the next 198 spells,
i hope spells that you will create wont be as repetitive as all other video games which use damage spells or overused status effects that all games have poison,pertify,sheep/frog,paralyse/stun,fear/chicken. Sure you can include them but create your own also.

i would love to see something that is really unique, even if its stupid/weak or too hard to implement.

Maybe some weather effects : spells that change the environment and work with synergy with other spells.
Or spells that force player to use specific play style or suffer big damage.

Still i would like to see something more unique (from those i suggested).

Maybe some spells that change the physics of the game, even if they make player movement arbitary strange, at least it will be fun.

my advise finish the following tasks with the following order :

1) first the spell design / spell database. (description, mp costs, damage , effect , conditions , area effect, eye candy description)
2) construct a nice story.
3) then do the following. Because game graphics are not portable and by the time you finish your engine others more advanced will have been created.
Advertisement
I really like the organic growth of the stats, that graphical visualisation is very neat. Would you also have decay when players didn't practice (this might be leading towards the grind though)

One aspect of "magic" which I think is never significantly captured is the idea of discovery and research (probably because it is difficult to make fun, but there's your challenge!)

At the risk of sounding like a complete goon.., when I was reading Harry Potter one of the things that really caught my imagination in the latter books was the whole idea of studying deep parts of magic that few understand. I can envisage deep quests discovering obscure, forgotten paths of magic.

Also, I really liked the spell creation in Oblivion and would love to see that elaborated in in more depth in a game that focuses on magic.
-thk123botworkstudio.blogspot.com - Shamelessly advertising my new developers blog ^^
I like that idea, as well. I'm guessing your "Blue Zone" will end up being a circle? The really nifty thing about this idea is that the player would drift toward his preference for spells, rather than being hemmed-in by a precoceived "designer" idea of some sort. When can I play it? ;)
Thanks for the words of praise, and thanks for reading through the long post. In the future I think I should try to be more succinct.

Quote:
Original post by sephirath
i am looking forward to hearing the next 198 spells,
i hope spells that you will create wont be as repetitive as all other video games which use damage spells or overused status effects that all games have poison,pertify,sheep/frog,paralyse/stun,fear/chicken. Sure you can include them but create your own also.

i would love to see something that is really unique, even if its stupid/weak or too hard to implement.

Maybe some weather effects : spells that change the environment and work with synergy with other spells.
Or spells that force player to use specific play style or suffer big damage.

Still i would like to see something more unique (from those i suggested).

Maybe some spells that change the physics of the game, even if they make player movement arbitary strange, at least it will be fun.


One of the things I like about roguelikes is it's easy to do almost anything. You can have fully destructible environments and modify physics (as much as a 2D game can have physics) on the fly. I have some ideas - black holes, ceiling collapses, air currents, floods, portals, perception warps, time reversal. I'm interested in any other ideas you might have.


Quote:
Original post by thk123
One aspect of "magic" which I think is never significantly captured is the idea of discovery and research (probably because it is difficult to make fun, but there's your challenge!)

At the risk of sounding like a complete goon.., when I was reading Harry Potter one of the things that really caught my imagination in the latter books was the whole idea of studying deep parts of magic that few understand. I can envisage deep quests discovering obscure, forgotten paths of magic.


This is the spirit that I want to capture with the magic system. The hope is that with a huge number of spells that can do almost anything, and practically infinite combinations of them, magic is a process of discovery. I want magic to feel like discovering new things in a lab, not just repeating prior experiments.


Quote:
Original post by ID Merlin[/i
]When can I play it? ;)


I guess that answers my third question :)
A while ago, I had a magic idea close to this one. I was using a 8 element system like in Lords of Magic: Life, Death, Order, Chaos, Fire, Water, Earth, Air. The problem I encountered was when a spell would use opposite elements, or at least ones that didn't relate well.

For example, suppose a steam blast spell was implanted in the game. I would think the most obvious elements for it would be fire and water. In the Point in a Circle system, a character could only achieve that spell at the highest power level.

There are work-arounds though. For example, a character would only need water or fire to cast steam blast.

That's really my only concern. You've got some cool ideas here. I like how spell options increase with spell power, and being able to use a bunch of specific spells to create larger effects would be awesome.

Good luck!
Advertisement
Quote:
Original post by lukehedman
For example, suppose a steam blast spell was implanted in the game. I would think the most obvious elements for it would be fire and water. In the Point in a Circle system, a character could only achieve that spell at the highest power level.

There are work-arounds though. For example, a character would only need water or fire to cast steam blast.


This gave me an idea. To cast a steam blast you would combine the fire + water attack, and the character would need to be roughly equal in water and fire magic. So a specialist fire or water mage would be unable to cast the spell, but a jack of all trades character could. I think it could be an interesting way to balance specialization vs generalization.
Quote:
Original post by statis
Quote:
Original post by lukehedman
For example, suppose a steam blast spell was implanted in the game. I would think the most obvious elements for it would be fire and water. In the Point in a Circle system, a character could only achieve that spell at the highest power level.

There are work-arounds though. For example, a character would only need water or fire to cast steam blast.


This gave me an idea. To cast a steam blast you would combine the fire + water attack, and the character would need to be roughly equal in water and fire magic. So a specialist fire or water mage would be unable to cast the spell, but a jack of all trades character could. I think it could be an interesting way to balance specialization vs generalization.


Out of interest, how would you show that on the graphy thing? Where would the spell dot go?
-thk123botworkstudio.blogspot.com - Shamelessly advertising my new developers blog ^^
There would be 2 dots, 1 for the fire effect and 1 for the water effect. The player could cast the spell if both dots are in the blue area.
In my perspective, I would say that each element should be an axis and having its own dimension. It such case, you will have a unique point for each spell in a hyperspace, and that each spell only has one point. The circle to me is only a projective representation that is not correct. If you have spells with multiple elements, you will end up with multiple dots, so would it be better to have a shape to represent spells instead of dots, where the boundary would be a integer intervals away from center alond the lines. But a realistic representation can only occur with a hyperspace of multiple dimension.

In two dimension, round equal distant from a point is a circle
In three dimension, round equal distant from a point is a sphere
.
.
.
In multiple dimension, round equal distant form a point is a hypersphere

To clarify view elements as axis of dimensions, let's for instance there are only three elements: Fire, Water, Wind.

Let Fire be the x-axis, Water be y-axis, Wind be z-axis.
Then Fire and Water becomes xy-plane, Water and Wind becoms yz-plane, and Fire and Wind becomes the xz-plane. The combination of all three elements will lie within the first octant (assuming we are using non-negative numbers) without reaching the three planes.

We can then expand this theory and can therefore find that each spell has a unique position within the hyperspace of all elements.

Note: Chess is not hard to master compare to Go. Go is even easier to learn than Chess. The only Go mastered is the 6x6 and smaller boards. Even the 7x7 board is too complicated for supercomputers for a few more decades.

Note: Go boards are divided based on the line that divides the board into half. This perimeter line defines the level of abstraction. When you find this line you will understand why they keep talking about the 3rd [territory] line and 4th [influence] line in the 19x19 board. The Number of the territory line is the level of abstraction, and so a 19x19 board is a level 3 abstraction, which we call "Strategy." The level 2 abstraction is called "Tactics," and the level 1 abstraction is call "Skirmish." The level 4 abstraction has not yet have a name.
I use QueryPerformanceFrequency(), and the result averages to 8 nanoseconds or about 13 cpu cycles (1.66GHz CPU). Is that reasonable?
I though that the assembly equivalent to accessing unaligned data would be something similar to this order:

  • move
  • mask
  • shift
  • move
  • mask
  • shift
  • or

    So it seems reasonable to say that it takes 14 cycles for unaligned data since we'll have to do the series of instructions once to access and once to assign?

This topic is closed to new replies.

Advertisement