I am also working on making a PDF Version of this page.This page last updated: Oct 2002
This began as a general mailing to all the Immortals when I was still an Imm on Realms of Despair, I think it was around the winter of 1997. What follows are the results of my brainstorming on some creation issues, take 'em or leave 'em.
Okay... I've been chewing on a few ideas lately and I thought it might be time to share them with the rest of you. I would warn you first though, most of these ideas would require some coding. But before you make that "Oh no! Not Coding!"-face, please take the time to read them.
A good, baseline "World" map. As things are now, areas are generally just plunked down hither and yon with little or no thought of how one area relates to the next. As an example, you can walk out the east gate of DH to New Thalos and you're in a desert, while at the same time, if you walk out the south gate of DH and follow the river west, you're suddenly in a frozen wasteland. Seems a bit silly, doesn't it? I tried to lay out a generalized map of the world and I did the best I could in relating all the current areas (not including those that supposedly exist in another "plane", ie: Astral Plane, Galaxy, etc) in a logical manner. Sure, each "room" isn't the same size when we're looking at an area, but it would be nice to relate things so that a "frozen waste" doesn't overlap onto "the great eastern desert"... If we could agree on a baseline, then we could use that map as a tool for implementing new areas and not have everything clustered within a dozen or so rooms of DH.
When starting a new MUD, or planning to revise an existing MUD, I'd suggest that you lay down a good baseline map and insist that all the new areas be placed where they fit best, rather than just plunking them down. Areas should fit their location and environment too!
When Witherin mentioned this idea to me, I thought it would be great to have several "base" towns that PC's could adventure from rather than having to always return to DarkHaven.
On another MUD I tried when I was first experimenting in the "mud world", I found that they had started out with a "baseline world". They even gave you a map when you started off, albeit a very general ASCII map, but it was enough to know that you were in Town A and if you wanted to get to Town B you had to go generally northeast from Town A, or whatever. They also had it set up so that new players would start out in different towns, although I don't know if it was random or not, and as you progressed you could choose your recall point by going to a special mob. If we added a "recall vnum" to the pfile, we could customize a player's recall point and we could also mset it when we wanted to change it.
PlayerA may begin his life in TownA, but he may join a Guild in TownB when he reaches 20th level and his recall point will be changed when he joins the Guild. Then somewhere down the line he discovers TownC, and wishes not to recall to the Guildhall in TownB, but to recall to the Guildhall in TownC ... Once again, mset his recall vnum and now he recalls to the Guildhall in TownC.
How would we change the recall vnum? MPMSET or a version of it... Modify the induction code to automatically mset the player's recall to the default Guildhall (probably in DH)... And if a player wanted to recall to TownC, he would have to physically WALK to TownC and find the mob/guildmaster there that could mpmset him.
Witherin did a great job of setting up the original pantheon for RoD. A whole system of Greater Gods, Lesser Gods and Minor Gods... Everything from "The god of Goodness" to "the god of Thieves". EVERY god doesn't need to bestow something on a PC that worships him/her/it, but it makes great steps towards role-play if every player can have some kind of deity to worship and occasionally call upon when they run into trouble. A big problem we faced in the beginning was that players were given too much to begin with (in regards to deities) and then resented the fact that we had to downplay some of the god's powers in the interest of "game balance". It's so easy to go overboard, but it's a real pain to have to backpedal... Starting off small is a much better way.
I'd like to see weather have a greater effect on PC's. Seasons...Rain...Heat... They should all have some effect on the PC. Imagine not being able to cast a spell properly because your hands were too cold? (Ok, I'm dreaming now, but still...)
Moon phases The phase of the moon could probably be linked to the calendar, or it would be better if the moon ran on it's own cycle much like in RL. Maybe some spells would work better when the moon was full?
I've kicked the idea of Mortal Housing around in my head, and I came up with a couple of solutions that might work.
First, add 2 more settable vnums to a Mortal's pfile. The first vnum would be his "house number" and the second vnum would be his "guest number", this eliminates the need for keys and their possible loss due to crash, DT, etc.
Second, code a roomflag called "house" (or "home"), and use that flag to add "noastral", "noportal", "nomob" flags to a vnum. Basically, you want to add all those flags in one-shot. Only the owner of a house, or his invited guest should be able to enter the house, uninvited guests should receive some sort of message that they're unwanted or uninvited.
Next, you set aside a block of say 1000 vnums, depending on the size of the MUD, and designate them as "dwelling" vnums.
The whole idea is; A mortal can purchase, with glory or cash, a "house" of say 1-room and add all descriptions and stuff that he wants with the help of an Immortal. The Mortal is then say, "homeset" to the vnum of that room. That vnum would be stored in the pfile as "home", and only a person with that vnum could gain access to that specific room.
So now a person wants to have guests in their home, fine add an "invite" and "uninvite" command. Invite would allow another person to enter the home of the person doing the inviting, uninvite would force the person to leave or remove their access to a home. Syntax; invite (person) or uninvite (person). Uninvite should work even if the person is not currently in the home, and if they are already in the home, it should send the person back to his or her recall point.
Finally, I suggest that a person would lose their "guest" status whenever they log-out of the MUD, this would stop guests from abusing another person's home when they weren't around. Also, I think it would probably be a bad idea if a home's contents were saved (as donation rooms are saved) as this leaves the MUD open to abuse. A much better idea would be to use a locker-type code as some other MUDs already do.
This idea is probably fairly code-heavy, I could be wrong...
How many times have you entered a new area and thought to yourself how easy it was to wander around. Afterall, usually there are only a few paths you can take, some leading to danger and others leading to your goals. Wouldn't it be nice if you could travel "off the beaten path" and go from point A to point C without having to pass through point B on the way? That's where the idea of a "Random Terrain Generator" comes in.
Generating random terrain could be an extension of the current "Exdistance" code, except that the "terrain file" would be area specific. When a player chose to wander off of the path built for him, the terrain generator would kick in and construct rooms on the fly using descriptions from the area-specific file. It might be a good idea to allow a build to specify limits to how far a player could travel in one direction, though.
A more simplistic approach might be a change to the exdist code to allow for area-specific random description generation, although this might take up more disk space than is comfortable.
Wouldn't it be nice to use Ultima-style travelling within a MUD? Simply wandering across country rather than being stuck to set pathways between areas would be a treat.
(This idea has been partially implemented on Rod already and available in the newest versions of SMAUG as far as I know.)
The basic idea is to make a mob that will deal with (THIEF), (ATTACKER), and (KILLER) flags [maybe even (LITTERBUG) for fun]. Supporting code needed for this idea would be: MPBRAND, MPPARDON, and an 'ifflaged' ifcheck.
The scenario is; Player steals from mob, mob catches player stealing, mob would MPBRAND Player as (Thief). Being branded as a thief, a player would be refused service at all shops (I think the coding for this is already present). Player, wanting to remove his Thief flag, goes to the Magistrate mob. Magistrate would have a program to check Player's flag [ifflagged($n) == THIEF], the mob would then say something like; "Player, you have been branded a thief. If your plea is guilty, then your fine is 2 million coins, otherwise begone from my sight!" Player would then have the option of paying 2 million coins and the mob would "MPPARDON (Player) thief", or player could go without shops.
Similarly, someone flagged as (ATTACKER) [Although I prefer "RUFFIAN"] would have to seek the Magistrate for a pardon, and probably pay more than someone flagged THIEF. Perhaps anyone flagged RUFFIAN would be refused service at "healing" mobs because of his/her shady past. Being flagged as a KILLER would require a huge fine, or maybe even jail time to have the flag removed. And lastly, a LITTERBUG flag could be added to add a bit of "fun" to things... A janitor mob who sees you dropping trashes might MPBRAND you as a LITTERBUG and you'd be required to pay a small fine to have it removed.
(This idea has been implemented in the newest version of SMAUG.)
I'm suggesting a change be made to the way resists and immunities are handled. Rather than a resist or immune being simply a yes/no kind of check, perhaps resists could be coded as a percentage. An IMMUNE would simply be 100% resistance, while a RESIST would be 50% resistance. This would allow builders to make finer changes to armors/weapons so that a "suit of platemail" doesn't simply make one immune_pierce, but merely something like 'resistant to pierce by 75%'. Being resistant by 75% would mean that any damage done by a pierce would be reduced by 75%. This, combined with layering, would allow for a better selection of armoring... One could wear a suit of plate with padding underneath and have a 'resist pierce by 40%' and 'resist blunt by 10%'.
Mages have mana, Vampires have bloodpoints, how about we give warriors (and any new warrior-type classes) "Maneuver Points" [MPs]. MPs would be based on three things; Strength, Intelligence and Dexterity.
The idea is, if a warrior wishes to "invoke" one of his skills, s/he must expend a number of MPs in order to be successful.
Some suggested skills, you ask? Well how about a "Kindred Strength"-like skill which increases a warrior's strength for a time? A "Damage Absorbing" skill that would increase the amount of damage a warrior could take in a battle? A "Valiance"-type skill that would increase a warrior's resistance to being stunned? A "Truesight"-like skill that would increase a warriors resistance to being gouged? An "Armor Repair"-type skill that a warrior could use to make temporary repairs to damaged armor and weapons? The list could go on...
While flipping through my RoleMaster books, I read over some of the possible character classes and thought some of them might be useful for us in making new classes. As Blodkai states; "The problem with making new classes is that the old classes already share so many things that it's hard to make something completely new." What we need to do is to make NEW skills and spells, some based on the old ones, and some totally new and limited to specific classes. In my opinion, each class should have at least ONE spell/skill that makes it unique.
Here's a list of some of the classes (professions) in RoleMaster;
The Realm of Arms; Your basic hack & slay artists. FIGHTER (your basic Warrior), THIEF (your basic Thief), ROGUE (a Warrior /Thief), BURGLAR (an acrobatic thief), WARRIOR MONK (a Warrior that specializes in unarmed combat and martial arts), BARBARIAN (a warrior that uses very little armor), and a CAVALIER (a fighter that follows a specific code of ethics and serves a lord).
The Realm of Essence; Pure spell users that draw on universal "mana". MAGICIAN (an elemental-type spellcaster), ILLUSIONIST (a spellcaster that specializes in misdirection and confusion), ALCHEMIST (a spell- caster that manipulates physical matter), and a RUNEMASTER (specializes in power gained from runes, glyphs, wards, circles and Power words).
The Realm of Channeling; Pure spell users that get power from "above". CLERIC (spellcasters than channel power from their deities), ANIMIST (very Druid-like, they specialize in studying living things, both animal and vegetable), HEALER (spellcasters that specialize in healing, taking the injuries into themselves, then healing themselves slowly), and a SHAMAN (whose power is manifested through spirits and nature).
The Realm of Mentalism; Pure spell users that draw power from "within". MENTALIST (their spells come from the power of the mind), LAY HEALER (their spells aid others in healing wounds/diseases), and a SEER (their spells mostly deal with gathering information).
Combinations of Two Realms of Magic; Hybrid spell users. SORCERER (combines Essence and Channeling, concentrating on spells of destruction), MYSTIC (combines Essence and Mentalism, concentrating on misdirection and modification), ASTROLOGER (combines Channeling and Mentalism, concentrating on information gathering and detection), ARCHMAGE (a spell-caster who can draw on all 3 types of magic), and NECROMANCER (hybrid of Channeling and Essence, specializing in summoning communing with, and control of the dead), and a WITCH (hybrid of Chan- neling and Essence, drawing power from deity(s) and demon(s), specializing in conjuring and nature-type magics).
Combinations of Arms and Magic; Use spells to augment their weaponskills. MONK (semi spell-casters who specialize in unarmed combat), RANGER (very much like our Ranger with spells meant to control the outdoors and weather), BARD (semi-mentalists who specialize in spells of lore, sound and item use), PALADIN (an "Arthurian" Knight that has healing spells), NIGHTBLADE (an assassin with spells of illusion and distraction), DELVER (a semi-spell users with spells dealing mostly with elements and item construction), and a BEASTMASTER (a semi-spell user that has an affinity for animals and can bind them to his service).
This is a mix of things from my own head, and things drawn from other sources that I have on hand. I've seen a couple variations of these already implemented on other MUDs, but don't go screaming that I copied them, I didn't.
(Some of these ideas have been implemented in the newest version of Realms of Despair.)
Forage: A skill for gathering food from the surrounding environment. Player would have to be a an "outdoor"-type sector, and would be able to find 6-12 kinds of food objects (roots, insects, fungus). Maybe this can be combined with the search for spell components for new Druid and Ranger spells?
Camouflage: A skill that can be used for hiding objects. It would simply add a (Hidden) flag to an object, much like "dig" adds the (Buried) flag and would require a "search" to uncover.
Awareness: A skill that would function like a "detect hide" and "detect sneak".
Ambush: The ability to make a very precise "backstab"-like attack upon an unsuspecting opponent while the attacker is sneaking (or stalking) and hidden. Stalk: Much like "sneak", but is "target-specific", ie: stalk deer.
Trap-Building: This would probably be very difficult to accomplish, but the general idea would be the skill to take several components and construct a 1-shot trap with a specific type of trigger attached to it. This idea could be too ambitious.
Directional Sense: A skill something like "Track" that would give you an idea of where you've been rather than where you're going. The most basic skill would allow you to always have a "feeling" of where "home" was, while a more advanced application would allow a player to specify an "anchor" point and always know where that was in relation to their current position.
Enchant Armor: Permanently add an enchantment to non-magical armor. Would function something like "Enchant Weapon".
Etch Rune: Would allow the user to etch their weapon with a 1-shot weaponspell, that would invoke on a successful "to hit". Has a chance of damaging/destroying the weapon when cast.
Concoct Poultice: A skill used to make a salve that will confer a specific spell to a player that applies it. Would require some sort of material component to make the concoction and perhaps fire. (A good Druid skill)
Blur: A spell that will "blur" the caster's outline, thereby making them harder to hit.
Fear: A spell, that when successfully cast will lower the victim's HR and DR slightly, and also has a chance of causing the target to "flee in terror". Courage: A spell that would give a resistance to the above "Fear" spell.
Battle Cry: A spell/skill that temporarily confuses and demoralizes a foe in battle. Perhaps it would invoke a temporary deduction to a mob's/foe's HR and DR.
Earthmight: Spell that transforms the caster's body to resemble that of a troll, taking on increased size, strength, and physical abilities. Would function something like "stoneskin", "trollish vigour", increase the user's DR, and lower user's charisma, int, wisdom and HR.
EarthCloak: Makes casters undetectable by sight, sound, or smell. Would function something like "sneak", "hide" and "invis" and only work in the outdoors.
Homonculous: A spell a mage could use to invoke or create a familiar "demon". Spell would require a material component, perhaps a "mandrake root" or the like, and fire. The strength of the familiar would be based on the mage's level.
Druidstaff: A spell which would invoke a "staff" object for druids, which depending on the level of the caster, would have certain magical affects. A material component(s) would be required.
Barkskin: A spell that causes the caster's skin to take on a rough bark-like form. Much like a lesser form of "stoneskin". Nightvision: skill/spell that allows user to see in the dark as if it were regular daylight.
Spider Climb: A spell that allows caster to climb a surface as if they had a climb skill of 100.
Body Weaponry: A spell that hardens the caster's hands and feet so that the caster can fight unarmed but do damage as if he was holding a weapon.
Mountain Heart: Allows user to absorb more damage than he would usually be able to, and put off the effects of the damage until later. Would probably give something like a 25% boost to HPs for a fixed period of time, after which those HPs would be lost, possibly causing death.
Charge: A warrior-type character could use this attack if they were mounted. It could only be used to initiate combat, and it would cause damage comparable to "backstab".
Two-handed Weapons and/or Polearm Skills: A two-handed weapon would do more damage than a single weapon, but less damage than two weapons dual-wielded. Weapons flagged as "two-handed" could finally break that +10 DR limit and provide variety.
Shield Block Skill: Similar to parry, but performed with a shield. A person holding a shield could use this skill to block weapons, missiles, etc.
Originally mailed around sometime in the summer of 1998.
I actually had an interesting discussion with someone on rimm today about rooms with "virtual space"... Apparently he already has something similar to what I was thinking of working on his MUD, although only in 2 dimensions. My "grand idea" involves 3 dimensions or axis; X,Y,Z.
My basic idea is this; Builders would be able to flag certain rooms as "expanded". Much like a "tunnel" flag, an "expanded" flag would bring some new setable values into a room, values of width (X), length (Y), and height (Z). For simplicity sake, each coordinate"box" would be considered to be 10'x10'x10'. So if you wished to convey a larger room, say a throne room, you could set the "expanded" flag, and set the X & Y values to say 3 & 5 ... This would mean that your "Throne Room" is now 30' wide by 50' long by 10' high. Now, to locate a player, mob, object within this room would require a 3-d array; Players could be located within the array at say (1000:2,3,0) or (vnum:X,Y,Z).
A graphical representation of this room would be;
Description-wise, the overall description of the room would be the same for the WHOLE room, with some minor exceptions. Extra room edits could be keyed to show up when the Player was on a specific coordinate, or if the player looked in a specific direction. Perhaps someone who was "config +brief" would see only these specific "coordinate keyed" desc's, something like "Throne Room. There is a door in the wall to your right." and it would only be seen when you're standing at (3,3,0) or if you looked toward (3,3,0) from another coordinate Say from (2,3,0) you looked northeast, you'd see "A door in the middle of east wall".
As for exits, you could link exits from one room to another room and specify a coordinate for the exit to link to. IE: Say you wanted to link an exit from room 1001 to room 1000, but you want the exit to be in the middle of this expanded room. You'd stand in room 1001 and type "redit bexit w 1000:3,3,0" and a Player leaving west from room 1001 would find themselves in the middle of east wall of room 1000.
To display it in graphic form:
To take this a step further, we can go into 3 dimensions. Say room 1000 is part of a street, and this section of street runs 30' wide x 50' long x 30' high. Now you can add MORE interesting things because people who are flying are free to rise above the street level and yet be in the same "Room" as their buddy who's standing on the street below. And say this street has a 2-story house on the east side of it, now you could fly or climb up to the 2nd story window from the street!
Now, you'd have to generate some code for line-of-sight; A player standing in the doorway of the house looking west would be able to see the whole of room 1000 and anything on it, but a player standing in at the far ends of the east side of room 1000 might not be able to see someone standing in the doorway. Similarly, someone standing in the doorway might not be able to see someone on the wall OVER the doorway unless they stepped outside and looked up. And if you wanted to get really fancy, you might make it so that large objects in the expanded room could actually obscure a player's line-of-sight if someone was standing directly behind the object. In the same vein, race may affect what a player can and can't see because they simply can't clearly see the end of the room (ie: You see someone far to the north of you).
Now let's fly up 10' from (1000:2,3,0) to (1000:2,3,1)
If you go up 10' more, to the limit of room 1000 (remember it's only 30' high), we're up at the roof height of the house, there are no rooms for us to access there, so looking east we'd only see "The roof of the house" or whatever coordinate linked ed was there. Up at this height, 30' above the street, dropped objects could become missile weapons, those below you wouldn't be able to attack you without a ranged weapon and falling from this height (if your spell wore off) would cause actual damage.
Now, what would the player see? Let's assume the player is standing at ground level on the east side of room 1000, a player with "config +brief" might see something like this;
To translate the above page:
Now, if you went north 1 space, you'd still be in room 1000 but your position would change relative to those around you; The doorway would no longer be on your right, a window would be there. The trashbin would be in the same place as you, so you could interact with it. Thoric would now be south of you, etc...
Confusing? A little, but it would make building and MUDding a bit more interesting... I'm not sure how code-intensive it is, but as I said, a crude 2-dimensional version of this is already running on another MUD.
Why would you want to do this? Well it would save some vnums for one thing, and it would make movement through the MUD seem much more logical. How many times have you read a room desc about a 2-story house with windows in the second story and think to yourself 'Hrm, what would happen if my thief climbed up to that window and picked the lock?'...
It could be fun... I could also be nuts...