[lmud-devel] Re: Lisp MUD development

Brandon Edens brandon at cs.uri.edu
Thu Mar 8 21:43:36 UTC 2007


Hi all!

Glad to find some kindred spirits. 
I pulled down Monster Mountain and started going through the code. Also took a
look at MUSN. I'll write more after I've fully digested everything.

I've been going it alone for quite awhile now. Definitely want to continue
discussing mud work, specifically common lisp mud work. I hope lmud-devel
doesn't mind our chatter; if it is a problem we could always create a new
mailing list cl-mud for discussions related to common lisp mud programming.

I'm working on what I call BMUD. Now that I've found some community I'm going to
push it up to Sourceforge as soon as my account application goes through. I've
been working on it, off and on for awhile now. I had trivial versions in
Python/Ruby/C++ before finally settling in with Common Lisp. There was a woman
that built an entire Diku/Circle equivalent in Common Lisp in approximately 3
months time. Her codebase was lost in a hard drive crash. I only saw the game
briefly but I can say a few things. First, it was highly dynamic. They were
building the world in game, reloading the game on the fly etc... I didn't learn
until later that you get all this for free when you use Common Lisp. Hooray!
Also things were fast. The network IO difference between a common lisp MUD and
something written in Ruby, well....


BMUD is slow going but I think that is just because I've been doing a lot of
exploratory coding.  The codebase is GPLed like Monster Mountain so I'm thinking
we can cross pollinate. Definitely ideal.

Some thoughts about relicensing completed versions of the game as Affero after I
spoke with Richard Stallman a few months ago. Only because I want to make sure
that players will have access to the code base in case a mud shuts down. I
suppose I could just add in-game functions that allow players to dump the source
code to their terminals and just leave it as GPL with words of encouragement
asking administrators to share the code freely, and not remove the code dump
functionality.

BMUD is Diku/Circle/LP inspired. I was a long time Duris/Toril/Sojourn/Arctic
player. I also occasionally play Battlemech frontiers (btmux). I'm trying to
match a Circle Mud derivative called Greycode. I think you can find it in the
Circle archives. Greycode is more rogue-like than your traditional MUD. I guess
in terms of the world we're talking about a textural map, line of sight, dynamic
lighting and the like. I'm also attempting to make the world fully deformable
and persistent with the end goal of allowing players to take over parts of the
world and remake them in their own image. NPCs will hopefully do the same. 

Using the D20 rule-base.
http://www.d20srd.org/


Greycode had the concept of traditional MUD rooms with each containing an
interior grid. The game would combine these rooms together to blow the world up
into a grid. This is a difficult way of implementing things. I think its rife
with possibility of graph theory problems. I was pursuing this recently but
decided to instead start handling things entirely within a grid system. Reason
is that computing the target of a ranged attack is simple geo/trig. A grid is
made up of 4 layers: terrain, mobs, objects, and meta. The meta layer holds
pointers to room data of a traditional variety. I've got some test code in the
BMUD code base. I'll hopefully have the capability for the player to walk around
the grid shortly.

Going to switch over to responding in-line. (Sorry for the top-post).

On Thu, Mar 08, 2007 at 11:22:35AM -0600, Joe Corneli wrote:

> Thanks Heow --
> 
> I've been talking with Nick Thomas about his Monster Mountain
> codebase, and making a few contributions there.  After kicking
> what tires there are, they seem quite solid.  Monster Mountain
> is a way to get people interacting with Lisp, but there isn't a
> whole lot else there to interact with yet.  I'm currently working
> on getting it hooked into a database that would contain code
> and other "world objects".

I built a rudimentary file based system. I never really understood how pleasant
(read) (print) can be until I looked over PCL chapter 3 again... Let me get the
code up on Sourceforge before I go into it. I'm also sure I'm going to run into
issues of thread safety with this system though. We'll see.

> The direction I'm interested in going is outlined here:
> 
> http://planetx.cc.vt.edu/AsteroidMeta/MUSN
> 
> Monster Mountain is here:
> 
> http://code.google.com/p/mmtn/

BTW Why code.google.com? I was looking over the site. Is there some
disadvantageous towards using Sourceforge?

> I'd definitely be interested in hearing about other things going
> on in the Lisp MUD world.

We need to get some codebases out there so we can secure bragging rights. I see
C# muds popping up on Erin Andreasen's New Mud Codebase's!
http://www.andreasen.org/newmud/


> On 3/8/07, Heow Eide-Goodman <heow at alphageeksinc.com> wrote:
> >Hey guys, talk about timing!
> >
> >Brandon just dropped me a line and is interested in raising discussions
> >regarding CL mud hacking:

Should've put the word out awhile ago. 

> >I personally see the problem more as a collaborative development effort
> >rather than a glorified chat room.  :-)

I'm definitely down. Nice to find others. I figure the community will grow if we
get some usable codebases out there. I find common lisp great for snippet
hacking. I think it is partially functional programming and also related to the
attention to writing code with low side effects.

I'll write back when BMUD goes onto sourceforge. It isn't playable but there is
a lot of useful functions written and it is getting further along each day.

Brandon

-- 
Brandon Edens                                   brandon at cs.uri.edu
http://www.brandonedens.org
key 0x55438F48
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <https://mailman.common-lisp.net/pipermail/lmud-devel/attachments/20070308/73d9d7c6/attachment.sig>


More information about the lmud-devel mailing list