[MUD-Dev] Marc Hernandez' Server

Greg Munt greg at uni-corn.demon.co.uk
Sat May 15 15:49:13 CEST 1999


> [Marc Hernandez]
>
> 	Yeah I have been doing this also.  I decided to stop running and
> implement.  My first and second passes were under C++ with the later one
> (or is it two now?) under Java[1].

What made you move from C++, to Java?

> > [Ola]
> >
> > back to where I was *4* years ago regarding what I want to do now.  The
> > basic reason for this is that I realize that I want to make it
accessible to
> > handicapped people, to blind people and others who cannot easily use
many of
> > the newer inherently graphical systems.  Which pretty much rules out the
> > hardcore simulationist approach which I have been following so far.  So,
I'm
>
> 	Hmm.  Why would accessability have a dependancy on game mechanics?
> You still have objects and such to do stuff with I assume.

I have to agree with Marc here. Ola? So long as the UI is seperate from the
game itself, decisions like this need not have such an impact, surely? (Of
course, the assumption that all players are Eric Generic - sorry, Martin -
has long been a flaw in my own designs...)

> > basically back at the scratchpad (well, I always liked design better
than
> > implementation :*).  Maybe I'll come up with something that will take
less
> > than 3-5 man years to design and implement this time!!
>
> 	Do you actually get much on paper?  I find I get a bit then decide
> to go implement because I do not know how this or that will work.
> Probably just immaturity in designing multiuser servers.

Immaturity? I don't think so. Sounds like evolutionary prototyping to me.

> > So, what are you custom server guys doing?  Have you been able to stick
to
> > your vision, or has it changed?
>
> 	Whew ok.  I took a look at my codebase and it is not in as bad of
> shape as I thought.  I am currently 'pushing' because I want something to
> play with rather than endless bits of code that do not _really_ do
> anything.  It is currently 2500 lines, supports persistant objects and
> users and allows talking.

It's all too easy to get bogged down in implementation, instead of thinking
about your goal, and whether what you are doing actually accomplishes ANY of
your short-term ones. (Hey, I've done it, it *must* be easy.)

> 	At the core the system is driven by events.  Everything that
> happens has an event that makes it happen.

But what makes an event happen? What is the process (ie event/object
interaction) that causes a character to speak, for example? Do you have an
event source that throws its own kind of event at an event manager (your
Server object?), which then throws it at the right destination object, which
reacts accordingly?

I remember JCL having something with four distinct components. Anything like
what I've described above?

> Events can be targeted, area or generic.

Maybe I am making things overly complex (or am I?), but I don't see the need
for event classifications. First, let's look at targeted and area events:
these are quite similar. They both propogate events to their contents, it's
just that targeted events are never sent to areas (assuming that you
distinguish between rooms and areas - or even if your server has the concept
of a room at all). For example, you would never send an area event to a
single character, you would always send it to an area. (I'm starting to feel
like I'm missing something now.) Generic events need not be handled any
differently - just have internal objects that provide an interface to the
system. For example, the ShowThreads event could be sent to, say, the Log
object.

> 	Area events are a bit different.  They get produced and filtered
> at production like other events.  Then they get filtered by the area they
> are in.  The area filters them and decides how to propagate them.  Then
> the area passes the events to the various objects that care.

Why aren't targeted events filtered at their destination too?

> 	For my object system (objects are called components) I wanted a
> uniform handling of abilities.  Thus components are really just
> 'containers' for Attributes.  An attribute is where all the work gets
> done.  Some attributes:
> Physical: maintains where a component is, including its connectedness.
> Material: Any materials a component is made of.
> Contain: this component can contain others that can be contained.
> ContainedBy: this attribute maintains who it is contained by
> (I use the 2 above for areas also.  Areas can contain other areas.)
> Mind: A mind controls a body.  Some minds include: Text- this is a telnet
> control for a body, Away- this is for controlled bodies that do not have a
> connected human, NPC- for smarter NPC characters, MOB- for simple run
> around creatures.

Can you give some examples of how the Material attribute would be used?

> 	Rather than use simple pointers between components I have Slots.
> Slots can have constraints placed on them.  Another component is placed in
> a slot assuming it fits the constraint.
>
> 	Taking control of a body is as simple as changing the 'mind' of
> the character.  If the character is reincarnated or turned into a goat you
> just change the characters 'body'.

I *love* these two aspects of your design!

> 	I am currently looking to add a gaming system on top of it.  In
> that regard I have not done much.  But I have realized the basic system is
> fairly sound and should support one[3].  I have a simple area system setup
> (one area).  You can login and talk.  Currently the system tells you the
> Unique ID of the person that is talking to you.  I have considered writing
> a parser to read in Diku areas and simulating some of the objects therein.
> <shrug>.  I have been reading The Lord of the Rings.  Made me want a cool
> RPG to go play in.

Beware the LotR influence. In my opinion, the majority of fantasy in the
latter half of this century was produced by Tolkien disciples. Now, I'm not
saying Tolkien was bad - far from it - but too much of *anything* is always
a bad thing. For example, compare Tolkien's creatures to the AD&D classes
and races. (Elves especially. I'm sick of these peace-loving woodfolk; it is
SO ridiculous to embody an entire race with the same characteristics.. And
then when they vary, turn them into another race entirely - dark elves!)

> 	Oh yeah.  It is for a graphical system but will support anything.
> I currently have a text based system running atop it, since that way I do
> not have to develop a client right away.
>
> 	Wow.  You read to here?  Even I fell asleep halfway through :-).

I read with excitement and interest. I am myself interested in area events
related to the senses (talking should be heard in neighbouring rooms, shouts
shouldn't be heard across the entire world), particularly smell, which
no-one seems to have dealt with yet. Also a weather system which can cause
permanent damage to the world, its inhabitants, and their manufactured
structures. (I digress.)

> [2] In the 'you do not have to edit every single object in the system
> sense'

You don't seem to have marked where this footnote refers to..?

> [3] I got a little discouraged in february since I was the only one doing
> anything with this while others that wanted to 'help make a game' did not
> do anything.

Apathy makes the world go 'round. I know a lot about it - the Bahamas is
founded on apathy, laziness and stupidity. (Yes, I do love it here, and yes,
I am being very generous to the natives.) Maybe their proximity to the US is
to blame. (*Dons asbestos bodysuit* *grin*)



_______________________________________________
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