PyTFall > PyTFall: Game design

Stats Concept

(1/16) > >>

Xela:
Ok, so some explanations on how stuff works now and some of my thoughts on how it should work in foreseeable future...

Stats:

Stats in PyTFall are what you'd expect them to be, they describe characters capabilities and compare characters to one another.

Logic:


* stats (current base value)
* item mod (modifications by items)
* min (minimum)
* max (top cap)
* level max (top cap by characters level)
mod is required to prevent stuff like this:

You have a character with attack of 90 and max attack of 100.
You equip a sword adding 50 more points.
The total (max) is capped with 100.
However when the sword is removed... stat needs to be reverted back to 90 and not become 50 (100 - 50). Also if a character has gained a point, it needs to become 91 and not be lost due to max cap.

min = self-explanatory.

max = absolute maximum the stat is capable of.

level max = absolute maximum a stat is capable of at current level. This is a way to ensure that seriously powerful items cannot be used fully by a weak character (but would still max them out and be useful to them). Every time a level is gained by a character, lvl_max goes up by 5 and normal max by 2. At the start level_max is lower than the max and stats are capped off with that but as character progresses, lvl_max overtakes (and eventually leaves hopelessly behind) normal max and becomes irrelevant, at that point any item can be used to it's fullest potential. Obviously items can only modify normal max or this system would not work. So a sword that adds 100 to max and 100 to attack is of VERY limited use to a noob character while lethal in hands of an advanced one.


Our stats code does all of the above and more:
- it handles death (and ends the game at ANY point automatically if main characters health reaches 0 (*In case of other characters, it removes them from MCs team, employment/ownership, actions/locations))
- it handles level-ups (we use D&D based system but our (true) progression is somewhat more linear at this development stage)
- it handles bonuses from a complex system of traits (part of the bonuses, some are handled by character class (such as those from added effects))
- it automatically restores health, mp and vitality every time new level is reached by any character

what's more, this is used by mobs, complex characters, simple characters, main character (also very different from the rest).


I am not going to go into what every stat is responsible for because even if I do, in a game this complex it will STILL mean different things to different people. So it's up to content creators to play the game, get the feel of stats and decide how to proceed with the content.

Xela:
*Update:
Notes on new skills system:
Skills have two values (counters), one for training and one for actions, for example:

chr.service += 1 will increase action skill.
chr.SERVICE += 1 will increase training skill.
*Note that just one of the letter must be capital: chr.Service += 1 will do the same thing.

chr.get_skill("service") method will return the current value of a skill. I decided to do it a bit differently than originally proposed below:

Training value is always counted at face value.
Action value is being counted at face value unless it's larger than Training value * 3 and everything above that will be divided by 3.

==================
(Not yet implemented)
Traits and Items should be able to do the following:
Increase training multiplier (better training).
Increase action multiplier (better performance).
Increase retrieving the skill multiplier (when getting the actual skill).

Those should be really low (even 0.001) will have an effect. Maybe some items like misc/consumable may be able to increase values themselves (books for example).

*******************************
My thoughts on addons:

Current system does not however extend to a lot of the jobs planned in the future or will require insane amount of stats to go with it...

So I propose the following:

We add counters of trainings and practices for all kinds of actions. It will be very easy to code and understand, seems simple to balance and to control. These we do not expose to the player and use internally.

For example, strip job would add:
strip_action = 0 *Added during jobs
strip_training = 0 *Added during training

We do not create all of this for every character and they will be created "on the fly as required". Otherwise 0 will be returned.

To calculate the actual skill I propose this:

We get the value from the smallest of the two and subtract it from both (one will become 0). Then we take that value and multiply by 3. With this we assume that the best possible combination is one training session for every practice (making training important and more relevant and assume that it provides knowledge that cannot easily be obtained by practice). Than if practice remains, we, we divide it by two and add the the value. If training remains, we just add it to the value.

Some training can provide more points or points to multiple of these skills (like dancing class can provide dance and strip skill for example).

We remove sex stats (Thewlis suggested that already I think) and turn them into skills.


