24 Jan, 2010, boblinski wrote in the 1st comment:
Votes: 0
Hello all,

What I'm thinking of doing is having all classes start off as Peasants.. so they will get limited skills like languages, maybe a skill like kick etc..

Then once they're in the game, they must find a guild-master.. and maybe complete a quest of some sort.. to be accepted into the respective guild. There class would then change.. to say Warrior where they would learn many more skills like weapon skills etc.

Some classes would have specializations available.. a char may select one only (probably at about level 30.. (mortal max of 50 btw)) from harder to find mobs etc.

Every class will include all peasant skills.. and all specializations will include their respective classes skills…

But what I'm wanting to know is:

1) Can I simply make lots of classes for the specializations and a class for the peasant.. that are all unavailable at creation.. and then when a char selects a class in game.. do something like ch->class = "class" will this keep their current skill levels at the same? (ie if peasants had the "sword" skill.. and had gotten it to 84%.. then selected a warrior class from the guild-master… would their skill stay at 84% after the ch->class change) and will it change their stats to the new classes prime stats?

That's a rather messy chunk on text.. sorry please ask if you need a certain part clarified.. also I had another question hence the "1)" but I've forgotten it.. I will repost when I remember.

24 Jan, 2010, David Haley wrote in the 2nd comment:
Votes: 0
It kind of depends on what you mean by "class". Dikuland, and all the way back to AD&D for that matter, consider "class" to be more than just a collection of skills. It means things like progression rate for HP, chance to hit, progression rate for chance to hit as well, saving throws, etc. So, in your case, you need to decide what exactly these classes mean. Is it purely a question of skills? You might want to use the class mechanism for the things like "Warrior", and then have a separate field on the character for a specialization – if that specialization only means which additional skills become available.

It's worth noting that you can also make skills available only to certain guilds, so you could implement these classes by making all skills be "guild skills", and you join, say, the "warrior" guild, and eventually at level 30 you join the "Berserker Warrior" guild, giving you yet more specializations. You would have to ensure that people can't join several guilds at the same time (e.g., no "mage" and "warrior" guild). This makes it easy to keep the "peasant" skill set.

Note that a character's progress in a skill is not stored according to the class; it's just skill X has progress Y. The class determines if/when that skill is available (and some other stuff too). There might be code – you'd have to check – that removes skills from characters if their class shouldn't have them; you'd need to fix this one way or another.

Short answer to your question: determine what precisely you mean by "class" before continuing here. Is it just a set of skills, or is there other stuff too?
24 Jan, 2010, elanthis wrote in the 3rd comment:
Votes: 0
Actually, it doesn't matter much at all. Plenty of systems have let class determine things like progression of skills and still have class specialization. Look at the Fire Emblem progression mechanics, which I've always liked.
24 Jan, 2010, KaVir wrote in the 4th comment:
Votes: 0
boblinski said:
1) Can I simply make lots of classes for the specializations and a class for the peasant..

Yes. Make sure every class also has all of the peasant skills though. If players can earn levels as a peasant then hp and mana and such may be an issue, as DH pointed out. But if you need to choose a class before progressing beyond level 1 there shouldn't be any problem.

GodWars has a similar concept - you start play as a mortal, then choose a (supernatural) class. I quite like the idea, as it gives players a chance to play a bit before committing to a permanent choice.
24 Jan, 2010, Sandi wrote in the 5th comment:
Votes: 0
You can drop by my game and see how it works in practice. I've imp'd a few other things you might want to consider, such as letting players choose their stats regardless of class. That way, you're not forced into a high Strength Warrior, you can have high Dexterity, or spread things out.
24 Jan, 2010, quixadhal wrote in the 6th comment:
Votes: 0
Lots of ways you can do it.

** long rambling here, skip down if you don't care **

I personally hate the traditional "class" system, because I don't know what kind of character I want to play until I've explored the game world to see what they do. I rather like what some LpMUD's used to call guilds, which were classes you joined during the game, and you typically weren't tied to a single guild unless you became very specialized.

