So I've been watching people arguing about the skill system already in place, unassigned experience and the such, which -I don't mean to be rude, just pointing out- I think is not compatible with the roleplaying spirit of this game.
Let's cut to the chase, the system I'm suggesting is a learn by doing kind of thing. I won't lie, this requires a moderate to high amount of work to implement depending on the code already in place. Now before you completely overlook this thread, let me please explain the why and how I thought of such a thing.
First, as said above, the current skill system is not the most compatible with roleplaying there is. One can have -let's say- a gunsmith who's been repairing guns for a while and decides to invest the shitload of ue he's been stacking on cracking which is completely irrelevant and unrealistic. This is only an example but it is possible nonetheless, while if he was learning by doing, this wouldn't happen.
"Let's say such a system is in place, this would raise more problems in the long run, one of which is spamming to raise those skills." I guess that's what you're thinking. And that's what leads us to the second point. Spamming can be quite a problem and to prevent this I thought of some time and skill based limitation. To put it simply, the more a character has skills and the more proficient he is in the skill he is using to do whatever, the harder it is for him to get more proficient. So if it's a new character, he will learn something new every -let's say- five minutes while a veteran might need much more time to raise one skill. This adds more to the IC realism -in my opinion- than distributing points on the go and let's players focus more on the actual roleplay than the numbers behind their characters. For the sake of clarity and as an example, a martial artist may end up in a fight, either he wins or loses, unconsiously, his muscle memory will adapt or maybe he discovered a new technique or sharpened his moves. As far as I know, this is the kind of thing that happens in real life that make us proficient at what we do, experience at doing that one thing.
"So there's no skill cap and everyone can master all of the skills." Sure, why not ? In a hundred years if they're lucky.
To put this idea into code, something in these lines written in C++ syntax for clarity :
void Character::useSkill( Skill* someSkill )
{
unsigned int skillProcessingTime = 0;
unsigned int currentTime = 0;
/*
*skillProcessingTime is a variable which stands for the time a
* character may need to unconsiously process information gathered during
* whatever he did.
*currentTime the name says it all.
*/
skillProcessingTime = (this->getSkillPointCount() - someSkill->getSkillPointCount()) * timerOtherSkills + someSkill->getSkillPointCount() * timerThisSkill;
/*
*timeOtherSkills is a constant time coefficient for skill points
* other than the one currently used. example : 5 minutes.
*timerThisSkill is a constant coefficient for skill points of the
* one currently used. example : 10 minutes.
*/
/*
*this->getSkillPointCount a method to retrieve all of a character's
* skill points.
*someSkill->getSkillPointCount a method to retrieve a specific
* skill's points.
*/
currentTime = getTime();
if( (someSkill->getLastTimeRaised() - currentTime) > skillProcessingTime ) {
someSkill->raise();
this->addSkillPointCount();
}
/*
*someSkill->getLastTimeRaised() a method that retrieves when a skill
* has last been raised.
*/
this->doWhateverTheAction();
return;
}
To conclude, this idea may need much more work to make it decent or even plausible but I'm sure it will make this gamer richer and even more enjoyable.