• Hey Guest! Ever feel like entering a Game Jam, but the time limit is always too much pressure? We get it... You lead a hectic life and dedicating 3 whole days to make a game just doesn't work for you! So, why not enter the GMC SLOW JAM? Take your time! Kick back and make your game over 4 months! Interested? Then just click here!

Design Best method for creating spells and skills for the game?

C

Chungsie

Guest
Hy everyone. Hay do'n.

I've been working on a game for a good while, most of the time has been spent building the world. I never really bothered entirely with the design for the player part. My question is how do you come up with things like skills and spells for a project? I have a small idea as to how to balance game play for the player.

FYI: I'm going for a DND style point n click project with fully autonomous environments and npcs. You will be able to enter every building in the game in some way or another.
 
D

DKR_87

Guest
Personally, depending on the scale/scope of the game, I always start with a good ol' spreadsheet.

Currently, I'm actually developing an RTS game with many different units. I've got 3 races, several units per race, with unique abilities for the higher tier units. And they're all on a spreadhseet combined with a schedule and progress percentages to keep me on track.

Adopting something like this, make a journal, or spreadsheet, of spells and skills. But first, what are the core components of your character system? Do you have health? Armor? Magic resistances? Endurance? etc...? What kinds of enemies and threats will the player face? Will the player face several threats at once? Or just one threat at a time? I ask because that could determine if you would bother with AOE spells or not, or just focus on single-target spells.

Come up with something interesting, or cool. Write down some notes about it. Maybe, in the end, you won't use it, but it will inspire you. Like the following:

Corrosive Blast (active ability)
> All enemies on screen (or certain radius from the mouse) have their armor reduced by 20% for X seconds and are slowed by 30% during that time.

Sharpshooter (active ability)
> The next target you click with the mouse takes 200% critical damage.

Powerful Swings (passive ability)
> For the duration of this passive spell, all mouse clicks do 120% damage and stagger enemies for 2 seconds.

Rain of Fire (active ability)
> The next mouse click sends down a barrage of firey arrows around a target location.

Finesse (passive ability)
> The player can safely disarm any traps by right-clicking on them.

I'm literally just making stuff up. But I've found in the past that before I start making skill, spells, or passive traits, I need a good grasp ont the core components of my character system. What mechanics do you plan on implementing? Luck? Stealth? Dodge or Block percentages?

Anyway, come up with a list or spreadsheet of ideas where those core mechanics are manipulated in some way. A long time ago, I filled an entire notebook with spell ideas for a Dragon Age:Origins mod I wanted to create. Spend a day or two and go wild and write stuff down! :)

Hope this helped in some way. Good luck with your project!
 
Last edited by a moderator:
C

Chungsie

Guest
@DKR_87 thank you kindly for your reply. I have the rest of the character sheet made, and with some help last night before you replied I came up with three spells.

My ideas were that there would be a choice of 4 different classes; Paladin, Wizard, Champion and Ranger. there would be a choice of two playable human races. It's going to be turned based combat.

Now my struggle is designing a character sheet to use in the game for character creation and reference :) but I feel I will get there. possibly with ds_lists
 
C

Chungsie

Guest
but I did also manage to work on things basically last night
 
D

DKR_87

Guest
Hey, that's pretty cool!

And I just kind of realized that you might have been looking for advice for how to implement them code wise in game? Here I am explaining to another adult how to write stuff down on paper. Lol

Yes, ds lists and or ds maps are a good way to go, or use arrays
 
Last edited by a moderator:
C

Chungsie

Guest
it's a messy system at best. I streamlined it as best I could, but somethings weren't avoidable with my programming skills.

but that's the work I could do in a day for now. I have to take a break from this tomorrow and go somewhere away from my bedroom.
 

Yal

šŸ§ *penguin noises*
GMC Elder
I can second spreadsheets, they make it easier to realize what info you need to add.
  • Active skills are pretty easy, all you need is to store the index of an object to create, and then it can handle the rest with custom logic (seeking out targets, adding stat ailments, etc)
  • Passive skills are a bit harder, but skills that just increase a variable while active are very simple. Just store a list of their stat changes, or pairs of variableID + value.
  • Passive skills that have custom effects that trigger in certain situations (e.g. "you have a chance to block electric attacks") are kinda hard, I don't have any suggestions I've tried for them. One idea is to have only a certain number of possible trigger effects, and whenever a trigger effect happens you run some script for every skill that has the same trigger (e.g. when you take damage, run all the "trigger when you take damage" skills' scripts and they can modify the damage you take, or add temporary buffs, or stuff like that). This could even be just a series of if(has this skill){do these things} checks if you only have a small number of skills, or building a queue of scripts to execute if you want a more extensible solution.
 
C

Chungsie

Guest
so I went with enums in a persistent stats obj

@Yal I could see separating skills appropriately. The ones in that video are Proficiencies, ticking a box of onoe grants a proficiency bonus. Then there are additional proficiencies that are more custom, meaning additional proficiencies. Then you have spellcasting and attacks. So i would think, skill_prof, skill_add, skill_spell, skill_attack
 
Top