Currently I have a fully functioning level up system; however, I want to expand it into something more like I originally envisioned.
Basically I want 3 experience pools (physical, finesse, intellect) which I think is pretty easy to do. However, I am a little confused on how to make killing a foe with the right “source” give the correct experience.
Increase appropriate variable.
Ok, so I need to assign a variable for each type of experience, and if killed by X weapon it gives the correct variable?
That is one of ways of doing this.
Just making sure my train of thought is going the right direction.
Experience systems vary wildly and have various ways of balancing themselves for a good clean experience.
You can always model yours on existing ones (keeping in mind some experience systems are actually copyrighted so you can’t always just take them 1:1).
Creating your own from scratch can be a little more difficult since you need to resolve all the maths yourself ensuring for a good balanced experience. If you wanted to though you should go out and research existing ones… read the rule books for various table top games since their experience systems are out in the open rather than hidden deep in code (they sort of have to be, since you the player have to calculate your level on paper).
Just comparing the various DnD editions will start to give you an idea of how experience systems can work. But they all tend to follow a similar model since well… it’d DnD, it’s part of what makes DnD… DnD. They may appear different between editions, but once you then pick up a completely unrelated table-top game you’ll notice the huge differences that can occur.
Note that each sort of leveling system sort of lends to different experiences. Like the DnD system is about creating a dynamic system that can be applied to a vast amount of incidents in game because the game is intended to be created on the fly by the DM and players. But if you then picked up say a 90’s JRPG you’d notice the leveling system is very linear and rigid… because the leveling is designed to create a very specific difficulty curve through a pretty linear narrative structure.
It’s hard for us to really give any specifics though since well… we don’t know what experience you’re trying to give your players. That’s up to you. That’s the art of game design.
The math part I have done flat (have extensive experience with table top RPG’s for example and excel in math), it’s more of making that work in code that I am having some issues with. I have a level up system already built, it’s expanding it to work as intended that I am trying to tackle now.
Again… we don’t know your system, so we can’t exactly give specific help.
What exactly are you having a problem with?
What is your level system, how is it supposed to work, and what are you having trouble expanding it into?
Case in point:
What sources are available (we know of physical, finesse, intellect) and what are those sources supposed to represent? And how do those correlate to “foes”?
What is the correct experience to you?
…
We’re talking about very subjective things here.
For example a long while back my buddy and I made a game where you lead a manatee through a series of puzzles to help it escape capture. The entire design of the game was “lets make a game based on Flipper, but instead of a dolphin, it’s a manatee that moves super duper slow!”
The entire experience was designed to be annoying for the player (my partner is a griefer). The “correct experience” was “to annoy and bore the player”.
Several lets plays came out with people whining about it (even one said “I wish this guy were a dolphin” hilarious hitting the inspiration on the head).
Does it make for an unholy annoying experience? YEP!
But it’s also the “correct” experience we were going for.
…
With all that said, I may be misreading your sentence:
You may also be asking… how to increment the correct stat for experience. In which case… it’s still the same thing. I don’t know… what is your experience system and what are those stats representing? What things correlate to it? We need information that only you know!
That is defined above and answered actually. It was a way to split experience into 3 different pools like Fable and make it distribute it correctly. matkoniecz already gave a bit of info I think I can work with to get it running at a fundamental level.
The end goal is this however:
You have three experience pools that level up independently, granting you an attribute point each time you level them up. You spend that attribute point on either base stats, or special abilities/spells depending on the experience pool.
OK… how do you do it in table top?
Usually as 3 different numbers right?
So… in code how do you represent a number? Usually as a float or an int (depending on if you have fractional values or not).
You may also want to create a data container for it:
public class Experience
{
public int Finesse;
public int Physical;
public int Intellect;
}
It sounds to me like you’re asking the very basic fundamentals of “how to program” if you’re referring to “variables” as “pools”. If this is so… you may want to step back and start at learning those basics since well… they’re critical to doing just about anything in a game let it be representing position, to representing experience.
Though when you said:
I took it to mean you already had code that represents your leveling system. So needing to know how to represent it as variables is sort of confusing and not what I expected to be what you’re looking for. Since how did you code something without knowing how to represent data as variables? So therefore I assumed you were asking a higher level question.
Lol you realize I wasn’t actually asking for help with that part right? The question of mine was answered already. But I do thank you for the further help lol.
Also, I prob should use correct terminology more when on the forums. That is entirely my bad. On that note however, I already have a working level system coded…also who said I couldn’t represent it as variables? I think you either misunderstood or projected here. Not sure.
Seriously not picking a fight, just not sure why the giant rant on something as trivial as a misuse of a term (honestly, my bad, i’m pretty lax with terminology), and an apparent misunderstanding. Hell I even used the term variable in my response to the answer of my actual question.