For example, let's say I level up as an adventurer. I gain hit points, generic skills, etc. I decide I like the idea of shooting people with magic, so I wander around and find a school of combat magic. I become a mage (passing whatever pre-reqs and quests are involved), and now I am a level 9 adventurer and a level 1 mage. I spend my experience to get a few more levels of mage goodness and then hear about a fire mage guild that's based in a monestary outside of town. I head off there and they say I need to be at least a level 10 adventurer and a level 5 mage to even understand their most basic spells.

So, I go meet thos pre-reqs and do several quests to prove my worth, and become a level 1 fire mage. Woot! A while later, I hear about an ice mage guild and go to check them out. The guards there rebuff me, telling me that fire mages have no place here and that I'd have to renounce my guild membership to join them. My own guild said anyone who leaves their guild becomes KOS as a traitor. Hmmmm… Nah!

In wandering to another city, I see a different fire mage guild. Turns out, these fire mages are competition for my old guild, and they teach a slightly different set of spells and abilities, so again, to learn these spells I'd have to leave my old guild. However, they also point me towards a specialist guild that deals only in Area-effect fire magic.

While there, I also stumble upon a thieves guild. They claim to have need of mages, but would prefer that I specialize in illusion and kinetic magic, rather than the flash and attention-drawing fire element.

You get the idea… I'd prefer to have "classes" be a more dynamic thing. Something people can join and leave at their whim, although some guilds may have consequences or restrictions. Leaving one warrior's guild might be find and dandy, but leaving another might gain you enemies for life. Learning the best skills of a given type may require you to leave other formerly acceptable guilds to devote ALL your energy to the super-specilist studies.

** end of rambling **

Since you mention "ch->class", I assume you're on a Diku of some kind. You may want to rename that Class or something, otherwise you can't compile in g++ :)

To actually do any of the stuff I talked about up there, you'll need to implement multi-classing. WileyMUD did this, and it requires you to rewrite a good deal of stuff. Beyond just making ch->Class an array, it also means lots of places that used to use your "class" as a lookup now have to use functions such as MaxClassLevel() or BestMageClass(), since it's no longer a simple answer.

Probably the path of minimal resistance is to remain single-classed but implement hybrids, so you start as your peasant and then change to warrior, and then change to paladin if you wanted clerical abilities or battle-mage for magic. If you specialize more than one tier though, you'll have a LOT of combinations to account for.
24 Jan, 2010, David Haley wrote in the 7th comment:
Votes: 0
elanthis said:
Actually, it doesn't matter much at all. Plenty of systems have let class determine things like progression of skills and still have class specialization. Look at the Fire Emblem progression mechanics, which I've always liked.

It matters quite a bit when it comes to implementation. I was trying to optimize for relatively easy implementation without getting too fancy. Obviously one can implement a system that does all kinds of very flexible things. :wink:

quixadhal said:
Since you mention "ch->class", I assume you're on a Diku of some kind.

That, and we're in the Diku > ROM section. :wink:
24 Jan, 2010, Skol wrote in the 8th comment:
Votes: 0
Bob, I think the main thing to keep in mind is skills/spells on the new class (ie ones on the Peasant that if they aren't on the new class might not be accessible). Other than that, experience per level based on class, race, those kinds of things can adversely affect the game. IE. Say a Mage has 4500 exp/level, a Peasant has 1400, the peasant's total exp is say 14000 at level 10 and he becomes a mage, he'd then have to gain the rest of the experience that a mage would have required to hit 10 (4500 x 10, so another 31,000).
This might not be the case, but those kinds of issues are the ones that come to mind. Also, the issue of gaining spells/skills, assuming he has to get train points etc, the Rom stock way of giving those out would make for a pretty barren new class if the guy switched. Ooh, I got 8 levels now I can get sword! Er, ick. So you'd have to look at those issues as well.