04 Aug, 2013, Deimos wrote in the 1st comment:
Votes: 0
I've recently taken up the task of rewriting some of the more core components of my MUD because my past design was not as flexible as I would have liked it to be, but I'm having a hell of a time trying to wrap my head around the design and subsequent hierarchy of classes that it's going to take to reach the desired results. Here are my simplified design requirements so far:

  • I'd like to introduce accounts to the game, in the traditional sense. Each "Account" will be used to login and allow players to have multiple characters under one login, which would all share some bonuses, settings, etc.

  • I'd like for a character to be able to be driven by either a human or an AI. Let's call this driver a "Brain", since I know some of you also use that terminology. For a human, this driver can simply be the connection (Client, Session, Connection, or what have you…). This driver wouldn't bring anything to the thing that it's driving except control over the input. In other words, stats of any kind would not be transferred.

  • I'd like to have the ability to introduce things like shape-shifting, and I'm leaning towards carrying stats over to the new form. This leads me to the conclusion that the physical entity walking around the game world is nothing but a generic bag of meat and bones, since it would have no stats (I'll call this a "Creature"). There's really nothing interesting to save for Creatures, though, so this necessitates some kind of in-between entity that stores stats and such (I'll call this a "Soul"). So when you shape-shift, you're actually keeping the same Soul, but it's now inside a different Creature (well.. thematically, it would be the same Creature with a different appearance, but implementation-wise, it would just be a new Creature instance)


What I'm getting hung up on is what defines a "character" when you apply these criteria? Meaning… what is it that you select upon logging in to your Account? Is it actually the "Soul"? If that's the case, if I create a new dwarf character named Bob, would I assign the dwarf race to the Soul named Bob? This seems odd to me, given that race is usually considered a property of the physical entity. But, of course, in such a system, the physical entity is uninteresting and wouldn't be saved. Or would it? This also applies to other properties traditionally tied to a PC, like gender, as well.

I think I'm just too close to the problem and need some outside perspective. So, what do you guys think?
04 Aug, 2013, Ssolvarain wrote in the 2nd comment:
Votes: 0
If I made accounts, I'd apply them to the character.

Not the character to the account.
04 Aug, 2013, quixadhal wrote in the 3rd comment:
Votes: 0
My own design for an account system looks like this:

account:
username
password
security permissions
banned
email
shared bank
characters[]

character:
name
body data
chat channels[]
bank
housing
class data
guild membership
etc…

body:
physical attributes
inventory
race data
etc…

When a player logs in, they would do so using their username and password, and they would then be presented with a screen allowing them to select an existing character to play/view/delete, or allowing them to create a new character. If their account is flagged with builder/wizard/admin permissions, the option to log in as their immortal avatar is also available.

Once a character is chosen, that gets created in the game world and a body is associated with it. The body holds their inventory and equipment, as well as a subset of the commands and abilities they have access to… namely, the ones which would change if they polymorphed, possessed another character, or in any other way were to acquire a new body.

It depends on your game system where you make the class and ability data live. A "classic" DikuMUD doesn't have the distinction, but while someone trained as a warrior should be able to use the same kind of commands and abilities, a warrior in a halfling body will use different weapons than one in an ogre body, and a werewolf might have different options (claw/bite) that a human might not have.
04 Aug, 2013, Deimos wrote in the 4th comment:
Votes: 0
Ssolvarain said:
If I made accounts, I'd apply them to the character.

Not the character to the account.

This would effectively turn the character into the account and the account into the character, no? It's pretty much opposite to any account system I've ever come across. In Guild Wars 2, for example, you create an account and within that account, you can then create multiple characters. I'm not really sure why you would want to assign multiple accounts to a single character.

Care to elaborate a little?
04 Aug, 2013, Deimos wrote in the 5th comment:
Votes: 0
quixadhal said:
Once a character is chosen, that gets created in the game world and a body is associated with it. The body holds their inventory and equipment, as well as a subset of the commands and abilities they have access to… namely, the ones which would change if they polymorphed, possessed another character, or in any other way were to acquire a new body.

Very interesting. I was planning on handling possession different than polymorphing, personally. With polymorphing, everything would stay the same (inventory, race, gender, etc.) except the physical body/entity would assume a new form/appearance. With possession, I had planned on just transferring the Brain from one entity to the other. So, the only thing that would be transferred is the controller that drives commands and such (whether that's a player socket or an AI).

I'll also admit, I spent so much time trying to conceptually group everything into one "character" entity-thing, that I didn't even think about persisting a "character" as a duality of body data + character data.
04 Aug, 2013, quixadhal wrote in the 6th comment:
Votes: 0
The main thing I'm getting at is you have three different sets of data that you want to manage. You have overall player data, which includes their security information and what permissions they have on your MUD… that should be totally seperate from anything in-game.

Then, you have the data related to the character… stuff that is intrinsic to their experience. Depending on your game design, that could be experience points, skills, classes, player-guild membership, NPC associations… things that you'd want to retain even if the character's body were to change.

Finally, the actual body data. This includes all physical items they have, as well as stats, hit points, any special abilities that are tied to having that physical form. If you roll a human mage, and then die, you might be ressurected into a new body. You'd still be a mage and have all your memories and abilities, but perhaps being an elf would grant you infravision.

While a "polymorph" might wel retain your inventory… consider it from a prgramming point of view. Which is easier, trying to temporarily change ALL aspects of your body object and make sure they *ALL* get reverted back, except for things that might be damaged? Or creating a brand new body of the appropriate type and just moving (or even copying) equpiment over to it? If I polymorph into a wolf, how does it make sense to still have my longsword equipped?
04 Aug, 2013, Deimos wrote in the 7th comment:
Votes: 0
quixadhal said:
While a "polymorph" might wel retain your inventory… consider it from a prgramming point of view. Which is easier, trying to temporarily change ALL aspects of your body object and make sure they *ALL* get reverted back, except for things that might be damaged? Or creating a brand new body of the appropriate type and just moving (or even copying) equpiment over to it? If I polymorph into a wolf, how does it make sense to still have my longsword equipped?

I suppose it depends entirely on what kind of polymorphing we're talking about. If a human transforms into a werewolf, then yes - I would fully expect his equipment/inventory to remain mostly intact (he may have ripped his clothes a bit, though). If a mage casts a polymorph spell on you and turns you into a frog, then no, it probably doesn't make sense. Having not come from a traditional D&D type background or anything, I couldn't tell you whether the werewolf-type scenario even qualifies as traditional "polymorphing." I'll be wanting to implement both concepts, though, so, my possible misuse of the terminology notwithstanding, I'm still going to need a way to accomplish either scenario with the hierarchy that I go with.
04 Aug, 2013, Ssolvarain wrote in the 8th comment:
Votes: 0
The best account I've seen are where you create the character and add them to an account list, rather than log into the account and create. Mmo systems are all good and fine, but don't necessarily work the best for a mud. Project Bob has one of the most in-depth account systems you could ever hope to see.
04 Aug, 2013, quixadhal wrote in the 9th comment:
Votes: 0
The problem with creating a character and THEN adding them to an account is… lots of potential for abuse. How do you do the security checks when you haven't logged in yet? What if I spend all the time to make an "elite class" character, only to find out my account doesn't have access to the elite tier (maybe I didn't complete a prerequisite, maybe it's a pay feature)?

Also, making the account be the root of everything means you can ban a troublesome player by account, not by the not-very-secure IP address. It then also gives you the control over who can play your game. You can let anyone register an account (even with automatic email verification), or you can require approval. You can create a special guest class of account that can take over pre-configured characters but not save anything.
04 Aug, 2013, kiasyn wrote in the 10th comment:
Votes: 0
Ssolvarain said:
The best account I've seen are where you create the character and add them to an account list, rather than log into the account and create. Mmo systems are all good and fine, but don't necessarily work the best for a mud. Project Bob has one of the most in-depth account systems you could ever hope to see.


this feels very backwards to me
04 Aug, 2013, Ssolvarain wrote in the 11th comment:
Votes: 0
It is a lot more secure. One password to access all characters is the main security flaw of an mmo.
04 Aug, 2013, Deimos wrote in the 12th comment:
Votes: 0
Ssolvarain said:
It is a lot more secure. One password to access all characters is the main security flaw of an mmo.

In practice, I think most players with multiple characters just use the same password on all of them. Couple that with the relative lack of anonymity that you have in a typical MUD community of < 50 players, and I'm pretty skeptical that this kind of a system would offer any significant increase in security over the reverse.

That being said, this topic is orthogonal to class organization anyways, since both designs would have the same hierarchy/relationships: an Account would still have one or more Characters, and a Character would still belong to exactly one Account, no?
04 Aug, 2013, quixadhal wrote in the 13th comment:
Votes: 0
Passwords aren't the security I was talking about.

With a single account, you have a single point of security for account-level activity. You have one place to look for access to builder or admin commands, one place to check bans, one place to go for snoop logs (to verify abuse or cheating). You also get real numbers about how many people are playing your game, and which things are most popular. If I had to make a character, and keep a seperate password for each, what's the incentive to bother telling you they belong to the same account? In fact, what's the incentive to bother with accounts at all?
04 Aug, 2013, Hades_Kane wrote in the 14th comment:
Votes: 0
quixadhal said:
The problem with creating a character and THEN adding them to an account is… lots of potential for abuse. How do you do the security checks when you haven't logged in yet? What if I spend all the time to make an "elite class" character, only to find out my account doesn't have access to the elite tier (maybe I didn't complete a prerequisite, maybe it's a pay feature)?

Also, making the account be the root of everything means you can ban a troublesome player by account, not by the not-very-secure IP address. It then also gives you the control over who can play your game. You can let anyone register an account (even with automatic email verification), or you can require approval. You can create a special guest class of account that can take over pre-configured characters but not save anything.


If you have account prerequisites for certain features, then allow a character to be linked to an account in creation? Or don't allow that feature to be accessed by a character unless linked to account? I don't really see where the potentials for abuse lie in allowing characters to join an existing account rather than necessarily having to create a character through an account.

As far as banning -players- by using an account system… what's to keep me from just creating a different account for each of my characters if I'm prone to being a troublemaker or cheating? Or creating a new account when you ban my other?
04 Aug, 2013, quixadhal wrote in the 15th comment:
Votes: 0
Hades_Kane said:
As far as banning -players- by using an account system… what's to keep me from just creating a different account for each of my characters if I'm prone to being a troublemaker or cheating? Or creating a new account when you ban my other?


See my first reply. Why should you just be able to create an arbitrary number of accounts, at your whim? Most other MMO's don't allow that. Why should a text MUD? Are you *SO* desperate for players that you ignore common sense and let them dictate the mechanics of YOUR game? If so, maybe they should die, like everyone says they've been doing for the last 20 years. :)
04 Aug, 2013, Deimos wrote in the 16th comment:
Votes: 0
Hades_Kane said:
As far as banning -players- by using an account system… what's to keep me from just creating a different account for each of my characters if I'm prone to being a troublemaker or cheating? Or creating a new account when you ban my other?

Presumably, accounts would come with not-insignificant benefits, or there'd really be no reason to have such a system in the first place. Achievements, stash, quest points, pay-for-perks, etc. could all conceivably be tied to an account and shared across all the characters for that account. Juggling multiple accounts just to safeguard yourself from an account-level ban would put you at a pretty distinct disadvantage compared to the rest of the players, and that's likely to be a good enough deterrent. Not 100% effective, mind you, but it doesn't really need to be IMHO.

quixadhal said:
Why should you just be able to create an arbitrary number of accounts, at your whim? Most other MMO's don't allow that. Why should a text MUD?

It's one thing to "not allow" it, but when it comes to enforcing it, you really have no recourse. It's trivial to use a combination of proxies and free email addresses to sign up for however many accounts you want to on any system I've ever heard about. The only reliable thing you can do is make it so undesirable to have multiple accounts that nobody actually wants to. I guess that's where giving incentives to characters within an account comes into play.
05 Aug, 2013, Hades_Kane wrote in the 17th comment:
Votes: 0
Deimos said:
It's one thing to "not allow" it, but when it comes to enforcing it, you really have no recourse. It's trivial to use a combination of proxies and free email addresses to sign up for however many accounts you want to on any system I've ever heard about. The only reliable thing you can do is make it so undesirable to have multiple accounts that nobody actually wants to. I guess that's where giving incentives to characters within an account comes into play.


Exactly this right here, and exactly the approach we've decided to take. As our account system develops and we do more with it, there will be significant bonuses toward tying characters together, but we aren't under any sort of delusion (or inclination) to think that we can somehow force people to use it. Either they will, or they won't.

If someone wants multiple accounts, you aren't going to stop it unless you go through a bunch of ridiculous measures to enforce proper real-world identification. If you are a commercial game, then sure, quix, some of your points might have validation… but for your run of the mill, average MUD, why -wouldn't- you allow someone to have however many accounts they want?

You aren't going to stop it if they want to, and 99% of the MUDs out there… they aren't in the same league as "Most other MMO's".

And speaking for myself, along with many other MUD players, I wouldn't waste my time with a MUD that requires email verification, much less one that thinks they have a right to verify my identity.
05 Aug, 2013, Deimos wrote in the 18th comment:
Votes: 0
Hades_Kane said:
[…] but we aren't under any sort of delusion (or inclination) to think that we can somehow force people to use it. Either they will, or they won't.

Interesting. Did you poll your players about going to a forced account system and receive negative feedback? As ubiquitous as our email addresses are these days (Facebook, Google, etc.), I can't imagine keeping it private would be a point of contention for players. And I can't think of any other reason why players would mind accounts. Maybe to keep their alternate characters a secret or something?

Out of curiosity, does the login process change if a player ties her character to an account?
05 Aug, 2013, Dean wrote in the 19th comment:
Votes: 0
Deimos said:
Hades_Kane said:
[…] but we aren't under any sort of delusion (or inclination) to think that we can somehow force people to use it. Either they will, or they won't.

Interesting. Did you poll your players about going to a forced account system and receive negative feedback? As ubiquitous as our email addresses are these days (Facebook, Google, etc.), I can't imagine keeping it private would be a point of contention for players. And I can't think of any other reason why players would mind accounts. Maybe to keep their alternate characters a secret or something?

Out of curiosity, does the login process change if a player ties her character to an account?


In my own experience, adding an account system to DBAT has been an incredible boon for both players and staff. It was a while ago now that it was done, but I don't recall players offering any negative feedback about it at the time besides "X thing doesn't work smoothly, fix it please".
05 Aug, 2013, quixadhal wrote in the 20th comment:
Votes: 0
Considering that most MUD's have only a few hundred players (at best), it's not that big a leap to just have an actual human being approve or deny account registrations. This is impractical on a large game with thousands of players, but come on…. how many of them exist, and what are the odds you'll have one within a year or two of starting up?

It's easy for people to use free emails and proxies to work around AUTOMATED systems. It's not so easy if you have to fill something out saying who you are and why you want to play.

Sound heavy handed? Sure it is. But, quality vs. quantity. Do you want a couple hundred players who will actually invest time into your game, play regularly, and provide valid feedback to help you make it better? Or do you want a couple thousand faceless, silent, killbots… who will run around until they're bored and then never come back?

Personally, I think even an automated account system is an improvement over none at all. Sure, people will work around it… but you know what? Not everyone cares enough to bother. People still pirate software, and yet… companies still make money selling it. How many players will go to the effort of "cheating" the system for a free game, just to avoid having all their characters listed under one account? If it was even 1%, I'd be surprised.
0.0/54