6
« on: January 30, 2013, 04:54:35 am »
Sefuns: These are good if used intelligently. In Fluffos they are handled by the driver I believe, and they can override normal efuns (with the ability to call the efun as efun::blah() as well). Do sort them out by type. Similar to chaos, my mud has a bunch of separate .c files where each file is a category of functions, and all those files are included into the main sefun file. Security is generally handled, in part, by sefuns, and is very important to think of at the beginning. There's no reason why you can't set up a standard library instead of or in addition to using sefuns and I think it's really your call. Less sefuns may reduce memory overhead for each object, but not necessarily.
User accounts: For the love of all that is holy, yes. Anyone arguing that having multiple passwords is more convenient has never been the one tasked with finding stray characters. Not to mention it makes it easier to identify who's who for rules enforcement and punishment. Require an email address too, then you have a guaranteed way to do password resets (it'll happen, it's inevitable). It's better for them, it's better for you.
God characters: I've never immed anywhere where imms didn't have a physical body. That said, I've seen plenty of imms mess themselves up by screwing around with their body specs and forgetting something. Like they're still an elf, but they have a centaur's body, something bugs out assuming they should have a left leg instead of a left forehoof, and they're completely bugged until someone else fixes them. I think I like the idea of imms not having bodies normally, but being able to create and destroy bodies for themselves as needed.
To come back around to security, might I recommend the following: groups defining specific permissions such as read/write access to different filesystem areas (build, lib, spells, etc), then a set of imm positions that contain those groups. You can create new positions and edit existing ones as needed and give them exactly the permissions you want. I've had to deal with trying to add or change imm levels before, and I've had to deal with creating security groups from scratch in a production environment, and I really think this would give the most flexibility while maintaining security.