Top Mud Sites Forum Return to TopMudSites.com
Go Back   Top Mud Sites Forum > Mud Development and Administration > Advanced MUD Concepts
Click here to Register

Reply
 
Thread Tools
Old 03-10-2004, 10:29 PM   #1
Cypheria
New Member
 
Join Date: Oct 2003
Posts: 6
Cypheria is on a distinguished road
Talking

First to introduce myself as I have been lurking and never actually created an account. I am Xyre creator of the pile of junky code called Cypheria. Now that the formalities are over here is what I have come to say.

Here is an idea that I have been pondering upon for a while,

Why not unite coders under some sort of agreement and have them submit code for the creation of a advanced and a very stable MUD. With the help and ideas of many coders all working for the common good of MUDders it would bring about change in the entire MUDding world. Now yes I do understand that people may not always agree on the same things or may have different ways, but if it could be worked around then it may be the boost this community needs.

I'll leave some of the serious thinking up to the rest of you.
Please don't flame me or ridicule me. I would like some serious ideas and opinions here.

Thank you,
Xyre
Cypheria is offline   Reply With Quote
Old 03-10-2004, 11:32 PM   #2
Zaroth
New Member
 
Join Date: Aug 2002
Posts: 6
Zaroth is on a distinguished road
United coding is usually done in the way of freshmeat projects - if you wanted to start something of that sort, look into it, and get one rolling for your codebase. Some codebases have publically shared snippets and addons for codebases, allowing many to customize the MUD with the features they may not have the time to code, or are new to coding and are taking the "snippet manager" approach, which is usually the easiest way to learn the codebase as long as you're learning the language cocurrently.

Too many coders sharing random ideas without a general agreement would be a migraine IMHO - That is also the same reason that many like to grab a codebase, and just do all of their own custom mods. If you have 234923424 MUDs with the same identical codebase loaded with features, the only difference in them would be the zones(both stock and custom created). Many that MUD are very intellectual / creative / analytical, and if they dont find what they're looking for in a MUD, they will go elsewhere.

I am more than happy working on any projects I feel I want to, or are critical without 40 other coders modifying my work, or making changes that I added, and they don't know why... only to have things fail as a result. Circle isn't the easiest codebase to play with, want to make 1 mod, you change 12 files - it's a spider web in that respect, but very stable as a result - in my eyes anyway.

To sum up my rambling: If you feel it's a good idea, check out freshmeat and get a project started for it, and advertise so those with like ideas can contact you and you can get your project rolling, just be ready for a headache if mass chaos results.

Zaroth-
Zaroth is offline   Reply With Quote
Old 03-11-2004, 01:16 AM   #3
John
Senior Member
 
Join Date: Aug 2002
Posts: 252
John is on a distinguished road
I think what Cypheria meant was, to create industry standards for mu*ing. That sounds like a good idea to me, but I can't see it happening I think what you could do was to get a few different MU*s together to begin creating standards across all the codebases, if these are popular mu*s, chances are other MU*s will follow.

The main reason any business is standards compliant is to advertise. There is a meaning customers place on that standard. So businesses follow the standard to make their customers happy.
John is offline   Reply With Quote
Old 03-11-2004, 11:18 AM   #4
Jazuela
Senior Member
 
Join Date: Apr 2002
Location: New England
Posts: 843
Jazuela will become famous soon enoughJazuela will become famous soon enough
I think standardization is a wonderful idea. Imagine, the best of Circle, Diku, MOO, MUSH, ROM, etc. etc...all written from scratch to function in a single codebase, with all the stuff that limits their current codes tossed aside or re-worked to make them more efficient and useable. Then adding other things that existing codebases might lack....

The possibilities for variety in muds would be just as endless as they are now, but the possibilities for -quality- muds would be improved a hundred-fold, because the code-base would be just -that- malleable.
Jazuela is offline   Reply With Quote
Old 03-11-2004, 11:54 AM   #5
Hephos
Senior Member
 
Join Date: Feb 2003
Location: Sweden
Home MUD: www.sharune.com
Posts: 359
Hephos is on a distinguished road
Quote:
Originally Posted by
Imagine, the best of Circle, Diku, MOO, MUSH, ROM, etc. etc...
The "best" is interpreted differently by differently game owners and coders. I for example think about everything added ontop of diku in smaug and godwars blow hard, where others might love it...

