D&D Point Buy Stats?

Hello, I am debating making a D&D/RPG esq game and was wondering what the best approach would be to a point buy system when new characters are being created.
New character called Doug
Basic attributes of STR, DEX, CON, INT, WIS & CHAR
All starting at 8 and you have 28 points to spend
However higher numbers e.g. 14 will have a higher cost then one point

Had a look around the internet and I couldn’t find any examples of this so I was wondering if anyone either had a good idea how to do this or perhaps something they’ve worked on that’s similar.

why not start at one? Also want to point out its about a balance in your game. For example the spread between each point, having enemies/bosses that will be able to take advantage of you if you don’t have a specific stat at a set point at that time, weapon requirements things like that come into effect. Your best bet is to play through the game testing each or just go with the flow. :slight_smile:

Make a curve float. This is basically a graph that you can make. Then as the current level goes up, required points could go up to how you’d like them as well.

I suggest:

> Making a list of all possible skills as an enumeration list.
> Making a base character setup class.
> Making a list of all possible class setups as an enumeration list.
> Putting an enumeration switch on the class selector.
> Have an array variable of the enumeration skill list.
> For each class on the switch, add each available skill to the array. (In this way, you will only have skills relevant to that class from the master skill tree.)
> Have a variable called “Selected Skill” that is also from the enumeration skill list.
> On the Selected Skill have it set a variable called “Skill Multiplier”.
> Have an integer for each skill on your selected class, this is the number of points assigned to that skill.
> Now, when leveling up a skill, have it check against the skill points for the selected skill multiplied by the skill multiplier.

Just my 2c - He’s not starting at one because he’s basing it on the dungeons and dragons stat system where a median/average stat is 10 (which gives no bonus and no penalty). It’s a different way of looking at stats than starting at 1 and going up. Also if he’s using more of the D+D style rules, these are just for character creation and won’t change much after initial creation. Most of the numbers in a D+D style character system that affect balance dramatically change with level, ie. attack bonus and saving throws, so these numbers aren’t what you balance your difficulty around.

That said, there’s a lot of ways to go at that. I’d write out exactly how you want your costs to work and see if you can break down the math so you can get away with doing it via a formula rather than a chart of costs.

ie. (arbitrary numbers, you’d have to work it out for your particular case)

9-13 = 1 point each
14-15 = 2 points
16-17 = 3 points
18+ = 4 points

cost = (new rank - 11) / 2, rounding .5s up, with a min of 1 and a max of 4.

That’s just one simplistic example that would be pretty easy to set up a function for, and you could use that to calculate how many points each rank would cost to raise.

Essentially yeah, this combined with Jamen said. You are essentially creating a curve float graph.

Would anyone be interested in a full D&D stat system as a blueprint? Could be a fun project.

I do intend to make this however a secondary method/opinion would always be valued so yeah Id be interested in that system :slight_smile:

I will toss something together tonight or in the next day, I will send it your way. It won’t be D&D specific, but I will make it modular enough to add whatever skills you want.

I really appreciate it :slight_smile:

No problem, I am working on it now. There is a really elegant solution if I utilize Rama’s/TK’s Victor plugin. So I will include that with it. That plugin is the best.

The function “Level Up Skill” needs fixed, but excepting that, this works. I don’t know what’s wrong with that function right now, but I need to finish some other work. I will get on it tomorrow. In the mean time, I will send you the project I have so far.

EBCharClasses contains all the availible classes. In the example provided I made three class:

Black Mage
White Mage

There is also an enum called EBSkills. EBSkills is structured like this:

Black Mage-Ice Attack-8-10

The string is split by the “-” operator. The first part of the string needs to be the exact class name:

Black Mage

The second part of the string is the skill name. In this example, I used spells, but you probably want to make spells a subset, and instead have “Magery” or something like that:

Ice Attack

The third part is the skill base, in other words, up until this skill base, it will only cost 1 point to add to this skill:

8 (Up until level 8 in this example.)

The last part is the maximum number of skill points this skill will cost near the max of its skill ceiling. All skills are capped at 100, I didn’t feel like putting in the cap code.

10 (This creates a difficulty curve to level this ability.)

On the base character ThirdPersonCharacter, the current skills are stored as a string array called “AvailibleSkills” the format is as follows:

Skill Byte Index-Number of Points Spent-Number of Points Until Next Level-Current Level

I also added an exp system with leveling that automatically adds points to spend on a curve. Experience will roll over.

So if you need 500 points to reach the next level, and you get 1000, it will give the next level and preserve the left-over points. You can adjust the functions for whatever curve you want.

There is a game hud that displays level, experience, and next level experience.

There is a level hud that will allow you to spend points and level your skills on a curve based upon string settings.

The L key will open this hud, and will freeze your character using a simple state bool. Press the L key again to unfreeze.


Thanks again for now, forgot to thank you publicly.
Was and continuing to be a great help to my project
for my game there wont be alot of character movement and in-game action, well using skeletal meshes anyway
Should I have all characters as controllers under one parent, or characters under a parent character?

I will have that wonky level function finished some time tomorrow. Thanks for the wait.

You may want to go with a D6 based system because it provides a better curve than a D20 based one, by the way (3D6 is a good approximation of 1D20). Personally if I were modeling after a pen and paper system I’d look at Burning Wheel rather than D&D, as it provides for more organic characters and a more interesting generation system (and better balancing in stat systems).

Bunch of Burning Wheel generated character examples.

The reason I like the above system more than D&D’s is because it lets you generate the character’s backstory exactly how you want, and determine the stats from that, rather than working “backwards” where you’re generating all the stats and class up front and then just making up the backstory to fit that. This still allows you to make a very stylistic character, though, which I also like (e.g., an orphan who gets caught by slavers, escapes, becomes a runner in some army, eventually rising up to sergeant before becoming an outcast/deserter and finally a mercenary sellsword or whatever).

Playing D&D with my main group who lasted through several different 2+ year campaigns, we ended up doing a lot of this stuff on our own, in order to make our D&D campaigns into deep narrative focused games, but that was a ton of work. If that’s how you play at all and you’re making a CRPG you want to have some of that depth, check out Burning Wheel, it will help.

Thanks for the links, I will look this over.