RPG math
by Sean "Game Sage/Sage" Ruiz · in Technical Issues · 04/17/2003 (1:00 pm) · 37 replies
I am looking for a book or a tutorial to help me develop a working formula for all the stats of an RPG.
#2
The cool thing about computer RPGs is that the systems can be more complex because the players don't have to do all the calculations. However, it is more important for the user interface to be very simple. Complex stat systems will dissuade the average gamer from playing.
You also need to consider what kind of detail you want for different systems in your game. For example, Dungeons and Dragons has one armor class for the entire body, while Corps' equivalent is specific to different parts of the body. Anyway, my point is that your "formulas" will get more complicated depending on how detailed you want the different systems to be.
As for stats, I prefer having very general stats that affect more specific stats, that affect even MORE specific stats, like in Corps. They have primary, secondary and tertiary stats. It's a great system.
Before you go ripping a system from anyone, be sure its either free, or you have their permission. If nothing else, I would recommend you get someone with an experience designing rule sets to help you out. Just go post on some role-playing forums.
Wow... Get me going on gaming and I get long winded. Sorry :D
04/17/2003 (2:18 pm)
I have a few friends who design RPGs in their spare time -- real RPGs, as in dice rolling and human interaction. They are all connoisseurs of role-playing (I consider myself one too), and have told me that the best thing you can do is play as many different rule sets as possible and see what works.The cool thing about computer RPGs is that the systems can be more complex because the players don't have to do all the calculations. However, it is more important for the user interface to be very simple. Complex stat systems will dissuade the average gamer from playing.
You also need to consider what kind of detail you want for different systems in your game. For example, Dungeons and Dragons has one armor class for the entire body, while Corps' equivalent is specific to different parts of the body. Anyway, my point is that your "formulas" will get more complicated depending on how detailed you want the different systems to be.
As for stats, I prefer having very general stats that affect more specific stats, that affect even MORE specific stats, like in Corps. They have primary, secondary and tertiary stats. It's a great system.
Before you go ripping a system from anyone, be sure its either free, or you have their permission. If nothing else, I would recommend you get someone with an experience designing rule sets to help you out. Just go post on some role-playing forums.
Wow... Get me going on gaming and I get long winded. Sorry :D
#4
Simple formulas are making this a whole lot simpler, while allowing us to ensure a balance between the player class/race combinations.
04/17/2003 (3:46 pm)
Yep. In Bloodstar, we are trying to keep the user interface to a minimum, and make all the factors related to damage and defense in combat under-the-hood, since the combat system has more in common with a FPS than anything else.Simple formulas are making this a whole lot simpler, while allowing us to ensure a balance between the player class/race combinations.
#6
I personally like "point-based" systems like GURPS (a paper RPG). A video game example of this would be Geneforge (see http://www.spiderwebsoftware.com/ ). The problem with Geneforge (which is a pretty cool game) is that you have levels like in a regular game - you just have some points to spend when you go up a level. In GURPS, you spend your "character" points (just the GURPS version of XP) directly on new abilities.
Making a point-based game balanced is most likely even more difficult than with a regular game.
As far as the actual formulas go, you should probably make them as simple as possible.
04/17/2003 (9:35 pm)
The MOST important thing to do is to look around at various other RPGs to get ideas about how character creation and "levelling up" and such are going to work. It doesn't matter so much what formulas you use under the hood, so long as it's balanced (which is actually harder to check than one might think).I personally like "point-based" systems like GURPS (a paper RPG). A video game example of this would be Geneforge (see http://www.spiderwebsoftware.com/ ). The problem with Geneforge (which is a pretty cool game) is that you have levels like in a regular game - you just have some points to spend when you go up a level. In GURPS, you spend your "character" points (just the GURPS version of XP) directly on new abilities.
Making a point-based game balanced is most likely even more difficult than with a regular game.
As far as the actual formulas go, you should probably make them as simple as possible.
#7
04/18/2003 (6:44 am)
Yes, level-based games are much harder to keep balanced, particularly when multiplayer. We had initially had 10 levels in our game, but opted against it until we have a working proof-of-concept for the balance in the combat system formulae.
#8
Races
Classes
Skills
Levels
Minimum/Maximum for all of the above.
ORC- restricted to fighter/shaman classes, and fighting skills
strength speed stamina Intelligence personality
40/80 20/60 60/100 20/60 10/50
min/max stats (same for skills)
I think any system that resembles a traditional system would work. As far as combat/skill tests go i think a Percentage based "chance to hit/succeed" would be the easiest to calculate. With speed, armor and other conditions applying modifiers.
04/18/2003 (7:05 am)
AttributesRaces
Classes
Skills
Levels
Minimum/Maximum for all of the above.
ORC- restricted to fighter/shaman classes, and fighting skills
strength speed stamina Intelligence personality
40/80 20/60 60/100 20/60 10/50
min/max stats (same for skills)
I think any system that resembles a traditional system would work. As far as combat/skill tests go i think a Percentage based "chance to hit/succeed" would be the easiest to calculate. With speed, armor and other conditions applying modifiers.
#9
You are all percieving it as an MMORPG, or somewhat of that style. In essence it is a CRPG, or Classic RPG, along the lines of the stat systems of FF, CT, and many other SNES RPG games. Essentially all stats will grow exponentially. Formulas for that I am begining to figure out, but still, with my choice of system, is complicated. I am considering reducing and cutting several details to keep it all simple.
This is not necisarily a fantasy rpg, as in D&D. The story technically takes place in the year AD4482. If you want detials just tell me and I'll put up my prelude on my plan.
04/18/2003 (1:11 pm)
perhaps i should give more detail...You are all percieving it as an MMORPG, or somewhat of that style. In essence it is a CRPG, or Classic RPG, along the lines of the stat systems of FF, CT, and many other SNES RPG games. Essentially all stats will grow exponentially. Formulas for that I am begining to figure out, but still, with my choice of system, is complicated. I am considering reducing and cutting several details to keep it all simple.
This is not necisarily a fantasy rpg, as in D&D. The story technically takes place in the year AD4482. If you want detials just tell me and I'll put up my prelude on my plan.
#10
One way I will go about skills in a design I have is derivative skill trees. Each Branch starts off of a 'Base' Skill and branches out to the appropriate related skills, and each smaller skill effects it's parent score. This way, players will be able to choose their own assortment of skills to persue without taking up too many resources determining levels. A nice balance IMHO, it will be used in a MMORPG as well. A better way to see an example reverts back to the AD&D style of stats, where all the 'skills' dependant on strength are effected by the STR Score, yet mine works in reverse.
Anywho, the best idea is to make a list of all skills you need to know and see what will effect what and how, then sort them out in effective ways to balance the gameplay.
Or maybe I'm just too much of a numbers/algebraic guy! :P
Sorry for the rather long post, but I hope it helps you out, good luck!
- Christopher Dapo ~ Ronixus
04/18/2003 (3:55 pm)
First off, one thing that should always remain important is the Current/Maximum structuring of any values which may be altered. Secondly, certain values should be marked as Active vs. Dormant, in other words, HP vs. Strength (Hit Ponts can fluctuate actively while Strength would only change in certain circumstances). Another thing to consider is Test Values, which are usually stated as percentages in testing activities and they can differ dramaticly from average stat numbers (like THAC0 in the AD&D games or even damage adjustments/percentages).One way I will go about skills in a design I have is derivative skill trees. Each Branch starts off of a 'Base' Skill and branches out to the appropriate related skills, and each smaller skill effects it's parent score. This way, players will be able to choose their own assortment of skills to persue without taking up too many resources determining levels. A nice balance IMHO, it will be used in a MMORPG as well. A better way to see an example reverts back to the AD&D style of stats, where all the 'skills' dependant on strength are effected by the STR Score, yet mine works in reverse.
Anywho, the best idea is to make a list of all skills you need to know and see what will effect what and how, then sort them out in effective ways to balance the gameplay.
Or maybe I'm just too much of a numbers/algebraic guy! :P
Sorry for the rather long post, but I hope it helps you out, good luck!
- Christopher Dapo ~ Ronixus
#11
Don't be like Mythic.
-brad
04/18/2003 (4:38 pm)
if you use an existing system, be sure to obtain and stay current on royalty/license agreements.Don't be like Mythic.
-brad
#12
04/18/2003 (7:04 pm)
Yep. Mythic screwed the pooch, and now their game is totally unbalanced because they had to start over from scratch with spells/stats/skills/skill points.
#13
Normally, it costs ALOT more experience (or whatever) to get upgrades for higher level characters, and the upgrades they get are only a little better than those that low level characters get.
An alternative to having a percentage chance to hit: have a widely varying amount of damage that can be negative. If you get 0 or less, you miss (and do 0 points of damage). If you get more than 0, you hit and do however much damage you "rolled".
04/18/2003 (9:29 pm)
The stats grow exponentially??? You're going to end up with much higher stats at the end of the game than at the beginning.Normally, it costs ALOT more experience (or whatever) to get upgrades for higher level characters, and the upgrades they get are only a little better than those that low level characters get.
An alternative to having a percentage chance to hit: have a widely varying amount of damage that can be negative. If you get 0 or less, you miss (and do 0 points of damage). If you get more than 0, you hit and do however much damage you "rolled".
#14
So here is where my idea comes in. As the character level increases, the last value will grow exponentially. In some cases it will be completly linear. Some exponential,, and also in several cass. For example, a characters strength will increase steadily at first, but once changing classes will begin to grow much faster, where as for the same reasons his speed will grow quickly at first, but then as he changes will steadily flatline. All i have to do is find formulas for the different possibilities, which means completely unique stat formulas for each stat for each character. It is just a matter of finding these formulas.
04/19/2003 (12:15 pm)
yes exponentially. If any of you have seen RPGMaker2k, in the database you can customize the characters, including how the stats grow.So here is where my idea comes in. As the character level increases, the last value will grow exponentially. In some cases it will be completly linear. Some exponential,, and also in several cass. For example, a characters strength will increase steadily at first, but once changing classes will begin to grow much faster, where as for the same reasons his speed will grow quickly at first, but then as he changes will steadily flatline. All i have to do is find formulas for the different possibilities, which means completely unique stat formulas for each stat for each character. It is just a matter of finding these formulas.
#15
04/19/2003 (8:28 pm)
Where would one find RPGMaker2k? Preferably a demo or something. I'd like to see that in action.
#16
Different formulas for each stat for EACH character could be a real problem if you have alot of different possible characters. And having all these different formulas isn't going to be all that helpful because the player's never going to see them. Instead of having different formulas for different characters, you should differentiate the characters by giving them abilities that actually do different things.
I just ordered an RPG design book from Amazon.com. It's called Swords & Circuitry: A Designer's Guide to Computer Role-Playing Games. It should be a week or 2 before I get it. I'll tell you if it's any good.
04/19/2003 (10:08 pm)
I think that it's actually illegal to download RPGMaker2k. I'm not sure about this, but I think I saw a thread here about that a little while ago.Different formulas for each stat for EACH character could be a real problem if you have alot of different possible characters. And having all these different formulas isn't going to be all that helpful because the player's never going to see them. Instead of having different formulas for different characters, you should differentiate the characters by giving them abilities that actually do different things.
I just ordered an RPG design book from Amazon.com. It's called Swords & Circuitry: A Designer's Guide to Computer Role-Playing Games. It should be a week or 2 before I get it. I'll tell you if it's any good.
#17
Steve- I have heard mixed things about S&C. I actually bought a book within the same series called Programing RolePlaying Games using DirectX 8.0. It doesn't go into detail about the system, but i believe that it uses a linear formula for each stat in what the author created called them Master Character List. The MCL(which i haven't gotten to just yet in the book) is basically a window where u can edit the stats, name, model, etc. S&C i believe goes into just overall concept of RPG design, not so much the detailed specs. All in all I'm INSANE. First, this is my first game, and i have decided to make the most complicated of any game, the RPG. Second, i have no team, no experience, and no money. I just right in my spare time. God, I hate it when i ramble.
Anyway, thank you all for your input. I'm sure in another year I'll have it all figured out.
04/19/2003 (11:49 pm)
Just do a search for RPGMaker2k. Of course its about 5 years old, and it creates tilebased 2D RPG's as in the classic SNES style. Just do a google search, if that doesn't i might be able to get it into a zip and send it to you via email, Alex.Steve- I have heard mixed things about S&C. I actually bought a book within the same series called Programing RolePlaying Games using DirectX 8.0. It doesn't go into detail about the system, but i believe that it uses a linear formula for each stat in what the author created called them Master Character List. The MCL(which i haven't gotten to just yet in the book) is basically a window where u can edit the stats, name, model, etc. S&C i believe goes into just overall concept of RPG design, not so much the detailed specs. All in all I'm INSANE. First, this is my first game, and i have decided to make the most complicated of any game, the RPG. Second, i have no team, no experience, and no money. I just right in my spare time. God, I hate it when i ramble.
Anyway, thank you all for your input. I'm sure in another year I'll have it all figured out.
#18
One important thing is that you should join a project doing whatever it is you actually want to do. If you want to be a programmer, you should do a programming project. Of course, nothing stops you from joining a project as a level designer or something. And that CAN be helpful. But it's no substitute for doing whatever you actually want to do.
When I first started on Garagegames, I joined someone else's project (an rpg). It never got finished, but I learned alot. A big part of why it never got finished is because I lacked experience.
My mistake was that I needed to kind of work my way up. I skipped from where I had done a simple puzzle game to trying to do what was supposed to be some huge, epic RPG.
And I'm just finishing up a simple 2d shooter (I'm retesting some stuff, and I still need art). So I'm pretty confident that I'll be able to complete the RPG I'm just starting on. Yes, I'm sort of working on 2 projects at once, but that's just because I'm at the end of the first and the beginning of the second.
It's unlikely that you would want to join my project (which I haven't even posted on garagegames yet) because your primary skill is programmer. I'm using Java, and your profile says you use C++.
So, in my opinion, you should do the following:
1. make some little "demo" games (i.e. pacman or tetris clones)
2. try joining someone else's project
3. do your RPG
As you're doing 1 & 2, you can keep designing for 3.
Of course, I'm not exactly some smart, experienced programmer who really knows anything. This is just what I've learned from my own experiences.
You can look at http://www-cs-students.stanford.edu/~amitp/gameprog.html for some ideas about this. It's some guy's website (not my website).
04/20/2003 (5:26 pm)
Since you have no experience, you might want to join someone else's project instead of starting one of your own. Then you could get experience.One important thing is that you should join a project doing whatever it is you actually want to do. If you want to be a programmer, you should do a programming project. Of course, nothing stops you from joining a project as a level designer or something. And that CAN be helpful. But it's no substitute for doing whatever you actually want to do.
When I first started on Garagegames, I joined someone else's project (an rpg). It never got finished, but I learned alot. A big part of why it never got finished is because I lacked experience.
My mistake was that I needed to kind of work my way up. I skipped from where I had done a simple puzzle game to trying to do what was supposed to be some huge, epic RPG.
And I'm just finishing up a simple 2d shooter (I'm retesting some stuff, and I still need art). So I'm pretty confident that I'll be able to complete the RPG I'm just starting on. Yes, I'm sort of working on 2 projects at once, but that's just because I'm at the end of the first and the beginning of the second.
It's unlikely that you would want to join my project (which I haven't even posted on garagegames yet) because your primary skill is programmer. I'm using Java, and your profile says you use C++.
So, in my opinion, you should do the following:
1. make some little "demo" games (i.e. pacman or tetris clones)
2. try joining someone else's project
3. do your RPG
As you're doing 1 & 2, you can keep designing for 3.
Of course, I'm not exactly some smart, experienced programmer who really knows anything. This is just what I've learned from my own experiences.
You can look at http://www-cs-students.stanford.edu/~amitp/gameprog.html for some ideas about this. It's some guy's website (not my website).
#19
-B
04/20/2003 (6:39 pm)
I've managed to work some of these things out before way back when I was programming text-based games in dos. Question here is, if I already have the formula, how do I apply it to Torque? Meaning, is there a certain file I should put it in? (BTW I and am a TGE Lisecee) Basicly what I did was I created a certain amount of experience points to be awarded oin the death of a creature, then that went toward going a level up. Then, I set percentage levels of increase per stat (IE HP, MP, Agility, Strength, Morale, Instinct, Weapons handling, etc.) per level up. From then on, let's say that an increase in strength would give a 5% increase on hit point damage toward enemies on the first level up, a 6% on the second, then maybe a 7% or 8% on the third, and so on. Once you have all the stats formulated for one character, you can then copy the code and modify it for another character, and continue like that. Not sure if that helps, but I was wondering if anyone can answer my question about applying this to torque?-B
#20
In responce to you Steve, i know the importance of experience. The problem is finding projects that'll take someone as myself. I have messed a bit with Worldcraft, and i love to design levels. I don't know exactly what i want to do in games. I just know i like to create, and piece everything together into something that works; at least that's what i used to do with my legos. My problem is that programing is boring to me, but when it works i'm happy. I just want to design and create, but with little experience i doubt any will decide to place me in that kind of possition.
04/20/2003 (11:49 pm)
I have basically decided to use the same percential method, i just need to work on it.In responce to you Steve, i know the importance of experience. The problem is finding projects that'll take someone as myself. I have messed a bit with Worldcraft, and i love to design levels. I don't know exactly what i want to do in games. I just know i like to create, and piece everything together into something that works; at least that's what i used to do with my legos. My problem is that programing is boring to me, but when it works i'm happy. I just want to design and create, but with little experience i doubt any will decide to place me in that kind of possition.
Alexander Maisey
For the game I am making, we kept stats very simple (Power, Fighting, Life, Endurance) and make some very simple formulas. For instance, using a 1-handed weapon does 1x your Fighting stat in damage, using a 2-handed weapon does 2x. Weapon speeds and endurance cost vary depending on fighting stat and weapon type.
It's really quite simple to work out the formula. It's just tricky to balance everything out.