So, quick overview:
I'm trying to learn basics of game development (actually using Unity with C#, but this won't matter in this case) by taking small steps on a game idea i came up with. I've always been upset with how limited skills and attacks feel in most games (RPG's).
I mean, you're a fire mage, but can't control fire? You can only throw balls and create some fire columns? Come on.
Idk if you know Magicka, but this is the game i'm inspiring mine on. This is a game focused on it's magic system, in wich you have 8 elements. Spells are influenced not only by the amount of an element you charge, but also the order. For example, these are some options with fire:
- Fire + (Life | Death) → Fire mines.
- Fire + Shield → Wall of fire
- Fire + Rock → Throws Rock doing AOE fire damage
- Fire + Rock + Shield → Summons a line of rocks, each doing AOE fire damage
- Fire + Lightning → Fire that also does lightning damage
- Lightning + Fire +→ Bolt that also does fire damage
- Fire: Cone of fire
- Fire + Fire: larger cone of fire
- Fire + Water: Steam cone (melt in one only element)
Also you can have 4 ways to cast them:
- On Surrounds (AOE)
- On yourself
- Use (regular use, depends on the spell)
- On weapon (changes shape of the spell)
I want a game that “frees” the magician inside, that allows you to cast any spell you can imagine (with no physics involved, thanks) .
So, a RTS with this concept ('cause it can't be just a RPG if we take in count the area parameter)… how?
I mean, i can work on a element relation and how it affects others, the system to actually create the spells and so… but how do i code it? I've been reading through forums, and i've seen that very very often, people have 1 function for 1 spell (as for cards games), but there has to be a better approach. If my game ends up with 3000 possible spells, do i have to code all the possibilities?
Not all spells include damage, some possibilities would be:
- Applying / healing debuffs
- Applying / healing Dots
- Various spell shapes
- Beam with penetrations
- Chaining nearby enemies
- Bombs
- Charging a spell
- Physical barrier
- Teleports
- Summoning
- Linking characters stats
- Reviving
- Moving around (push and pull)
The idea that came to my mind was, create a Spell class that would contain the Shape, Elements, target (Tile or Char), caster and other data, but… How then i distinguish what it has to do???