Fix my rpg battle system!

Started by
7 comments, last by Durakken 15 years, 3 months ago
Ive finished a preliminary design for my rpg battle system. the basic concept of the stat generation is that all stats have a formula behind them, this formula allows to make a nice numerical progression (avoiding a simple linear progression). Every class uses the same formula for stats generation, the only difference is that there is a stat preference factor which differs from class to class. With this i can make progression to always favor the main attribute of a class (ex strength for warriors, intelligence for wizards etc...) Character attributes are divided into two categories: Basic and Derived Basic attributes are calculated using the progression formula. Derived attributes are calculated automatically from current Basic Attributes. Example of generating a warrior class: I start by assigning the Preference factor for each Basic attribute: Str: 10 Dex: 6 Con: 8 Int: 1 Wis: 3 Cha: 4 The formula for generating the basic attributes is as follows: (PF * LVL) + (2 * LVL%3) + (10 + LVL) Where LVL is the character level and PF is the Preference Factor for the current attribute. This gives me the following results: Str Dex Con Wis Int Cha 23 19 21 16 14 17 instead of calculating all of the Derived Attributes I will show only the HP calculations since this is the source of my current problems HP: (Con/2) + (Con.PF*LVL) + 10 which in this case equals to 29HP! Now the problem lies in the damage calculation: suppose we pit a lvl1 warrior against another lvl1 warrior using a simple weapon (1d6 dmg) the damage output for each warrior is: Str/3 + Wpn.Dmg on average each warrior will do about 10HP of damage. So if we suppose that the warrior will hit 100% of the time , then the other warrior will go down in 2 or 3 hits! if we add a weapon to the calculations the warrior will go down even faster. This is a non issue since I can consider this as a PVP battle (because its a fight between 2 player classes) ; The real problem is when I try to simulate a battle against a monster Considering a mere goblin will probably have a PF of 1 for Str then the goblin str will be 13. In this case the warrior will take 3 to 4 to go down. I have not tried to take this to the higher levels because my concern right now is how to make enough difference between the warrior and the goblin, I dont want my players to go down by just 4 hits of the goblin in their first battle :) so any ideas? sorry for the long post :)
Advertisement
It may be that I haven't had my coffee yet, but it's hard to see what results you'll get just by looking at your formulas. In the early stages, that's a problem. You'd shouldn't need Excel to help you get an idea of what the basic gameplay dynamics will be.

I had this same problem when creating some overly complicated sci-fi warp formulas. It taught me a lesson: If you're getting these kinds of undesirable results, there's a basic flaw in your thinking.

My advice is to dump the forumla for now and substitute something more simple which has obvious inputs and outputs. Then you can refine it later. You can also consider adding a monster modifier that uses your basic system but scales down enemies if they happen to be a monster.
--------------------Just waiting for the mothership...
I suggest you make different derived attributes calculations for players, MOBs, and bosses. That way, for example, you can for example multiple by 10 the hp of players without increasing the hp of monsters.

First decide on the formulas for players, with a focus on balancing PVPs. After that, you decide on the formulas for MOBs - you will have to decide exactly how much weak you want to make them, compared to players of the same levels. After than you decide on the bosses' formulas, which ofcourse should be stronger than the regular MOBs.
-----------------------------------------Everyboddy need someboddy!
You haven't told us what you're aiming for. From your post it looks like a lvl 1 warrior shouldn't die from 4 goblin strikes. How many should he be able to take?
I usually make up a list of requirements that feels right and then devise a system that fulfills them.

In your case something like:
- Nonlinear progression
- Lvl1 warrior should take 10 strikes before dying from a goblin.
- Lvl8 warrior should take 30 strikes before dying from a goblin.
- Lvl1 warrior should kill a goblin in 4 strikes.
- Etc.

Apart from that, my gut reaction is that the goblin shouldn't hit every time anyway. And if you advance fairly quickly from lvl1, then it doesn't matter as much if you're weak.
lol looks like I got carried away :)

thanks for all the replies, reading all of this has made realize that maybe I should start thinking the whole design from another perspective.

Maybe I should think about the system in the number of hits a character must take before going down , AND THEN work my way up

I wonder how the dnd guys came with such an arbitrary numerical system (or any rpg for that matter)
The d&d guys had over 30 years and hundreds of thousands of play testers to help them refine their game systems. Don't feel that you have to make something to dwarf d&d in its elegance and complexity on the first round.
I guess you are going for a MMO.
Maybe its because your formula is incomplete but it looks like your missing a defense and attack stat.
I.e Str/2=Attack(+ bonus from gear) , Con/2 = Defense (+ bonus from gear)
In a MMO you cant have your raw DMG based only on 1 Stat, Im not sure how your Stat progression is but STR/3+ Weapon DMG will turn out nasty specially if you have no defense check, level correction and secondary modifiers for the formula.
At least STR and CON should play a role on how the DMG output will be, typically you have a random number somewhere in there too so you wont always hit for the same DMG on the same targets.

Its quite tricky to do the math, i wouldn't touch it until our done planning most of your combat game play, classes and skills because you need an idea of how the overall DMG output will be.
Ideally you would balance PvE after PvP, at least thats what I'm doing.
(PF * LVL) + (2 * LVL%3) + (10 + LVL) <--- I am not sure I understand the medium part and its purpose.

(Con/2) + (Con.PF*LVL) + 10 <--- You have the Con.PF already inherent in the constitution so you make it count double?

Having the attributes level automatically is a good choice, personally Iam no fan of systems were you are given the choice to distribute your stats but the class makes it redundant to raise anything but 2 certain stats.

Personally I think you should not start with the number of hits, but more broadly with how you want a battle to be won, in which way victory is achieved.
When you have nothing to say,I advise you talk nonsense :D
Why not just start with basics?

p2HP = p2HP - (p1STR - p2DEF)

set HP to however many turns you feel the player should last and then make the (p1STR - p2DEF) equation take only 1 HP.

From there you can add whatever other modifiers you want

if(p1LCK > random):      if(p2LCK > random):            if(p1ACC > p2AGI):                 p2HP = p2HP - ((p1STR*(random(100)*100) - (p2DEF*(random(100)*100))            else:                 miss      else            misselse:      miss


It's really basic but still illustrates the point...

from there once you get the desired result just add a multiplier to it all so it doesn't look so obvious and then apply your increases by level...

btw this is just off the top of my head and is just a rudimentary example >.>

This topic is closed to new replies.

Advertisement