Author Topic: Skill based character creation and advancement for Dead Souls  (Read 782 times)

Offline Lash

  • Acquaintance
  • *
  • Posts: 42
    • View Profile
Skill based character creation and advancement for Dead Souls
« on: January 27, 2016, 06:35:49 PM »
I'm a fan of Bethesda Softworks Elder Scrolls series, especially Daggerfall, where character advancement is based on skill use. I wanted to incorporate something similar into Dead Souls. Below is my design strategy and I'm looking for suggestions and comments from the experienced Admins out there:

When logging in (/lib/secure/lib/connect.c) the player is able to choose 5 primary, 3 secondary, and 5 minor skills from the current base Dead Souls skill selections - more skill selections can be added later as needed. This allows for a decent degree of player customization for their character. For example, mage types can be proficient at  blade attack as well as use magic,  etc.

Leveling is based on increasing skill levels. The more the player uses the skill the faster they will level. Currently, I have leveling increases occurring when the player reaches their maximum skill levels in 3 of the primary, 2 of the secondary, and 1 of the minor skills. Along with training points, I also wanted to add a random number of customization points. Stats will cap out at 100 and no more customization points will be allotted when leveling.

I've looked at /lib/lvs/abilities.c and have decided not to mess with the way skills and skill points are increased and alloted so far. Of course the fun part will be creating new lib or domain files that are used for training ( using eventTrain() ) and creating and adding new skills! 

Just wondering if anybody has done this and has some suggestions. I'm in the finalization part on this mod and will post the code when finished, but now it is at the point where making modifications may be relatively easy. Also the mud will be able to be configured for incorporating skill based or class based character configuration, as well as skill based or XP based character leveling.

Thanks in advance for comments and suggestions...

Below is the output for character creation after a player has chosen their primary, secondary, and 4 of 5 minor skills (text displayed is shown before the character enters the game):

You must now pick 1 MINOR Skills.
Picking these skills determines how your character will increase in levels.The
more you use a skill the faster your level will increase.

You may issue the following commands:
         help - shows the help file for SKILLS
         pick SKILL - pick a particular SKILL for yourself

You have chosen the following PRIMARY Skills:
blade attack                                                                   
blunt attack                                                                   
knife attack                                                                   
magic attack                                                                   
projectile attack                                                               

You have chosen the following SECONDARY Skills:
conjuring                                                                       
faith                                                                           
healing                                                                         

You have chosen the following MINOR Skills:
bargaining                                                                     
fishing                                                                         
stealing                                                                       
stealth                                                                         

   Valid skills:

blade defense             blunt defense             concealment               
detection                    knife defense             magic defense             
melee attack              melee defense           multi-hand               
multi-weapon             murder                      projectile defense       
psionic attack             psionic defense          psionic detection         

Skill:
detection

PRIMARY Skills picked:
magic attack
blade attack
knife attack
projectile attack
blunt attack

SECONDARY Skills picked:
conjuring
healing
faith

MINOR Skills picked:
bargaining
stealth
stealing
fishing
detection

If you wish to create a different character use the command 'suicide' after
logging in and start over. Have FUN!

Offline Nilrin

  • Friend
  • **
  • Posts: 85
    • View Profile
Re: Skill based character creation and advancement for Dead Souls
« Reply #1 on: February 23, 2016, 12:35:34 PM »
Pretty nice setup. The way I did it is characters only start with generic skills when first entering the game, like melee attack, melee defense, and hiking (a stamina saving skill for walking around). They also start with 15 "skill slots". They can talk to different NPCs which charge them copper and skill slots to learn new skills. The number of skill slots used ranges from 1-5 depending on the importance of the skill. They level their character still with experience, but experience is awarded not only for killing things, but using skills. More importantly, they are awarded large bonus exp for increasing a skill one level. Finally, each character level they gain gives them an additional skill slot. With this system I was hoping for both an open ended skill tree, and also award players for non-hack-n-slash RP. Further still, it should encourage players to explore, finding new skills they might not know existed.

Offline Nilrin

  • Friend
  • **
  • Posts: 85
    • View Profile
Re: Skill based character creation and advancement for Dead Souls
« Reply #2 on: February 23, 2016, 12:37:46 PM »
I forgot to mention, one caveat of my system is it can make increasing skill levels even more grindy, especially when it comes to crafting stuff.

Offline Lash

  • Acquaintance
  • *
  • Posts: 42
    • View Profile
Re: Skill based character creation and advancement for Dead Souls
« Reply #3 on: February 24, 2016, 02:22:07 PM »
Thank you for the reply and ideas.

Yes, the initial setup for the system I have was pretty hard for character advancement (all skill leveling based so far) so I made two changes:

One was to make sure the character received skill levels in their chosen skills two levels under the maximum for level 1. So, primary skills were initialized as 6/8. secondary 4/6, and minor 2/4.

The other was to modify /lib/lib/lvs/abilities.c so that the amount of skill points required for raising a skill level was less severe than the default values:

Code: [Select]
int GetMaxSkillPoints(string skill, int level){
    if( !Skills[skill] ){
        return 0;
    }
    else if( level == 0 ){
        if(SKILL_ADVANCE){
        return 50;
        }else{ return 200; }
    }
    else {
        int cl, x;

        if( !(cl = Skills[skill]["class"]) ){
            return level * 600;
        }
        if( cl > 4 ){
            cl = 4;
        }
        if( cl < 1 ){
            cl = 4;
        }
        x = level;
        while( cl-- ){
            x *= level;
        }
        if(SKILL_ADVANCE){
        return (x * 100);
        }else{ return x * 400; }
    }
}

Still a work in progress. In my system the character still receives experience points. They are not used for leveling calculations, however, I was wondering if it might be an idea to enable the player to trade those unused experience points in for some extra stuff. For example, trade in a million XP for freedom from hunger, so hunger doesn't impact healing rates, or immunity (resistance) to poison. something along those lines.

Good stuff!