[MUD-Dev] Next gen MUD wishlist

Bruce bruce at puremagic.com
Sun Feb 27 16:49:04 CET 2000


adam at treyarch.com wrote:
> On Sat, 19 Feb 2000, Bruce wrote:
> > If all of this is to be the 'Next generation' of MUDs, then we (the mud
> > world) are largely already there.  MOO and Cold have been here at this
> > level for some time, or had the capabilities of being at this level at
> > the core architecture level.  They've had graphical clients.  Some of
> > them have had coordinate based systems.  They've been able to handle
> > 100-500 users.  That said, I've moved on from those systems for reasons
> > explained in the list archives.
> >
> > Isn't it time to really move on to the next generation?
> 
> Which begs the question, of course: what really IS the next generation?

Since I like questions so much, I'd have to wonder if we really have an
idea of what the current generation is? :)

>From my perspective having worked with Cold, the current generation of
servers provides, from the developer's point of view, the following:

 * Easy to use networking primitives.
 * Automatic memory management.
 * Automatic persistence.
 * Simple datatypes like lists, dictionaries, strings, buffers.
 * An interpreted language for doing all development work.
 * The language is dynamicly typed, which makes for rapid development,
   but no compile-time type checking.
 * Highly dynamic object model.

MOO provides much the same.  The current generation has some issues
though:

 * Persistence is often not extensible and the ability to modify how
   persistence works isn't provided by the driver.
 * Datatypes are nice as provided, but aren't easily extensible.
 * Sometimes, you just need that native code performance.
 * No access to threads or other ways to take advantage of SMP.
 * Poor documentation (not an architecture issue, but a problem all the 
   same).

Some of the 'next generation' projects starting up today don't seem to
have a solid idea of where things stand in terms of history, or what the
issues are with the existing systems.  But that's where things stood 2
years ago as well.

Given that, maybe it is interesting to look at why these servers provide
what they do at the programming level?

I think it is fairly safe to say that one of the goals of Cold at least
is to provide services to programmers to make it easier for them to get
their work done.  Automatic persistence and memory management work
towards this by removing work from the developer.  Having a dynamic
object model allows things to change at runtime in an interactive style
of development without rebooting the server.  This can also be useful
for allowing fixes to server code on the fly, without requiring a reboot
or any downtime.  The standard datatypes fulfill a role similar to that
of the STL in C++.  Being that the server is fully interpreted, it is
also much less likely to crash.  Nearly all of these features are aimed
directly at allowing developers to work faster and more effectively.

Addressing some of the things that I listed as issues with the current
generation would serve to help make it easier to write code: 
extensible  persistence and datatypes.  Adding threads would make it
harder to program, but _might_ provide some assistance with scalability
depending on the server design.

So, I'd look at next generation systems as taking much of what we have
today in the more advanced systems and making it more extensible and
easier, providing a framework for server development that is easy to
use, but doesn't limit the developers using it to those datatypes that
the original server developers bothered to write support for.

Also, I'd look at the varying types of people doing development.  There
are 3 categories that I can see easily:

 * Server gurus.  They design and implement the architecture.
 * Programmers.  They sit between the builders and the server gurus
   and write a lot of higher level code implementing game logic
   within the architecture defined by the gurus.
 * Builders.  They build the world and customize the objects to 
   flesh out the experience of being within the world.

Each of these groups of people has a differing set of needs,
capabilities and interests.   The toolset used for world development
should take this into account and provide the appropriate tools for the
developers.

Of course, I've completely ignored game design and game-oriented issues
here.

> Is it simply more scalability, so that instead of 500 people online we go
> to 500,000?
> 
> Is it more immersive worlds via graphics and sound?
> 
> Is it more malleable worlds, with more 'realistic' entity interactions, and
> especially more complex player<->world interactions?
> 
> Is it better tools for organizing societies within the mud world, so that
> players can better interact with each other?
> 
> Is it enhanced building/scripting tools so that huge, complex, dynamic 
> worlds can be created without requiring thousands of work-hours of
> effort?

I think it is all of this.  All of this is possible at the technology
level we currently have today, except for the scalability.  What does it
take to do these things?  At a minimum, it requires the appropriate
programming tools that are easy for the developers to work with!

 - Bruce



_______________________________________________
MUD-Dev maillist  -  MUD-Dev at kanga.nu
http://www.kanga.nu/lists/listinfo/mud-dev



More information about the mud-dev-archive mailing list