It is perhaps the reason why there are different codebases?
Hephos is offline   Reply With Quote
Old 03-11-2004, 02:00 PM   #6
Cypheria
New Member
 
Join Date: Oct 2003
Posts: 6
Cypheria is on a distinguished road
How about creating a Basic Standardization. Nothing special just your basic code and being able to change it easily for say a H/S to a Roleplay. The possibilities are endless and the outcome would depend upon the ideas and choices of the creator.

How about making the codebase with "plugins" of a sort that could be used in place of snippets. This way people could continue to contribute without the hassle of explaining every step of the way just to create a new reset.

Now I do agree that it would be hard to control the massive input of the coders, but if some kind of system could be created for order, then it could work.

// Xyre
Cypheria is offline   Reply With Quote
Old 03-11-2004, 05:49 PM   #7
TG_Hammar
Member
 
Join Date: Sep 2002
Location: Plymouth, Indiana USA
Posts: 30
TG_Hammar is on a distinguished road
I am not a coder, but it sounds a lot like MudCore to me.
TG_Hammar is offline   Reply With Quote
Old 03-11-2004, 08:17 PM   #8
erdos
 
Posts: n/a
Hi.

Considering I probably account for anywhere from 10 to 50 percent of all the real coders to post on these boards (snippetmonkeys dont count) I felt obligated to notify you that this idea has been nominated as one of the worst ideas in the history of sentient thought.

If you could get such cooperation, it would be better to have all these contributing parties log in as players and have the MUD itself be right-out-of-the-box Diku.  With that many players, you'd win by default; but if they all participate as coders, you'll end up with yet another miserable failure which will slowly pass out of all knowledge as people condition themselves to ignore all the idiotic advertisement spamming on these forums.

Best of luck
Paul Erdos
  Reply With Quote
Old 03-11-2004, 11:10 PM   #9
visko
Member
 
Join Date: May 2002
Posts: 98
visko is on a distinguished road
Send a message via ICQ to visko Send a message via AIM to visko
Erdos seems to be taking a relatively negative perspective on this...

I think it's a good idea (as a non-snippet monkey; lets forget about my merits as a coder), but the real question does boil down to: what in a MUD should be standardized?

Combat is a pretty MUD-specific thing; different combat systems for different MUDs.

The same holds true for economics, roleplaying, MOBs and their versatility or lack thereof, etc.

Unless you were to define either a barebones code base that could be built upon (via snippets and the like) to customize, or you define a very specific MUD theme and develop a codebase based on that theme (ROM-style, basically), it's hard to see where you would start, or what your goals would be. Post some specifics on what you're trying to develop, and maybe you'll get some offers.

-Visk
visko is offline   Reply With Quote
Old 03-12-2004, 02:50 AM   #10
KaVir
Legend
 
KaVir's Avatar
 
Join Date: Apr 2002
Name: Richard
Home MUD: God Wars II
Posts: 2,052
KaVir will become famous soon enoughKaVir will become famous soon enough
Quote:
Originally Posted by
Unless you were to define either a barebones code base that could be built upon (via snippets and the like) to customize...
To be honest I think that's the only way it could really work - provide a well written bare-bones codebase, and get each developer to write individual modules that can be plugged in, with as few dependencies as possible. Each developers would therefore work more or less separately, while those actually using the codebase would be able to select and plug-in the modules they wanted. You might also want a small team for giving modules some sort of official "meets our quality requirements" stamp, and to maintain a website with downloads and information.

If you tried to get everyone to work together it would almost certainly be a complete disaster (too many cooks, and all that).
KaVir is offline   Reply With Quote
Old 03-12-2004, 02:56 PM   #11
Spazmatic
Member
 
Join Date: Mar 2003
Posts: 103
Spazmatic is on a distinguished road
Quote:
Originally Posted by
KaVir's post, don't want to spam y'all
Plug'n'play? :-)

However, yes. Simply put, the ideas of a "best" codebase, or of even of "best" features, or even of a good, cooperative venture that's generally preferred... are wrong. There is no such thing.