With this system it will make sense to create "ranks" for all occupations (not just prostitute) and add skills to the requirements (still hidden). As skills are gained, we can enable new traits/effects. This will create a potentially interesting system that is easy to manage and to expand and that can serve us for any kind of future development and can even specialize classes. Some ranks would have to be bought like prostitute ranks right now, some will be gained for free when that makes sense.
======================================================

Lets here some thoughts/other options. WM stats system doesn't really serve us anymore as well as it did in the beginning...

Xela:
My views on stats definitions:

charisma: Combination of good looks and general attraction. Also partly covers willingness of other to follow/agree with the character. This is widely used throughout the game.

refinement: Ability of the character to properly behave in high society as well as good manners (or at least a good knowledge of what good manners/etiquette is). *Barely/Not in use atm.

libido: Lust/wish to get laid.  *Barely/Not in use atm.

constitution: Body strength/endurance. AP depend on this stat making it very important. This is not widely used otherwise.

joy: Happiness of the character, it's widely used throughout the game, mostly to determine state of characters mood, pick mood tags, girls quiting employment and so on.

character: Stubbornness, determines how much a character is willing to resist or defend their points of views. Used widely in the game.

reputation: Supposed to be yet another modifier of how trustworthy other characters in the world believe this character to be or how willing they are to deal with this character.  *Barely/Not in use atm.

health: Damage done to the body of a character. Used all over the place.

fame: How well the character is known, this is supposed to be paired with what the characters occupation. Used mostly to boost brothels fame by girls who work there (atm).

mood: Not used at all and prolly will be deleted tomorrow unless someone objects.

disposition: Relationship status between MC and the Character.

vitality: Used to be called fatigue but we've inverted it. This tells us how tired the girl is, originally was supposed to be adjusted automatically by constitution but I am not sure we got as far as coding this in. Otherwise this tells us when a girl should be allowed to rest.

intelligence: How smart a girl is, this is used already (events/some jobs) but jobs that truly require this we do not yet have. This does not enhance magic as it often does in other games (at least not yet).

luck: Used all over. Does exactly what you'd expect it to do.

agility: A batter stat (speed, decided how how fast a character can attack again) that we use to determine speed/dexterity. This could be used in the game outside of be as well.

Battle stats do exactly what you'd expect them to do!

Rest of the stats will be made into skills. We could loose a couple of stats as well, to make game easier to develop.

livingforever:
Hi!

--- Quote from: Xela on November 07, 2014, 12:28:14 PM ---I am not going to go into what every stat is responsible for because even if I do, in a game this complex it will STILL mean different things to different people. So it's up to content creators to play the game, get the feel of stats and decide how to proceed with the content.

--- End quote ---
Please reconsider that. You need people to test stuff (for both functionality and balance) which is almost impossible if we have no idea what each stat is supposed to do.

You can remove that information later on, but it is important for alpha testing.


--- Quote from: Xela on November 07, 2014, 12:28:26 PM ---We remove sex stats (Thewlis suggested that already I think) and turn them into skills.

--- End quote ---
While you're on that, consider removing the lesbian stat/skill. Either make everything based on body parts (vaginal, anal, oral, digital) or based on gender and sexual orientation.
Have fun!

Xela:

--- Quote from: livingforever on November 07, 2014, 05:40:53 PM ---Please reconsider that. You need people to test stuff (for both functionality and balance) which is almost impossible if we have no idea what each stat is supposed to do.

--- End quote ---

I can write out how I perceive stats tomorrow if required.


--- Quote from: livingforever on November 07, 2014, 05:40:53 PM ---While you're on that, consider removing the lesbian stat/skill. Either make everything based on body parts (vaginal, anal, oral, digital) or based on gender and sexual orientation.

--- End quote ---

With this system, it will be gone as a stat but we need multiple "girls2guy" skills and can function with a single "girl2girl" skill due to a setup of the game. But I expect with the code that creates these "skills" on the fly we can add multiple "girl2girl" skills as well without too much fuss.

Navigation

[0] Message Index

[#] Next page

Go to full version