There's quite a lot of ground to cover in these topics, so starting out lets focus on character stats. I'm going to provide a quick overview about them to get the discussion rolling. As of tonight, we have the following stats:
- HP/MaxHP - character health
- SP/MaxSP - skill points (skills require 0 or more SP to execute)
- Fatigue - each point of fatigue reduces MaxHP by one and remains after battles (until party visits an inn to rest)
- Strength - physical attack
- Vigor - ethereal (aka magical) attack damage
- Fortitude - physical defense
- Protection - ethereal defense
- Agility - characters with more agility wait a shorter amount of time between selecting actions in battle
- Stamina - characters with more stamina accumulate fatigue more slowly
- Evade - the chance that a character has to dodge an attack (currently the only base stat that is not an integer number, but rather a percentage)
Each character has a total of four "targets" on their body (also called attack points...we haven't figured out a good name for what to call these). Each target has a percentage modifier to the stats: fortitude, protection, and evade. For example, a target may have a modifier of 0.25 fortitude, -0.10 protection, and 0.0 evade. This translates to that target having a 25% higher fortitude rating, a 10% lower protection rating, and no change in the evade rating.
How do character stats change?
All base stats grow through gaining experience levels. There is currently no other way of doing so. There are two exceptions to this, however:
- Fatigue is a stat that grows as the character receives damage across battles, and is reset to zero after resting at an inn or other healing points in the game
- The modifier stats on the targets for a character never change
How are stats defined, as well as their growth?
Take a look at the file lua/data/actors/characters.lua. Each character listed there has some initial stats (the stats they are given when they first join the party in the game). The also have a growth table, which contains rows of numbers that this stat grows by for the character for each level. For example, here's a couple of Claudius' current growth stats (these are only defined for levels 1-20 currently):
Code: Select all
-- Begin character growth tables. Every line within these tables contains 10 elements to represent the stat growth for every 10 levels
growth = {
experience_for_next_level = {
100, 112, 126, 142, 161, 183, 209, 238, 273, 315,
363, 421, 490, 572, 670, 788, 931, 1105, 1316, 1575
},
hit_points = {
5, 5, 5, 5, 13, 13, 13, 13, 21, 21,
21, 21, 29, 29, 29, 29, 37, 37, 37, 37
},
Periodic Stats Growth
There is a feature called periodic stat growth that you're probably unaware of. This feature is almost fully coded and has been intended for the design for quite a while, but it is currently not an active feature in the game. This feature takes approximately half of the gains in each stat that would normally be rewarded after reaching the next experience level and divides these gains out across small chunks as the player receives experience. As an example, lets say Claudius is to gain 25 HP at the next level gain. He's currently at level 3, with an total XP of 1000 and needs an additional 400 XP to reach level 4. The algorithm would take roughly half of this number (12 HP) for periodic growth. Then it would divide it into several small chunks (lets say 5 chunks, 3 of them at 2HP and 2 of them at 3HP). Then it would pick XP points needed to get these periodic gains by evenly distributing them across the amount of XP needed to level. So 400 / 5 = every 80 XP a chunk would be rewarded. Once Claudius gets to 1080 XP, he would get either 2HP or 3HP.
Make sense? Below is a comment in the code where this algorithm needs to be implemented.
Code: Select all
// TODO: Implement a gradual growth algorithm.
// The following scheme is suggested for this algorithm:
// 1) Divide all stat gains by 2. Half is rewarded gradually, while the other half is rewarded when the next level is reached
// 2) If a stat does not grow by more than one point, award all growth for that stat at the next level
// 3) Divide the gradual amount of the growth into a number of small sections (ie, +10 HP => +2 HP 5 times)
// 4) Evenly space the growth distributed based on the range of current XP to the XP needed to reach the next level
So, what's the purpose behind periodic growth?. The idea is to give the player continuous rewards for progressing through battles. Instead of having to fight 20 or 30 or more battles before the player sees any sort of progress in their characters, they can see the gradual progression more clearly. And we still reward 50% or more of the total growth for a level gain once the level XP requirements are left, so there's still that "milestone reached" feeling for the player as well.
How does equipment interact with stats?
Equipment does not modify any stat values directly. Weapons provide an increase in attack power (calculated by strength + weapon phys attack power + skill phys attack power). So while weapons effectively provide a boost to strength and/or vigor, they do not directly modify these stat values. Weapons only provide physical/ethereal attack bonuses, and armor apply only physical/ethereal defense bonuses.
How do skills interact with stats?
Other than skills to restore HP or SP, they don't. Stats are used in damage calculations along with a skills attack power, but that's it.
Are there any limits set for different stats? What ranges do we want for the various stats?
Currently there are no limits to the values for each stat. We haven't discussed anything as far as value ranges, but personally speaking I don't want to have absurdly high numbers (think 100,000 or greater for HP/SP, or 1,000 or greater for stats like strength or agility)
---------------------
Now some questions for us to answer. I have my own set of answers here for most of them, but I want to hear what you guys think before I share my own thoughts.

- Should equipment affect more than just attack/defense ratings? Would it be more fun/strategic to have equipment that may also modify other stats? (ex: heavy armor that increases stamina, light-handed weapon that improves agility, and so on)?
- If equipment does modify stats, should it be able to negatively impact a stat? Or should stat changes always be either zero or a positive number?
- Should there be other ways to grow stats other than just gaining experience?
- Do you like the periodic growth feature? Does it make sense given our design goals? Or do you feel it doesn't provide any value?
- Should we change the evade stat so that instead of a percentage, it's an integer figure like all the other stats? If so, what sort of formula (or integer value -> evade percentage) do you propose?