Embed Notice
HTML Code
Corresponding Notice
- Embed this notice@sun
> objects
depends on the codebase.
there is a clear distinction between a room, a player, and an object, generally. in the MUSH lineage it stays this way. there are some attributes and rules that exist in the "hardcode" (the C half) and then a bizzare and shitty functional scripting language (the "softcode") that can control room locks and some stuff. MUSH isn't really for games, its a glorified chatroom.
MUX kind of the same but furries, and i think parts are coded in forth instead.
LPMud and Lambda are full object oriented scripting languages. Though in Lambda the object is, literally, objects, as in you can pick them up and toss them off a bridge assuming you coded the verbs. Both of those basically don't 'have' hard code, the hard code is just the interpreter and the whole game is softcode. MOOs (because the engine was called LambdaMOO) tend to be pretty spiffy and nice.
MUDs usually come from like, DikuMUD or CircleMUD. These are kinda shit. Most of the behavior is hardcode and theres some data files to make template monsters. They play very generic cause you have to edit the C to do anything and most people won't.
evennia is python and uses django to persist objects, so you have a mixture of classical python objects and then in-game objects that get persisted.
if you decide to do it yourself, the most annoying part i got stuck with is the command parser. MOO has a pretty silly syntax for it (there are certain words that break up propositions but those are coded in, which is why hellmoo gets very weird shit like 'switch lantern to on') this is basically having to know how to separate a query in to atoms and find which are verbs and on which objects.
you get the 'fun' of armageddonmu, where 'drink bottle' resolves to drinking the bottle of bleach instead of the water bottle and then you die and have to spend another 800 hours grinding.