However, imho, the thread has ventured into unknown territory far, far away from the source.

Quote:
Originally Posted by
Why not unite coders under some sort of agreement and have them submit code for the creation of a advanced and a very stable MUD. With the help and ideas of many coders all working for the common good of MUDders it would bring about change in the entire MUDding world. Now yes I do understand that people may not always agree on the same things or may have different ways, but if it could be worked around then it may be the boost this community needs.
Sounds like... open source. Aka, em, Sourceforge?

However, I should note that I have yet to see a good mud codebase come out of such a development process. Look at, say, AIME. Some of the worst code EVER (though, admittedly, functionality is not bad, and it's very appealing to my builder-side).

It's possible, sure. A quality-controlled open source codebase for which you would need to generate some very hefty interest from the better coders out there... Sure, possible. Difficult, though, and in the end it would just be another codebase, though potentially one with some nifty algorithms.
Spazmatic is offline   Reply With Quote
Old 03-12-2004, 04:32 PM   #12
Raeven
New Member
 
Join Date: Mar 2004
Posts: 25
Raeven is on a distinguished road
Angry

Well, don't know about that whole united coders thing, though it would be cooler than h ell, if you don't mind me saying that. But I think it would be near to impossible, but if it was accomplished I would sure use it.
Raeven is offline   Reply With Quote
Old 03-12-2004, 07:12 PM   #13
visko
Member
 
Join Date: May 2002
Posts: 98
visko is on a distinguished road
Send a message via ICQ to visko Send a message via AIM to visko
This touches a bit on my earlier proposal for PTP - player transport protocol. Ignoring the social problems this kind of thing creates, it would be interesting to create the framework for a multi-MUD game and an administrative collection of IMPs who work together to maintain building/coding standards and inter-operability to allow all of their players to hop from one world and engine to another.

Perhaps this is what you're thinking of? I'm still not clear as to what you mean; your statements have been interpreted a few different ways now.

-Visk
visko is offline   Reply With Quote
Old 03-12-2004, 11:24 PM   #14
 
Posts: n/a
Sounds familiar

DevMud

We couldn't even agree on a license, a language or a platform.
  Reply With Quote
Old 03-13-2004, 12:06 AM   #15
Spazmatic
Member
 
Join Date: Mar 2003
Posts: 103
Spazmatic is on a distinguished road
Quote:
Originally Posted by
We couldn't even agree on a license, a language or a platform.
You decided on a name (though admittedly a bit of a no-brainer). People underestimate the importance of deciding on a name!
Spazmatic is offline   Reply With Quote
Old 03-13-2004, 09:54 AM   #16
erdos
 
Posts: n/a
Coder #56: hey guys, how's this for a first line?
[code] while ( TRUE ) update( );[/quote]

Coder #104: whoah, did they start a whitespace ration? Make it
[code] while ( TRUE )
    update( );[/quote]

Coder #37: update is too generic, it could easily conflict... let's make it
[code] while ( TRUE )
    update_MUD( );[/quote]

Coder #194: Wouldn't it be more elegant to do this?
[code] while ( update_MUD( ) )
   ;[/quote]

Coder #562: I think it'd be more readable if we did this:
[code] #define CONTINUE_MUD 1
#define STOP_MUD 2
...
while ( update_MUD( ) != STOP_MUD )
   ;[/quote]

Coder #62: Argh, the last thing we need is redundant and pointless definitions!! Anyway, we can just use exit() from the lower level functions, so I say we just do
[code] for (;; )
    update_MUD( );[/quote]

Coder #11: My "microsoft vbasic 101" teacher said if you use capital letters in a function name it makes baby jesus cry! Make it
[code] for (;; )
    update_mud( );[/quote]

Coder #73: This is purely aesthetic, but I prefer
[code] for (;; )
    update_mud ();[/quote]

Coder #99: Since this is open source, we need more comments. A better version would be
[code] for (;; ) /* Infinite loop */
    update_mud (); /* basic pulse of the mud */[/quote]

Coder #29: No, no, no, that's ugly! Make it
[code] for (;; )                   /*
    update_mud ();     *  Main game loop
                                *    -Coder 29, March 14 2004
                               */[/quote]

Coder #57: Whoah, whoah, are you trying to steal all the credit for these lines?! Freaking creep. I prefer this:
[code] /*                       *\
*     Main Loop    *
\*                       */
for (;; )
    update_mud();[/quote]

Coder #84: Guys! Guys! I've got it! This is perfect:
[code] while ( TRUE ) update( );[/quote]

(Return to top of message and re-read from beginning)
  Reply With Quote
Old 03-13-2004, 10:12 AM   #17
KaVir
Legend
 
KaVir's Avatar
 
Join Date: Apr 2002
Name: Richard
Home MUD: God Wars II
Posts: 2,052
KaVir will become famous soon enoughKaVir will become famous soon enough
An amusing example erdos, but hardly a scenario with "individual modules that can be plugged in".

The biggest problem is actually getting started, as described in Tyche's example - but once you've got that sorted out, each person can do their own thing. And as long as they follow the agreed upon design approach, every contribution is potentially useful.

Coder #56: Here's my server module, what do you think?

Coder #104: I decided to do it this way instead.

Coder #37: Here's my multithreaded solution!

Coder #79: I don't want a mud, I just want to play on my own - he's my single-player solution.

Result: You've now got three different server modules that other developers can choose from, as well as a single-player module that could be plugged in and used by someone who just wanted to do some single-player gaming.

Now repeat the process for additional modules. Some of the later ones will no doubt have dependancies, being based upon other modules, but it would still give a great deal more flexibility than is currently available.
KaVir is offline   Reply With Quote
Old 03-13-2004, 03:29 PM   #18
shadowfyr
Senior Member
 
Join Date: Oct 2002
Posts: 310
shadowfyr will become famous soon enough
You know.. Maybe mudders are just not equipped to deal with this, considering the comments. lol

But seriously, look at something like the POV-Ray raytracer. This was developed by a small team, but giving out full source, so there is an official version plus MegaPOV (sometimes several). MegaPOV is the bleeding edge version that everyone tries to impliment new ideas in, which if they are decently documented and actually useful, will eventually end up in the official version. This system has worked quite well. The current version 3.6 is a bug fix beta for 3.5, which is the last major version before they do a complete redesign (and probably add quite a few additional features that where impractical in the current one).

In terms if capabilities, it runs on virtually anything, has 90% of the features of high end programs like Maya, can simulate much of the stuff not directly supported through its script, etc. It has no inbuilt modelling program, due to the complications of making such cross-platform, but that is about the only thing that keeps it from being noticed by the types of people that do buy Maya, Cinema 4D or the like.

Point is, a text based system, even if it provided the ability to extend itself and use things like graphics as well, is significantly less complicated than POV-Ray was even in version 1.0, when it was little more than a rewrite of DKBTrace. What you need is a core group that can build a really good base, then maintains control over the official version. As long as they allow feedback and pay attention to what features other people add in to the unofficial versions, these features can, if really useful, be integrated into the next official version. The result if done right can be a very stable and exceptional system.

The problem imho with most currently is that some group developes one that does what they need, release it to the public and a few years later you have no official version (since the originators don't want to deal with what anyone else did to it) and 500 variations, none of which are as good as version 1.0 of some new codebase that comes along. This cannot by definition generate the kind of long term progress needed to keep a codebase on the top of the list of ones new people will be using ten years from now. And it definitely doesn't improve the system any of those 500 variations are based on.

In the case of KaVir's and erdos's example, most likely you would end up with one server that combines #56's good ideas with #37's and an option to allow someone to change one setting to make it workl like #79 wanted. Plugin modules shouldn't imho be at that low a level anyway, though a single player module that included a 'client' that plugged directly into the driver for local control would make sense. You might therefor provide a 'internet' module that handles output over telnet or other methods and a single user one that just displays local. You could have one or both plugged in as needed. The other two though don't make sense as seperate entities. That is what you need a core group for, so that you don't get people designing stuff that makes no sense as seperate modules and screaming about how no one wants to try their new toy. Someone needs to decide what does make sense to modularize, what shouldn't be and how to adjust the code to keep the creation of such a module for some function doesn't flat out break the driver or library used on it.
shadowfyr is offline   Reply With Quote
Old 03-13-2004, 04:20 PM   #19
erdos
 
Posts: n/a
Project Spokesperson:
Okay, everyone, we finally came to an agreement on our first "line" of code! And here it is, in all its flexible beauty:

[code] #ifdef NO_CAPITALS_IN_FUNCTION_NAMES
#ifdef USE_FOR_FOR_INFINITE_LOOPS
#ifdef MINIMIZE_WHITESPACE
#ifdef COMMENT_HEAVY
#ifdef VERY_SPECIFIC_FUNCTION_NAMES
for (;;) update_mud(); /* Main infinite loop - Jones, 03/14/04 */
#else
for (;;) update(); /* Main infinite loop - Bill, March'04 */
#endif
#else
#ifdef VERY_SPECIFIC_FUNCTION_NAMES
for (;;) update_mud();
#else
for (;;) update();
#endif
#endif
#else
#ifdef COMMENT_HEAVY
#ifdef VERY_SPECIFIC_FUNCTION_NAMES
for (;; )
    update_mud( ); /* Main infinite loop - Andy, 2004 */
#else
for (;; )
    update( ); /* Main infinite loop - Gandalf, 14March */
#endif
#else
#ifdef VERY_SPECIFIC_FUNCTION_NAMES
for (;; )
    update_mud( );
#else
for (;; )
    update();
#endif
#endif
#endif
#else
#ifdef USE_WHILE_FOR_INFINITE_LOOPS
#ifdef MINIMIZE_WHITESPACE
#ifdef COMMENT_HEAVY
#ifdef VERY_SPECIFIC_FUNCTION_NAMES
while (TRUE) update_mud(); /* Main infinite loop - Mar04 */
#else
while (TRUE) update(); /* Main infinite loop - Rosa, March 14 */
#endif
#else
#ifdef VERY_SPECIFIC_FUNCTION_NAMES
while (TRUE) update_mud();
#else
while (TRUE) update();
#endif
#endif
#else
#ifdef COMMENT_HEAVY
#ifdef VERY_SPECIFIC_FUNCTION_NAMES
while ( TRUE )
    update_mud( ); /* Main infinite loop - Dean, '04 */
#else
while ( TRUE )
    update( ); /* Main infinite loop - Clint, March 14th */
#endif
#else
#ifdef VERY_SPECIFIC_FUNCTION_NAMES
while ( TRUE )
    update_mud( );
#else
while ( TRUE )
    update();
#endif
#endif
#endif
#else
#ifdef MINIMIZE_WHITESPACE
#ifdef COMMENT_HEAVY
#ifdef VERY_SPECIFIC_FUNCTION_NAMES
do update_mud(); while (TRUE);/* Main infinite loop - Yang 140304 */
#else
do update(); while (TRUE);/* Main infinite loop - Johnson Programming, Inc. */
#endif
#else
#ifdef VERY_SPECIFIC_FUNCTION_NAMES
do update_mud(); while (TRUE);
#else
do update(); while (TRUE);
#endif
#endif
#else
#ifdef COMMENT_HEAVY
#ifdef VERY_SPECIFIC_FUNCTION_NAMES
do
    update_mud( ); /* Main infinite loop - Dana, 2004 */
while ( TRUE );
#else
do
    update( ); /* Main infinite loop - KaVir, 14Mar04 */
while ( TRUE );
#endif
#else
#ifdef VERY_SPECIFIC_FUNCTION_NAMES
do
    update_mud( );
while ( TRUE );
#else
do
    update();
while ( TRUE );
#endif
#endif
#endif
#endif
#else
#ifdef USE_FOR_FOR_INFINITE_LOOPS
#ifdef MINIMIZE_WHITESPACE
#ifdef COMMENT_HEAVY
#ifdef VERY_SPECIFIC_FUNCTION_NAMES
for (;;) update_MUD(); /* Main infinite loop - Ken, Mar14*/
#else
for (;;) update(); /* Main infinite loop - Springer '04 */
#endif
#else
#ifdef VERY_SPECIFIC_FUNCTION_NAMES
for (;;) update_MUD();
#else
for (;;) update();
#endif
#endif
#else
#ifdef COMMENT_HEAVY
#ifdef VERY_SPECIFIC_FUNCTION_NAMES
for (;; )
    update_MUD( ); /* Main infinite loop - Iluvatar, 2004 */
#else
for (;; )
    update( ); /* Main infinite loop - Thoric, 03 March */
#endif
#else
#ifdef VERY_SPECIFIC_FUNCTION_NAMES
for (;; )
    update_MUD( );
#else
for (;; )
    update();
#endif
#endif
#endif
#else
#ifdef USE_WHILE_FOR_INFINITE_LOOPS
#ifdef MINIMIZE_WHITESPACE
#ifdef COMMENT_HEAVY
#ifdef VERY_SPECIFIC_FUNCTION_NAMES
while (TRUE) update_MUD(); /* Main infinite loop - Knuth, 04*/
#else
while (TRUE) update(); /* Main infinite loop - Turing, March 2004 */
#endif
#else
#ifdef VERY_SPECIFIC_FUNCTION_NAMES
while (TRUE) update_MUD();
#else
while (TRUE) update();
#endif
#endif
#else
#ifdef COMMENT_HEAVY
#ifdef VERY_SPECIFIC_FUNCTION_NAMES
while ( TRUE )
    update_MUD( ); /* Main infinite loop - Boole, 14Mar */
#else
while ( TRUE )
    update( ); /* Main infinite loop - James */
#endif
#else
#ifdef VERY_SPECIFIC_FUNCTION_NAMES
while ( TRUE )
    update_MUD( );
#else
while ( TRUE )
    update();
#endif
#endif
#endif
#else
#ifdef MINIMIZE_WHITESPACE
#ifdef COMMENT_HEAVY
#ifdef VERY_SPECIFIC_FUNCTION_NAMES
do update_MUD(); while (TRUE);/* Main infinite loop - ElItEhAcK3R */
#else
do update(); while (TRUE);/* Main infinite loop - Drizzt '04 */
#endif
#else
#ifdef VERY_SPECIFIC_FUNCTION_NAMES
do update_MUD(); while (TRUE);
#else
do update(); while (TRUE);
#endif
#endif
#else
#ifdef COMMENT_HEAVY
#ifdef VERY_SPECIFIC_FUNCTION_NAMES
do
    update_MUD( ); /* Main infinite loop - Graham, 14March */
while ( TRUE );
#else
do
    update( ); /* Main infinite loop - Jones et al */
while ( TRUE );
#endif
#else
#ifdef VERY_SPECIFIC_FUNCTION_NAMES
do
    update_MUD( );
while ( TRUE );
#else
do
    update();
while ( TRUE );
#endif
#endif
#endif
#endif[/quote]

As you can see, folks, the project is coming along remarkably fast! So far the entire sourcecode, uncompiled, is over 3 gigabytes large-- and all it does is initialize the master socket!!!  So if we put that much consideration into just initializing the master socket, imagine what the finished product will be like!

Here is a picture of our flowchart, as seen from a 60 foot distance:
  Reply With Quote
Old 03-13-2004, 05:20 PM   #20
Spazmatic
Member
 
Join Date: Mar 2003
Posts: 103
Spazmatic is on a distinguished road
Nethack.
Spazmatic is offline   Reply With Quote
Reply


Thread Tools


United Coders - Similar Threads
Thread Thread Starter Forum Replies Last Post
Looking for coders Tjnet88 MUD Coding 8 02-25-2004 05:50 PM
Looking for Coders kelemvor Advertising for Staff 0 02-04-2004 01:05 AM
Looking for coders xVampLordx MUD Coding 3 09-11-2003 11:50 PM
ROM 2.4 RP Mud has 2 coders, looking for a third! Azeroth Advertising for Staff 0 02-28-2003 02:50 PM
Coders Welcome Keljorian Advertising for Staff 0 01-14-2003 11:31 PM

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off

All times are GMT -4. The time now is 08:53 PM.


Powered by vBulletin® Version 3.6.7
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Style based on a design by Essilor
Copyright Top Mud Sites.com 2014