[MUD-Dev] Combat Systems

KevinL darius at bofh.net.au
Sat Jul 29 09:29:47 New Zealand Standard Time 2000

adam at treyarch.com wrote:
> On Thu, 27 Jul 2000, Phillip Lenhardt wrote:
> > On Thu, Jul 27, 2000 at 03:22:40PM -0700, adam at treyarch.com wrote:
> > > Each character has a task list.  The top node in the list is considered
> > > their current task: the one they are doing at this moment in time.
> > > In fact, their room description is generated based on this task: for example,
> > > you might see "Bubba is sitting here, honing a steel dagger" or "Boffo
> > > is standing here, eating an apple."
> > 
> > The scheduler in Moebius works along these same lines, but we have one
> > global queue into which we insert events. Just like you, we simulate long
> > actions by having the Nth event in a long action schedule the N+1th event.
> Excellent!  Is Moebius a running mud?  I couldn't find it on the mud
> connector.

wibble.  Moebius has a running server at mud.bofh.net.au port 5000 - I've 
recently quit my RL job and am desperately trying to find time to polish the 
stuff I want to polish in there (like, um, adding stats and combat systems ;).

The whole thing is written in python, with _everything_ (objects, data, code, 
the lot) stored in a database (MySQL currently).  That, and the fact that you 
can code in near-pure python online, are it's two major drawcards - the 
scheduling exists, and we're moving forward on the basis you've outlined wrt 
events (everything being "scheduled", tasks busying out the char (eg. 
currently moving from room to room can potentially take several seconds, 
during which you cannot do much of anything else, just as a proof of 
concept - expanding the number of "busy" types and giving players control over 
stopping previous tasks etc. would be the next step to developing that)), but
don't expect too much *grin*

I've fallen for the "sitting here, honing a dagger" description line above, so 
that's on it's way now too ;)

> For what it's worth, I also have a global (read: generic) event queue that
> I use for events not attached to specific characters.  The event code in the
> mud-dev FAQ is very close to my own implementation.

Ours is global because it's envisioned that anything non-instant gets
databased - it's very easy to construct an object-specific view out of the db ;)

> My 'tasks' system just adds a lot of character-specific niceties that help
> out both the players (giving them control over their event queues) and
> the developers (allowing me to code new tasks without worrying about what
> happens when an object gets deallocated between the start and finish of
> the task, etc).

Very nice.  It'd be interesting to view a tasks' code, if you've got a small 
task there you'd like to share? ;)


MUD-Dev mailing list
MUD-Dev at kanga.nu

More information about the MUD-Dev mailing list