<!-- MHonArc v2.4.4 --> <!--X-Subject: [MUD-Dev] (fwd) mud.design.ideas --> <!--X-From-R13: @nguna Traratn Kbfcr <lbfcrNunjnvv.rqh> --> <!--X-Date: Wed, 22 Mar 2000 14:07:44 -0800 --> <!--X-Message-Id: 00Mar22.112108hwt.183020(1)@uhunix2.its.Hawaii.Edu --> <!--X-Content-Type: text/plain --> <!--X-Head-End--> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <html> <head> <title>MUD-Dev message, [MUD-Dev] (fwd) mud.design.ideas</title> <!-- meta name="robots" content="noindex,nofollow" --> <link rev="made" href="mailto:yospe#hawaii,edu"> </head> <body background="/backgrounds/paperback.gif" bgcolor="#ffffff" text="#000000" link="#0000FF" alink="#FF0000" vlink="#006000"> <font size="+4" color="#804040"> <strong><em>MUD-Dev<br>mailing list archive</em></strong> </font> <br> [ <a href="../">Other Periods</a> | <a href="../../">Other mailing lists</a> | <a href="/search.php3">Search</a> ] <br clear=all><hr> <!--X-Body-Begin--> <!--X-User-Header--> <!--X-User-Header-End--> <!--X-TopPNI--> Date: [ <a href="msg00692.html">Previous</a> | <a href="msg00693.html">Next</a> ] Thread: [ <a href="msg00712.html">Previous</a> | <a href="msg00690.html">Next</a> ] Index: [ <A HREF="author.html#00691">Author</A> | <A HREF="#00691">Date</A> | <A HREF="thread.html#00691">Thread</A> ] <!--X-TopPNI-End--> <!--X-MsgBody--> <!--X-Subject-Header-Begin--> <H1>[MUD-Dev] (fwd) mud.design.ideas</H1> <HR> <!--X-Subject-Header-End--> <!--X-Head-of-Message--> <UL> <LI><em>To</em>: <A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A></LI> <LI><em>Subject</em>: [MUD-Dev] (fwd) mud.design.ideas</LI> <LI><em>From</em>: Nathan Fenenga Yospe <<A HREF="mailto:yospe#hawaii,edu">yospe#hawaii,edu</A>></LI> <LI><em>Date</em>: Wed, 22 Mar 2000 11:21:04 -1000</LI> <LI><em>Reply-To</em>: <A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A></LI> <LI><em>Sender</em>: <A HREF="mailto:mud-dev-admin#kanga,nu">mud-dev-admin#kanga,nu</A></LI> </UL> <!--X-Head-of-Message-End--> <!--X-Head-Body-Sep-Begin--> <HR> <!--X-Head-Body-Sep-End--> <!--X-Body-of-Message--> <PRE> Interesting. Shall we email him a little mud-dev promo? He's got a ways to go, but certainly there's potential... -- forwarded message -- Sender: Mystran the Dark-Elf <mystran#darkelf,mystran.softa.net> From: mystran#fiiu,org Subject: mud.design.ideas Newsgroups: alt.mud,alt.mud.programming,rec.games.mud.admin,rec.games.mud.misc Here are some mud design ideas from my mud. (It's still in design stage after all.) Basic principle is to have only one kind of entities. These entities can be rooms, objects, items, players, NPC.. TinyMUSE uses flags to identify these.. basicly you could have a player that's room at the same time :) (No I have not tried !) I'd still make rooms be rooms, and objects, exits and characters all be different types. Ofcourse if we use C++ we can inherit them all from the same parent :) Now we can have a pointer to an entity be a pointer to an object, to an exit or to a character. We need this for location-system below. But let's make dynamic descriptions first. I would have <tags> something like this to The street looks <WEATHER rain="wet in the rain" sun="hot in the sunlight">. We could also add a default: <WEATHER rain="It's rainy" sun="Sun shines" default="The weather is strange"> on the beach. If default is omitted it's same as "". Now we could have a room description as follows: This is a generic room. <WEATHER rain="It's rainy outside the window>. So here we got dynamic descriptions. Other thing to improve is locations inside a room. Now we could have a character have three location variables. One pointer to room player is in, one pointer to an object players location is relative to and the a variable describing how it is relative (eg. "next to", "under"). Then we would have 4th variable describing players state (eg. "standing", "sitting", "lying"). Now we could make descriptions like: <ROOM DESCRIPTION HERE> Felier is sitting on the table. Wizard is lying next to the door. You are standing near Wizard. Compare this with the following: <ROOM DESCRIPTION HERE> Felier is here. Wizard is here. What do you think ? Isn't it better. Now here is a imaginary screen capture from an imaginary mud: ------- > north You are in a small office. There is only one door and one window. Through the window you can see that it's rainy outside. There is a table here. Felier is sitting on the table. Wizard is lying next to the door. You are standing near Wizard. > move table under window You move the table under the window. > look You are in a small office. There is only one door and one window. Through the window you can see that it's rainy outside. There is a table under the window. Felier is standing next to you. Wizard is lying next to the door. You are standing near the table. > ------- Nice, isn't it ? And not hard to make. Default location would be "here", so if Felier is relative to nothing, we'd just say: "Felier is standing here." Felier's player ofcourse would not get a message like "You are standing here." but "You are standing." instead. Another thing to be noticed is that if "Felier is hiding behind a crate." you will not be printed any message of Felier's presence. Ofcourse every object would have a bitmask used to check if a player can be on, under, behind or in the object. Only problems raising, is that when something in the room moves, whole room has to checked so that nobody is relative to the player or object moving, or if something is, then it must be changed not to be. This can quite a lot CPU power in a room with a lot of stuff and people. As I was designing a fireweapon combat system, I decided to make it almost like close combat. The only mayor differences would be as follow: 1) Fireweapons use ammunition. (What a surprise !) 2) You can shoot to another room through an exit. 3) To engage in close combat with "Enemy" you need to "go to Enemy". Ofcourse if you say "attack Felier", you would automagically "go to Felier" first. The point is that if Felier shoots you ie. there is a combat, it might not be that easy to "go to Felier". If again "Felier is hiding behind a crate." and shoots you, you would see "Felier shoots you from behind the crate." and after that you would know his presence and see the "Felier is hiding behind a crate." message every time you "look" around. Now when "Felier is hiding behind a crate." it hard for you to shoot him. A crate might be defined as hard cover, so it would give quite good protection for Felier. Different things could be defined as either hard, soft or no cover. Ofcourse the less Felier can see you the less you can see him. And the more he lies still behind the crate the harder for you to shoot him. You should get the point. Room would have list of players, players each have pointer to their room. Room would also have list of rooms that there is an exit between (even if it was one way only) so sounds can be set to spawn specific number of rooms. If we had a map like this: A1--A2--A3 | | | B1--B2--B3 | | | C1--C2--C3 We could say that when somebody shouts something it would have range of 2. Now, if Felier shout something in A1, everybody in A1, A2 and B1 would hear it. If Wizard shot Felier with a shotgun with sound that has range of 3, everyone in A1, A2, A3, B1, B2 and C1 would hear it. What if exit from A1 to A2 is just a window and not allow moving but still pass sound. We could also make each exit have a "sound pass rating" or something (excuse my English) eg. a wooden door might have rating of 3. Now when a sound with volume of 5 comes to the door, 3 is substracted from the volume, so to the other room goes sound with volume of 2. An open door would ofcourse have the default rating of 1 so if normal talk was volume 2, it would be useful to close doors to make it impossible to hear a secret discussion from the other room. We could also make a limit such that each character would have a "hearing" ability. Now if Felier had hearing of 3, he'd here everything with volume of 3 or more. This opens the possibility of someone hearing something others cannot hear. One could also specifically "listen" to improve his chance to hear something. If we want to make it perfect we also count noise for each room. If everybody is speaking loud in a tavern there is no change to hear someone whispering in the corner. Ofcourse we would use the volume levels to customize the printed messages too (eg. A loud voice in kitchen says: "Don't drink water !"). Only problem with this kind of system is that it takes a lot of CPU to process each sound. If somebody has ideas of how to do this quickly I'd love to hear them. -- -- Mystran the Dark-Elf -- end of forwarded message -- -- Nathan F. Yospe - Born in the year of the tiger, riding it forever after <A HREF="http://www2.hawaii.edu/~yospe">http://www2.hawaii.edu/~yospe</A> nathan.yospe#isearch,com yospe#hawaii,edu Don't mind me, I'm just insane... there's someone else here in my brain. _______________________________________________ MUD-Dev mailing list MUD-Dev#kanga,nu <A HREF="http://www.kanga.nu/lists/listinfo/mud-dev">http://www.kanga.nu/lists/listinfo/mud-dev</A> </PRE> <!--X-Body-of-Message-End--> <!--X-MsgBody-End--> <!--X-Follow-Ups--> <HR> <!--X-Follow-Ups-End--> <!--X-References--> <!--X-References-End--> <!--X-BotPNI--> <UL> <LI>Prev by Date: <STRONG><A HREF="msg00692.html">Re: [MUD-Dev] Gamasutra: Online Justice Systems</A></STRONG> </LI> <LI>Next by Date: <STRONG><A HREF="msg00693.html">Re: [MUD-Dev] The Endeavour Map and MUD Applications</A></STRONG> </LI> <LI>Prev by thread: <STRONG><A HREF="msg00712.html">Re: [MUD-Dev] Command interface for Coordinate based world</A></STRONG> </LI> <LI>Next by thread: <STRONG><A HREF="msg00690.html">[MUD-Dev] Gamasutra: Online Justice Systems</A></STRONG> </LI> <LI>Index(es): <UL> <LI><A HREF="index.html#00691"><STRONG>Date</STRONG></A></LI> <LI><A HREF="thread.html#00691"><STRONG>Thread</STRONG></A></LI> </UL> </LI> </UL> <!--X-BotPNI-End--> <!--X-User-Footer--> <!--X-User-Footer-End--> <ul><li>Thread context: <BLOCKQUOTE><UL> <LI><STRONG>Re: [MUD-Dev] Command interface for Coordinate based world</STRONG>, <EM>(continued)</EM> <ul compact> <ul compact> <LI><strong><A NAME="00703" HREF="msg00703.html">Re: [MUD-Dev] Command interface for Coordinate based world</A></strong>, Nathan F Yospe <a href="mailto:yospe#hawaii,edu">yospe#hawaii,edu</a>, Thu 23 Mar 2000, 02:34 GMT </LI> <LI><strong><A NAME="00707" HREF="msg00707.html">Re: [MUD-Dev] Command interface for Coordinate based world</A></strong>, Laurel Fan <a href="mailto:lf25+@andrew.cmu.edu">lf25+@andrew.cmu.edu</a>, Thu 23 Mar 2000, 06:15 GMT </LI> </ul> <LI><strong><A NAME="00704" HREF="msg00704.html">Re: [MUD-Dev] Command interface for Coordinate based world</A></strong>, Draymoor <a href="mailto:fibhufky#erols,com">fibhufky#erols,com</a>, Thu 23 Mar 2000, 02:34 GMT </LI> <LI><strong><A NAME="00712" HREF="msg00712.html">Re: [MUD-Dev] Command interface for Coordinate based world</A></strong>, Lovecraft <a href="mailto:dave#darkages,com">dave#darkages,com</a>, Thu 23 Mar 2000, 20:34 GMT </LI> </ul> </LI> <LI><strong><A NAME="00691" HREF="msg00691.html">[MUD-Dev] (fwd) mud.design.ideas</A></strong>, Nathan Fenenga Yospe <a href="mailto:yospe#hawaii,edu">yospe#hawaii,edu</a>, Wed 22 Mar 2000, 22:07 GMT <LI><strong><A NAME="00690" HREF="msg00690.html">[MUD-Dev] Gamasutra: Online Justice Systems</A></strong>, Koster, Raph <a href="mailto:rkoster#origin,ea.com">rkoster#origin,ea.com</a>, Wed 22 Mar 2000, 17:19 GMT <UL> <LI><strong><A NAME="00692" HREF="msg00692.html">Re: [MUD-Dev] Gamasutra: Online Justice Systems</A></strong>, Sayeed <a href="mailto:yu219121#yorku,ca">yu219121#yorku,ca</a>, Wed 22 Mar 2000, 22:07 GMT <UL> <LI><strong><A NAME="00694" HREF="msg00694.html">Re: [MUD-Dev] Gamasutra: Online Justice Systems</A></strong>, Matthew Mihaly <a href="mailto:diablo#best,com">diablo#best,com</a>, Wed 22 Mar 2000, 22:23 GMT <UL> <LI><strong><A NAME="00787" HREF="msg00787.html">Re: [MUD-Dev] Gamasutra: Online Justice Systems</A></strong>, Fred Clift <a href="mailto:fred#veriohosting,com">fred#veriohosting,com</a>, Thu 30 Mar 2000, 04:00 GMT </LI> </UL> </LI> </UL> </LI> </UL> </LI> </UL></BLOCKQUOTE> </ul> <hr> <center> [ <a href="../">Other Periods</a> | <a href="../../">Other mailing lists</a> | <a href="/search.php3">Search</a> ] </center> <hr> </body> </html>