basically I'm making my own RPG/TBS engine named Uruk (making an rpg themed about the epic of gilgamesh) and I am thinking of a combat system similar to the Disgaea franchise or the Super Robot Wars franchise

I'm currently in the process of writing the "character" class (cant name it character since it causes confusion with the primitive data type "character") and right now i've decided to go with the regular RPG route of including the following base stats:

  • strength
  • Agility
  • Willpower
  • Endurance
  • Luck

and the base stats would then dictate the following stats

  • Attack (probably a combination of the strength stat and weapon stats)
  • Physical Defense (determined by endurance and armor)
  • Magic Resistance (maybe something to do with willpower and armor)
  • Crit Rate (luck and agility)
  • Max Health (endurance)
  • Max Mana (willpower)
  • Max Stamina (combination of strength and endurance)
  • Move per turn (determined by character class or agility)

of course there would also be a leveling system with level and experience stats

the biggest problem I am facing right now is whether I should put additional underlying stats (hidden from the play) for leveling purposes (for example stats such as strength per level and max health per level) and how would i go for implementing said underlying stats with a class system, currently I am using an enum within the character object (calling them objects to avoid confusion with programming classes and character classes) to implement the class system and I have been considering on whether I should just write multiple objects extending on the character object for each character class or should I keep on using enums to represent different classes


1 Answer 1


Which Stats?

First, with regards to what stats to implement, you need to work backwards from mechanics to derived stats to basic stats. Determine what effects and mechanics you want during play, and determine how you want those mechanics to work with one another.

The important notion when looking at relationships between mechanics is identifying the aspects you want to be orthogonal. This means which aspects are the atomic elements which are independent of one another.

For example, maybe you want misses and dodges in combat. If you want these to be separate derived stats, you might have derived stats Miss % and Dodge %. Then the question would be, should they be orthogonal? Should a character be able to dodge very well while also being very clumsy and missing often? If so, they should be orthogonal, and be based on atomic, independent basic stats. If you decide they should be related (a nimble person who can dodge well should also not miss very often), they should be derived (at least partially) from the same basic stat.

Hide Stats?

The question of blackboxing (whether or not to hide certain aspects of the system from the player) is a question of simplicity versus control. Do you want to make the choices, UI, and overall game simpler for the player to understand, or would you rather they feel more in control of the stats of their characters?

Multiple Classes or Single Class?

Finally, the question of individual Classes versus a table of variables for a single Class is a question of the level of difference between professions. If the game professions are the same except for stat levels, a single Class is fine. If there are fundamental differences in how the different professions function, multiple Classes might work better.

  • 1
    \$\begingroup\$ thank you! your implication of me needing to "work backwards from mechanics" woke me up and made me realise on how poor my planning has been, so its back to the drawing board for me and i'll lay down detailed design features for my engine this time before i continue writing it \$\endgroup\$ May 28, 2013 at 22:48
  • \$\begingroup\$ Glad I could help =) \$\endgroup\$
    – Attackfarm
    May 28, 2013 at 23:19

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .