Author Topic: Characters+traits concept  (Read 13669 times)

0 Members and 1 Guest are viewing this topic.

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4730
Characters+traits concept
« on: January 02, 2015, 08:25:53 AM »
Ok, let's outline how to describe characters during packs creation.

1. General info.
This is something that any character can have. Some of them are mandatory, others are optional. Mandatory ones are marked by [*].

*id: unique ingame identifier. Should not have spaces. Example: Estellise_Sidos_Heurassein.

full name: full name, useful only if it's different from name. Example: Estellise Sidos Heurassein

*name: first name only. Example: Estellise.

nickname: character's nickname, if exists. Example: Estelle.

description: short, arbitrary text. It could contain biography, small prehistory and/or short description. Example: A noblewoman who has spent all of her life growing up in her castle. Due to her restrictive upbringing, she has gained most of her worldly knowledge through books.

origin: the name of the source game/manga/anime/whatever. Example: Tales of Vesperia.

elemental: if character is familiar with magic of some kind according to the source, and this magic has some kind of element inherent to it, then it's possible to set it here. Possible elements: fire, wind, earth, water, light, dark, neutral. Neutral means no specific element, and the game sets it by default if you don't set otherwise. You can set only one element currently.
There could be a number after name from 1 to 3, ie "water 1". It describes how well the character masters it. Note that number doesn't mean anything for neutral. High level of mastery means less damage from enemy spells and elemental attacks, and more damage from character's elemental attacks and spells.

occupation: starting occupation. Currently there are Warrior, Prostitute, ServiceGirl and Stripper. The game will set starting occupation randomly if it's not specified.

location: starting location where you could find the girl in the game world.

status: status of the girl. Currently there are two types: free and slave.

2. Relative strength.

As long as you are familiar with the source, you know that some characters are stronger/smarter/prettier than others, especially within one title. This becomes even more tricky when we add levels. And it's quite unintuitive (and difficult for balancing) to set raw numbers for stats in girls data files. Besides, when you know girls stats because you created her, it's less interesting.

So to avoid all complications above we use descriptive system.

1) Levels as such reflect not strenght, but experience and general social rank.

In our game any character could become strong/smart/pretty, as long as there is enough time and desire to do it. To reach high social ranks, characters need high stats, and that means high level too because of stats limitations per level.
So, there are general social levels that tell the game how successful a character should be in terms of level, items, life conditions, etc. The game sets them randomly, depending on Slevel.

You can't see it ingame because it only sets intial conditions.
Its approximate meaning is from 1 (beggar) to 10 (high aristocracy). Depending on it game sets level and other stuff. If not specified, it will be random.

2) Initial stats. Stats are limited by level, so a value that could be very high for lvl1 character will be very low for lvl100 character.
Because of it we use descriptive system. Every stat could be from 0 to 100, and the higher the value, the higher stat will be compared to other stats.
Stats that are not specified will be random.

3. Races.

This part is a bit tricky.
Because it's impossible to code all existing races, there are two types of races, base race and actual race.

Base race is one of the races specified in game\content\db\races.json. Those races have small bonuses and penalties, and they serve as flags. Ie when you make a character with elf base race, the game and other characters know that this is an elf and not a human or a demon. Base races are as general as possible, and when you set a race, you should select a most suitable one.

In case if nothing is suitable even remotely, you can always select an unknown race. It won't have any events or effects though.
Note that base race will not be visible in the game. Base race will be unknown if not specified otherwise.

Actual race is an arbitrary string that will be visible in the game. It's the actual name of character's race, and it does nothing except being used in gui and dialogues.
« Last Edit: January 03, 2015, 12:22:08 PM by DarkTl »

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4730
Re: Characters+traits concept
« Reply #1 on: January 02, 2015, 08:26:10 AM »
4. Traits.
Archetypes.
Tsundere: being on the surface sharp and sarcastic but underneath lovestruck and fawning; characteristic of a gap between acted out actions and feelings in mind
Yandere: a character who is either psychotic or violent or both, except for the main character since she's  obsessed with him.
Kuudere: collected, logical, cold and unassuming, blunt, cynical.
Dandere: a distant, silent, introverted, socially aloof character.
Ane: an "older sister" type. Mature, caring and parenial, takes care of others, practical and helpful.
Imouto: a "little sister" type. Looks up to others, childish, dependant, happy-go-lucky.
Kamidere: a character with superiority complex. Usually proud and/or arrogant and take no shame in stating what (they believe) they are best at. Bossy and commanding.
Bokukko: well, tomboy. Speaks and acts boyish. Confident, competitive.
Impersonal: Almost completely devoid of emotions, mainly relying on logic. It's usually android or something like that.
Deredere: a sweet, friendly character, without any issues with emotions or behavior, like those above. Ie a normal girl for a change.

Modificators. They are less important than archetypes, since they are not always influence behavior, or at least  influence it much less.
Сourageous/Fearful: how well character deals with fears and threats.
Optimist/Serious/Pessimist: how joyful chatacter is.
Virtuous/Vicious: moral principles, except for sex.
Confident/Shy: willpower and self-confidence.
Curious/Indifferent: Outlook, go with fast/slow learner effects.
Energetic/Dawdler: activity level. It describes not speed (= agility and AP), but desire to act.

Body and mind.
Boobs: Small/Normal/Big/Abnormally Large.
Figure and body: Loli/Slim/Chubby/Athletic/Manly. It doesn't have anything to do with pure constitution anymore, instead it describes figure only, something that doesn't change over time in our case.
Not Human: for cases when you can clearly see that the character is not a human. There are races that look just like humans, so this flag is not for them.
Moves: Elegant/Clumsy.
Strange eyes: no matter the race, how different eyes from normal ones.
Scars: even though not too common, they do have a great impact on looks.
Long Legs: they all are not short, but in some cases they are clearly longer than usual.
Great arse: pretty much the same. They all are great, but in some cases greater.

Sex traits.
Sadist/Masochist, Lesbian/Bisexual/Straight, Exhibitionnist, Nymphomaniac/Frigid, Sexy Air.

5. Flags.
Flags are various characteristics that don't affect characters personalities, but affect events and actions.

Magic Gift: an ability to use magic. Characters without this flag cannot use any spells.
Psychic: an ability to read minds, like telepathy for example. There are others, but all they go here.
Nerd: yeah, well, bookish characters and so on.
Combat Training/Adventurer/Assassin: special training flags.
An example: anyone can use weapon, even at 0 skill, but either after special training or with enough experience it becomes natural and effective, especially for self-defence.
Half-Sister: nuff said.
Heavy Drinker/Always Hungry: flags for autobuying system.
Virgin: a temporary flag.
Kleptomaniac: for thiefs.

In case if you wonder where artificial body or alien flags are, they are a part of race system. Like, all angels are aliens, and all androids are artificial.
« Last Edit: October 19, 2016, 10:13:23 AM by DarkTl »

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Trait class* (Being reviewed)
« Reply #2 on: January 02, 2015, 01:15:50 PM »
Code: [Select]
"id": ""Expects a string. This is a name of a trait. This field is the only one that is absolutely required.

Code: [Select]
"desc": ''*string
Description of a trait.

Code: [Select]
"icon": "path/img.png"*string
Icon for traits that have images (elements/race/personality).

Code: [Select]
"hidden": false*bool
Experimental field currently not in use. Determines if a trait should be hidden until PC is experienced enough to see it or there is a person of experience present.

Code: [Select]
"mod": {}*dict
Modifies base stat values, 10% bonus of specified values each 5 levels.

Code: [Select]
"max": {}*dict
Modifies max stat values.

Code: [Select]
"min": {}*dict
Modifies min stat values.

Code: [Select]
"blocks": {}*dict
Adds traits that are blocked for as long as the character has this trait.

Code: [Select]
"effects": []*list
Adds effects.
           
"sex": "female" # Untill we set this up in traits: this should be "unisex" by default.
*string ("male", "female", "unisex")
Not used atm but will be since traits now can be applied to any class.

======
Code: [Select]
            # Types:
            self.type = "" # Specific type if specified. (*string) | JSON: "type": ""
            self.basetrait = False # Flags traits as special traits from respective groups. (*bool) | JSON: "basetrait": false
            self.personality = False
            self.race = False
            self.breasts = False
            self.body = False
            self.elemental = False
           
           
Code: [Select]
"add_beskills": []*list
Adds battle engine skills. Currently not in use but prolly will be.
           
Elemental:
Code: [Select]
"el_name": ""*string
Name of the actual element can be added here, presently not in use since all elements in the game are named as the lowercase Elemental Trait name. We'll prolly remove this and keep that as a rule.

Code: [Select]
"el_damage": {}*dict
Adds to multiplier (base 1.0) if skill used by the attacker has an element specified here.

Code: [Select]
"el_defence": {}*dict
Subtracted from multiplier if a skill used against the defender has an element specified here.
Code: [Select]
"el_special": {}*dict
Not in use but I have ideas for it for when we have more content.

Weapon Focus:
Code: [Select]
"we_damage": {}
"we_defence": {}
"we_special": {}
*dicts
Not yet in use, but will be. This will likely work off weapon types, Like an archer trait will gain advantages when using a bow or a cross bow. I have a lot of ideas/hopes for this but nothing has been coded in yet.



Base mods on init (used for basetraits (aka Class Traits)):
Code: [Select]
"init_mod": {} # {"attack": 100}
"init_lvlmax": {} # {"attack": 100}
"init_max": {} # {"attack": 150}
"init_skills": {} # {skill: [action, training]}
All of these just add the numbers specified once when the character is initiated (or more precise, trait first applied). Nothing more and nothing less at this point. I am planning to add a small portion of this on level-ups as well but we need to wrap the game logic up and test to know what's reasonable.
           
Code: [Select]
"leveling_stats": {x: [a,b]} # {stat: [lvl_max, max **as mod values]}This can actually modify the amounts by which stats increase of levelups. Be VERY careful with this, at the time that I write this, every level-up increases max by 2 and lvl_max by 5. If a character is assigned just one class, effects will be doubled so negative max SHOULD NEVER go over -1 and lvl_max SHOULD NEVER go over -2!

Notes:
Traits are still heavily in development... we've added font color just recently for example.

To create random girls properly, traits will have to carry more info with them so there is no shortage of characters of some specific kind in the game. Maybe we'll even allow adding them during gameplay (but never to remove). In either case, we'll have to add more fields, I just can't tell what those are yet.

Special traits like personality, race, body and breast are mutually exclusive and do not have to carry absolute blocks against their counterparts (anymore).

Elements can be added indefinitely, in case of multiple alignments with spell attributes, mean will be calculated and used. No element == Neutral Element. Noone can have Neutral together with any other element by design. If all other elements are removed, Neutral is restored, but elements, while can be gained, are expected to be permanent (through previous design, I think there is nothing in the game that will prevent removing them atm).
« Last Edit: April 21, 2015, 07:24:32 AM by Xela »
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4730
Re: Characters+traits concept
« Reply #3 on: January 02, 2015, 01:29:47 PM »
Of course this is how I propose it to work.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: Characters+traits concept
« Reply #4 on: January 02, 2015, 02:28:56 PM »
Right :)

Setting relative stats from 1 to 10 isn't a good idea. We should either base those of future ranks or percentages just as we do now but first level the character up to what the modder sets.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4730
Re: Characters+traits concept
« Reply #5 on: January 02, 2015, 03:21:33 PM »
That's how our mobs work. I don't see much difference between them.

I hope you don't think that people gonna calculate how many charisma character can have at 80 level. That's what the system about. You set the level you want, and how every stat should be close to possible max at this level. Without calculating something that the game can do better.

I don't really understand how else you can do it. Explain if you have a better idea. Unless you want all characters to be lvl1 only in the beginning, in which case I disagree.
« Last Edit: January 02, 2015, 03:28:01 PM by DarkTl »

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: Characters+traits concept
« Reply #6 on: January 02, 2015, 03:59:21 PM »
That's how our mobs work. I don't see much difference between them.

That's not how mobs work and it's not the same :(

I hope you don't think that people gonna calculate how many charisma character can have at 80 level. That's what the system about. You set the level you want, and how every stat should be close to possible max at this level. Without calculating something that the game can do better.

Actually if (when) we make an actual editor for the same, we can have it calculate exactly what they end up with, even counting in complex traits mechanics we have now at higher levels... but this is not the point.

I would argue that knowing absolute stat levels are useless. When I develop a character I think about how to assign her stats relative to one another. If a character is not particularity smart but powerful, you assign intel to 30% of whatever the max is and battle stats + constitution high (70 - 100%). It's by far the best system and does trump your proposal both in possibilities and coding complexity (being simpler to code).

It's the same thing we have now but instead of using percentages from maxes at level 1, we level up a character up and use the percentages relative to the max of assigned level. It makes perfect sense... because relative values is all you should care about.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4730
Re: Characters+traits concept
« Reply #7 on: January 03, 2015, 03:00:31 AM »
If a character is not particularity smart but powerful, you assign intel to 30% of whatever the max is and battle stats + constitution high (70 - 100%). It's by far the best system and does trump your proposal both in possibilities and coding complexity (being simpler to code).
...Perhaps I explained it poorly. That's exactly how it is supposed to work.

However, unlike mobs, you set it not from 0 to 100 (%), but from 0 to 10. This is because I want girls stats to be more random, thus high accuracy is not needed. Charisma 1 means charisma from 5 to 15% if it would be a mob.

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4730
Re: Characters+traits concept
« Reply #8 on: January 03, 2015, 04:07:45 AM »
No, wait. I have a better idea. We could use a separate value, random factor. It will be up to pack maker (and players) how random characters stats will be.

So we use the same system like mobs, ie relative values from 0 to 100. Plus with the help of random factor (from 0 to 100 too) we set possible deviations, ie no deviations with 0 and ±100% with 100.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: Characters+traits concept
« Reply #9 on: January 03, 2015, 10:34:04 AM »
No, wait. I have a better idea.

I can't tell if you're being serious or messing with us as part of Holidays cheer :)

Quote
“No! Wait! I've got a better idea..."

"Your ideas tend to result in unnecessary violence, Sergeant Schlock."

"And your point is..."

"Let's broaden the definition of 'necessary'."

-Sergeant Schlock & Captain Tagon”
― Howard Tayler, The Tub of Happiness



In any case, it will work as I've described because it's a good, easy to explain, logical system that is already in play!

It will be up to pack maker (and players)

Yeap, it always is! There is a file a modder/player can include with his/her pack that can make a characters be exactly what they wish them to be, it's actually very simple. In fact one could even not have any script in data file at all and create a character in that file from a scratch.

If you weren't kidding and want your characters to have unique unique, random initialization sequences, I/Thewlis will write you the code exactly as you want it.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4730
Re: Characters+traits concept
« Reply #10 on: January 03, 2015, 12:21:46 PM »
Updated the second post, I'm beginning to sort traits out little by little.

I can't tell if you're being serious or messing with us as part of Holidays cheer
Sorry, it's new year+birthday+vacation, things were vague  ::)

You misunderstood my intentions though. I'm referring to the fact that if you know all character stats because you just created her, it's less interesting for you. Thus I wonder how could we randomize stuff.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: Characters+traits concept
« Reply #11 on: January 03, 2015, 03:36:19 PM »
You misunderstood my intentions though. I'm referring to the fact that if you know all character stats because you just created her, it's less interesting for you. Thus I wonder how could we randomize stuff.

There is no way around it really. You'll know traits, magic, occupation, relative stats/skills of any character you create. As I've said, randomization can be achieved through the modding files.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4730
Re: Characters+traits concept
« Reply #12 on: January 04, 2015, 04:52:12 AM »
Oh, of course I know traits because I'm familiar with characters.
But I don't want to know their level, stats, rank, occupation and location sometimes. To make things clear, let's just say anything that is not specified in data files will be 100% random.

I studied a bit principles of describing personality meanwhile (a professor of psychology is my colleague, it was his birthday yesturday). I can say that if we describe characters like pro psychologists do, then we'll have even more traits than currently.
So archetypes is the way to go, though I don't think it's possible to make all of them mutually exclusive.

Offline livingforever

  • Full Member
  • ***
  • Posts: 138
Re: Characters+traits concept
« Reply #13 on: January 04, 2015, 10:42:25 AM »
Hi!
I studied a bit principles of describing personality meanwhile (a professor of psychology is my colleague, it was his birthday yesturday). I can say that if we describe characters like pro psychologists do, then we'll have even more traits than currently.
So archetypes is the way to go, though I don't think it's possible to make all of them mutually exclusive.
I don't know what you've been reading, but the first thing that comes to my mind when trying to describe personalities is Briggs Myers' model (which is mostly based on C. G. Jung's work).
It would essentially require four binary choices (8 traits in total):
  • Extroverted <-> Introverted
  • Sensing <-> Intuitive
  • Thinking <-> Feeling
  • Perceiving <-> Judging
These few choices allow a quite extensive psychological profile.
Infos on the resulting types here - if you don't trust this source, use Google: "16 personalities briggs myer"
Have fun!
« Last Edit: January 04, 2015, 11:03:03 AM by livingforever »

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: Characters+traits concept
« Reply #14 on: January 04, 2015, 11:26:26 AM »
Guys, try to think in a framework of what we can effectively use in the game and how instead of modeling it of rl concepts. We need simple, almost stereotypical personality types that leave as little questions as possible.

http://wiki.anime-sharing.com/hgames/index.php/Artificial_Academy_2/Character_Creation/Personalities

could work with some trimming (Like we wouldn't need Joyful, Lively and Cheerful as separate types for example). Another option is to make a list of traits in use today that are in use today and see how we can mutate that to a better system.
Like what we're doing?