[MUD-Dev] Breaking down the walls

Acius acius at simud.org
Wed Jun 12 01:01:15 New Zealand Standard Time 2002


Brian Lindahl wrote:

> I'm currently working on a more CPU intensive, but definately more
> interesting style of location. My interest was sparked in this
> concept by an intelligent post on one of the google.com groups.
 
> The concept basically does away with all directional movement. You
> don't really move in directions, you move TO things. For example,
> if I want to go to the Inn, which just happens to be to the east,
> I don't type 'go east', I type 'go inn'. Of course the locational
> system has much more intriciate commands which include modifiers
> of speed, pace, manner, etc. But thats the basic idea.

It's very difficult to create meaningful landmarks for cross-country
travel: how do you intend to solve the problem of walking across
long stretches of countryside? How many times must I type "walk to
fat tree", "walk to stream bank" "walk to north fat tree" "walk to
northwest skinny tree" just to get somewhere? In the end your MUD is
just a variation on the connected graph (like a traditional
room-based MUD is), only the connections are harder to traverse, and
far more difficult to map.

I'm not saying I dislike this idea entirely (see below), but I am
suggesting that you shouldn't throw out directional movement so
quickly.

> The system uses a simplistic line of sight and polygonal region
> system. Locations are designed as layers of polygonal
> regions. People are passed into a polygonal region, and out of one
> when they hit the boundaries (determined by coordinate collision
> detection). The system is quite math intensive, but considering
> I'm not using it in a graphical MUD, the CPU will be able to more
> than handle it.

I expect that you're going to have problems when you get stuck
'behind' things. You can stand on the street, and see the bank and
the city hall. You can walk to the bank, but since its entrance is
positioned strangely, the city hall is now 'invisible' (the corner
of the bank's wall blocks it out). What happens if you get stuck
next to an object where nothing (other than said object) is visible?

> I haven't actually gotten to the code design of the system, but I
> have a good idea as to what it'd look like. The main problem lies
> in the creation of these polygonal terrains. Since they're
> described by coordinates, a graphical editor of some kind will
> most likely need to be utilized, a project I've half started and
> put off until I finish my database file management library, MudDB.
 
> Thats about as much detail as I'll go into, since I'm neither
> currently working on the design of the system, nor is it
> finished. But it should give you some good ideas on how to start
> afresh, apart from the strong grip the room system has on our
> thought processes when it comes to locational systems.

I've looked at the problem of making my (LPC based) MUD entirely
roomless (as your system implies), but dropped it because it would
involve too much recoding. Maybe next time I start over I'll look at
it ;-). There are some awkward problems involved in "scrolling" your
view of the room description (although I believe Kavir has done some
work on this -- more than I have, in any case). Finally, I don't
believe that dividing the world into discrete rooms is necessarily
bad (All the Zelda games do this, and still manage to maintain a
comfortably continuous feeling).

That said, I have done a lot of work on positioning objects *within*
a room. I use an orthogonal grid for representing the room's
coordinates. My editor is somewhat graphical (full screen editor
that runs over a telnet client). To demonstrate, I made a quick log
of some actions within my MUD (I'm the @):

  At the volcano's peak (Exits: south)
  
  .----------.  The ruddy, rocky slopes of the volcano
  |   N      |  slope down sharply to the south. The
  |          |  bowl of the volcano is north of you,
  |          |  steaming and smoking sulphurously. The
  |   =      |  air is hot and malodorous from the
  |         *|  smoke.
  |      @  *|
  '. . . . . '  Stretching out in every direction, to
                 every horizon, you can see the lands of
                 Walraven. Everything seems somehow
                 sharply in focus, despite the smoke.
                 There is an odd feel to this place, as
                 though it were of great significance,
                 despite its barrenness. There is a table
                 here. It has a motheaten tablecloth
                 spread out on it.
  
                 You see an angry gorilla, standing
                 here. You also see a bike and a
                 multi-product vending machine.
  [Acius] i
  Inventory
              Weapons: a greatsword
                Items: three horns, a bag and a ticket
               Weight: 13 lb.
  [Acius] give horn to gorilla
  [Debug] path = nnwnnwwn
  You move next to the gorilla.
  You offer to give Gorilla: a horn of plenty.
  Gorilla accepts.
  You give a horn of plenty to the gorilla.
  [Acius] l
  At the volcano's peak (Exits: south)
  .----------.  The ruddy, rocky slopes of the volcano
  |   N@     |  slope down sharply to the south. The
  |          |  bowl of the volcano is north of you,
  |          |  steaming and smoking sulphurously. The
  |   =      |  air is hot and malodorous from the
  |         *|  smoke.
  |         *|
  '. . . . . '  Stretching out in every direction, to
                 every horizon, you can see the lands of
                 Walraven. Everything seems somehow
                 sharply in focus, despite the smoke.
                 There is an odd feel to this place, as
                 though it were of great significance,
                 despite its barrenness. There is a table
                 here. It has a motheaten tablecloth
                 spread out on it.
  
                 You see an angry gorilla, standing
                 here. You also see a bike and a
                 multi-product vending machine.
  [Acius] walk to table
  [Debug] path = swss
  You move next to the table.
  [Acius] l
  At the volcano's peak (Exits: south)
  .----------.  The ruddy, rocky slopes of the volcano
  |   N      |  slope down sharply to the south. The
  |          |  bowl of the volcano is north of you,
  |   @      |  steaming and smoking sulphurously. The
  |   =      |  air is hot and malodorous from the
  |         *|  smoke.
  |         *|
  '. . . . . '  Stretching out in every direction, to
                 every horizon, you can see the lands of
                 Walraven. Everything seems somehow
                 sharply in focus, despite the smoke.
                 There is an odd feel to this place, as
                 though it were of great significance,
                 despite its barrenness. There is a table
                 here. It has a motheaten tablecloth
                 spread out on it.
  
                 You see an angry gorilla, standing
                 here. You also see a bike and a
                 multi-product vending machine.
  
This system is not entirely implemented (in particular, getting
inter-room exits to work properly is still a few painful hours of
hacking away). However, the basic kernel of the thing does work. We
plan on using it for ranged combat, more interesting dungeon puzzles
(traps on the floor/ceiling, sliding/false walls, etc.) and for
growing plants (plants need room on the grid to grow). It should
also introduce some interesting strategies for problems like party
formations (ranged in the back, melee in the front), blocking exits
(easy to block a door, hard to do anything outdoors) and setting up
sieges against enemy cities. Of course, right now I'd be happy just
to have the exits finished ;-).

-- Acius

_______________________________________________
MUD-Dev mailing list
MUD-Dev at kanga.nu
https://www.kanga.nu/lists/listinfo/mud-dev



More information about the MUD-Dev mailing list