May 1999
- Object server. Quzah [softhome]
- Censorship & Its Impact On World Immersion J C Lawrence
- OT: Ethics v Law Greg Munt
- Virtual v Artificial Worlds Greg Munt
- Virtual v Artificial Worlds Matthew Mihaly
- Custom Server Roll Call? Ola Fosheim Grøstad
- Custom Server Roll Call? Caliban Tiresias Darklock
- Custom Server Roll Call? Wes Connell
- Custom Server Roll Call? David Bennett
- Custom Server Roll Call? Koster, Raph
- Custom Server Roll Call? Greg Munt
- Custom Server Roll Call? The Arrow
- Custom Server Roll Call? Alex Stewart
- Custom Server Roll Call? Nathan F Yospe
- Custom Server Roll Call? Caliban Tiresias Darklock
- Custom Server Roll Call? Ola Fosheim Grøstad
- Custom Server Roll Call? Jon A. Lambert
- Custom Server Roll Call? Ola Fosheim Grøstad
- Custom Server Roll Call? Jon A. Lambert
- Custom Server Roll Call? Matthew Mihaly
- Custom Server Roll Call? Jon A. Lambert
- Custom Server Roll Call? Ola Fosheim Grøstad
- Custom Server Roll Call? Jon A. Lambert
- Custom Server Roll Call? Chris Gray
- Custom Server Roll Call? Marc Hernandez
- Custom Server Roll Call? Greg Munt
- Custom Server Roll Call? Jon A. Lambert
- Custom Server Roll Call? Matthew Mihaly
- Custom Server Roll Call? Jon A. Lambert
- Custom Server Roll Call? Ola Fosheim Grøstad
- Custom Server Roll Call? J C Lawrence
- Custom Server Roll Call? Ling
- Custom Server Roll Call? Jon A. Lambert
- Custom Server Roll Call? Emil Eifrem
- Custom Server Roll Call? Niklas Elmqvist
- Custom Server Roll Call? Chris Gray
- Custom Server Roll Call? Emil Eifrem
- Custom Server Roll Call? Chris Gray
- Custom Server Roll Call? Emil Eifrem
- Custom Server Roll Call? Chris Gray
- Custom Server Roll Call? Caliban Tiresias Darklock
- Custom Server Roll Call? J C Lawrence
- Custom Server Roll Call? Emil Eifrem
- Custom Server Roll Call? Marc Hernandez
- Custom Server Roll Call? Ola Fosheim Grøstad
- Custom Server Roll Call? Jo Dillon
- Custom Server Roll Call? Ola Fosheim Grøstad
- Custom Server Roll Call? Marc Hernandez
- Custom Server Roll Call? Ola Fosheim Grøstad
- Custom Server Roll Call? Marc Hernandez
- Custom Server Roll Call? Adam Wiggins
- Custom Server Roll Call? Matthew Mihaly
- Custom Server Roll Call? Hans-Henrik Staerfeldt
- Custom Server Roll Call? Ola Fosheim Grøstad
- Custom Server Roll Call? Caliban Tiresias Darklock
- Custom Server Roll Call? Caliban Tiresias Darklock
- Custom Server Roll Call? claw@kanga.nu
- Custom Server Roll Call? Emil Eifrem
- Custom Server Roll Call? Chris Turner
- Custom Server Roll Call? Ling
- Custom Server Roll Call? Caliban Tiresias Darklock
- Custom Server Roll Call? Jay Carlson
- Custom Server Roll Call? Caliban Tiresias Darklock
- Custom Server Roll Call? Ling
- Interesting dilemma Peck, Matthew x96724c1
- Interesting dilemma Caliban Tiresias Darklock
- Interesting dilemma Quzah [softhome]
- Interesting dilemma Brandon A Downey
- Interesting dilemma Shawn Halpenny
- Interesting dilemma Matthew Mihaly
- Interesting dilemma Benjamin D. Wiechel
- Interesting dilemma Koster, Raph
- Interesting dilemma Wes Connell
- Interesting dilemma Mattias Lönnqvist
- Interesting dilemma Mik Clarke
- Interesting dilemma Joel Kelso
- Interesting dilemma Ronan Farrell
- Harvey's Rules of Immship John Hopson
- Confiscating items (Interesting dilemma) Ola Fosheim Grøstad
- AW: Interesting dilemma Hofbauer Heinz
- Virtual Property J C Lawrence
- Virtual Property Koster, Raph
- Virtual Property Jon A. Lambert
- Autogenerating maps from muds using cardinal directions for exits? Ben Greear
- Autogenerating maps from muds using cardinal directions for exits? Mik Clarke
- Autogenerating maps from muds using cardinal directions for exits? Ben Greear
- Autogenerating maps from muds using cardinal directions for exits? J C Lawrence
- Autogenerating maps from muds using cardinal directions for exits? Ben Greear
- Autogenerating maps from muds using cardinal directions for exits? Sunny Gulati
Ben Greear wrote:
>
> J C Lawrence wrote:
> >
>
> > In a long prior life I hacked a tool to build maps from telnet game
> > logs. The algorithm was simple:
> >
> > 1) Pull out all command lines which contain a directional command
> > (U/D/N/NE/E/SE/S/SW/W/NW) and the next line of output (the room
> > desciption of the room moved to).
> >
> > 2) Trim out all error/"You can't do that" entries.
>
> I will be working from my world database, and so can make complex, and
> arbitrarily correct assumptions about the exits et al. I can also
> do things like stop at zone boundaries and so on...
>
> > 4) Build a graph of nodes representing thr trimmed log (just walk
> > down the log, adding nodes as new locations are found).
>
> Care to elaborate on that part?
>
[rest snipped]
When I did stuff like this a few years ago, I ran into problems of
changes of resolution: for example, while within a city, each "room" was
relatively close to the other, and once you left the city.. the scope
expanded. And entering a wizard's realm, sometimes going North, East,
South, West, didn't bring you back to where you started.
Even more common:
[street]--[street]
| |
[shop] [street2]
and in the shop:
[street]
|
[shop]-[behindthecounter]
[behindthecounter] would bump into [street2]
the problem is that the maps would "bump" into each other in very
non-visually-pleasing ways.
Method 1 to solve it was scoping things (which I picked out of the
filename for the room (this was LPC)).
Method 2 was interesting: Whenever you're going to "bump" into
something, you do the equivalent of inserting a bunch of blank columns
or rows into your graph, and then try again. It kinda worked.
Method 3 was: If we're going to bump into something, don't map it on
this page, draw it on a seperate page. I got a lot of pages; our mud
wasn't very well planned.
Method 4 (which I did not try) was: choose some level at which to group
things together so they map well. If they don't map well, go back and
subdivide the groups. [human intervention would be cool there]
Algorithm was kinda like this:
do {
Z dimension = 0
put a starting point on the map somewhere;
// possibly set up "current scope" info as well
do {
for every point that's on the map
if there's an exit we haven't followed yet
find out if that exit is followable (ie, maybe you don't want
different wizard's stuff to pop up on the same map)
find out if that exit's target room has already been mapped
(if so, is it in the right spot? if not, log it as a
problem)
if not, put it on the map:
if the place we were going to place it is occupied
"bump" or log or [your choice]
endif
endif
endif
next
} until we_could_do_nothing_this_last_pass
increase Z dimension
} until there are no more rooms left to map
I ended up writing an object that would run around in the mud making
notes of rooms and the exits within them; this object wrote to a log
file like so:
/room/file/name
north: /other/room/file/name
east: /other/room/file/name/also
down: /yet/another/room/file/name
then, a different program parsed through the log file, calculated
coordinates (I used X,Y and "Z", Z being a page number), and stuck them
right back into the logfile:
/room/file/name 45 60 0
north: /other/room/file/name 45 61 0
east: /other/room/file/name/also 46 60 0
down: /yet/another/room/file/name 39 25 2
I think I wrote that part in perl, or clipper [I was a clipper
programmer back then for a living]
I then had a last program go through and draw these suckers on a screen
(in clipper, using some graphics library or the other). That's about
when I shelved the project, other things became more interesting.
Cheers,
Sunny
- Autogenerating maps from muds using cardinal directions for exits? Sunny Gulati
- Autogenerating maps from muds using cardinal directions for exits? Jon A. Lambert
- Discussion of large server IO handling desing J C Lawrence
- Planes of existance Quzah [softhome]
- Planes of existance Greg Munt
- Planes of existance Quzah [softhome]
- Planes of existance Caliban Tiresias Darklock
- Planes of existance Ben Greear
- Planes of existance Caliban Tiresias Darklock
- Planes of existance Greg Munt
- Planes of existance T. Alexander Popiel
- Planes of existance Ola Fosheim Grøstad
- Planes of existance Matthew Mihaly
- Dynamically changing room descriptions Ronan Farrell
- Dynamically changing room descriptions Mik Clarke
- Dynamically changing room descriptions Ben Greear
- Dynamically changing room descriptions Koster, Raph
- Dynamically changing room descriptions Richard Bartle
- Dynamically changing room descriptions Matthew Mihaly
- Dynamically changing room descriptions Travis Casey
- Dynamically changing room descriptions Travis Casey
- Dynamically changing room descriptions Ola Fosheim Grøstad
- Dynamically changing room descriptions Jon A. Lambert
- Dynamically changing room descriptions Ola Fosheim Grøstad
- Dynamically changing room descriptions Eli Stevens {KiZurich/GreySylk}
- Dynamically changing room descriptions Jon A. Lambert
- Dynamically changing room descriptions Ling
- Dynamically changing room descriptions Christopher Allen
- old fight system I toyed with Koster, Raph
- APE 0.2.1 J C Lawrence
- OT: robots, agents and emotions Ola Fosheim Grøstad
- OT: robots, agents and emotions Ola Fosheim Grøstad
- Time Discontinuous MUD Ling
- Semi-OT: International intellectual property right (was: Custom Server Roll Call?) Custom Server Roll Call?) Ola Fosheim Grøstad
- Semi-OT: International intellectual property rights Ola Fosheim Grøstad
- Marc Hernandez' Server Greg Munt
- Marc Hernandez' Server Jay Carlson
- Marc Hernandez' Server Caliban Tiresias Darklock
- Marc Hernandez' Server Travis S. Casey
- Marc Hernandez' Server Adam Wiggins
- Marc Hernandez' Server Marc Hernandez
- Marc Hernandez' Server qitelremel@hotmail.com
- Scry 1.9.1 (Feature Freeze) released. Ben Greear
- The distinction between magic spells and magic abilities Greg Munt
- The distinction between magic spells and magic abilities Matthew Mihaly
- Multi-threaded mud server. Ross Nicoll
- Multi-threaded mud server. Caliban Tiresias Darklock
- Multi-threaded mud server. Jon A. Lambert
- Multi-threaded mud server. Jo Dillon
- Multi-threaded mud server. Travis S. Casey
- Multi-threaded mud server. Jon A. Lambert
- Multi-threaded mud server. Chris Gray
- Multi-threaded mud server. Chris Gray
- Multi-threaded mud server. Jon A. Lambert
- Multi-threaded mud server. Mik Clarke
- Multi-threaded mud server. Chris Gray
- Multi-threaded mud server. Mik Clarke
- Multi-threaded mud server. Ross Nicoll
- Multi-threaded mud server. Jon A. Lambert
- Multi-threaded mud server. Ross Nicoll
- Multi-threaded mud server. Ross Nicoll
- Multi-threaded mud server. Ross Nicoll
- Multi-threaded mud server. Jon A. Lambert
- Multi-threaded mud server. Ross Nicoll
- Multi-threaded mud server. Caliban Tiresias Darklock
- Multi-threaded mud server. Mark Gritter
- Multi-threaded mud server. Ross Nicoll
- Multi-threaded mud server. Travis S. Casey
- Multi-threaded mud server. Ola Fosheim Grøstad
- Multi-threaded mud server. Ross Nicoll
- Multi-threaded mud server. Ola Fosheim Grøstad
- Multi-threaded mud server. David Bennett
- Multi-threaded mud server. Ross Nicoll
- Multi-threaded mud server. Jon A. Lambert
- Multi-threaded mud server. Travis Casey
- Macro languages Caliban Tiresias Darklock
- LOTR and Mud [was: Marc Hernandez' Server] Marc Hernandez
- Noise: boys will be boys (was Multi-threaded mud server.) Ola Fosheim Grøstad
- Kanga.Nu has finally moved... claw@kanga.nu
- Java & MUD servers Laurent Bossavit
- ScryMUD 1.9.3 released. Ben Greear
- ScryMUD 1.9.3 released. Chris Gray
- ScryMUD 1.9.3 released. Ben Greear
- ScryMUD 1.9.3 released. Jon A. Lambert
- [TECHNICAL] How to generate pre-processor output (template problem). Ben Greear
- Searching the archives claw@kanga.nu
- Text Parsing Albert
- Text Parsing Greg Miller
- Text Parsing Kylotan
- Text Parsing Chris Gray
- Text Parsing Albert
- Text Parsing Mik Clarke
- Text Parsing Cynbe ru Taren
- Text Parsing Chris Gray
- Text Parsing Ola Fosheim Grøstad
- Text Parsing Nathan F Yospe
- Text Parsing Ola Fosheim Grøstad
- Text Parsing Mik Clarke
- Text Parsing Marc Hernandez
- Text Parsing Kylotan
- Text Parsing Ross Nicoll
- Text Parsing Kylotan
- Text Parsing Travis Casey
- Text Parsing Chris Gray
- Text Parsing Ross Nicoll
- Text Parsing Travis Casey
- Text Parsing Albert
- Text Parsing Travis Casey
- Text Parsing Mik Clarke
- Text Parsing Ross Nicoll
- Text Parsing Chris Gray
- Text Parsing Katrina McClelan
- Text Parsing Travis S. Casey
- Text Parsing Caliban Tiresias Darklock
- Text Parsing Chris Gray
- Text Parsing Matthew Mihaly
- Text Parsing Caliban Tiresias Darklock
- Text Parsing Travis S. Casey
- Text Parsing Matthew Mihaly
- Text Parsing Travis S. Casey
- Text Parsing Matthew Mihaly
- Text Parsing Travis Casey
- Text Parsing Greg Miller
- Text Parsing Albert
- Text Parsing Chris Gray
- Text Parsing Greg Miller
- Text Parsing Ola Fosheim Grøstad
- Text Parsing Travis Casey
- Text Parsing Caliban Tiresias Darklock
- Text Parsing Chris Gray
- Text Parsing Travis S. Casey
- Text Parsing Chris Gray
- Text Parsing Travis S. Casey
- Text Parsing Ben Greear
- Text Parsing Matthew Mihaly
- Text Parsing Travis S. Casey
- Text Parsing Greg Miller
- Text Parsing David Bennett
- Text Parsing Travis Casey
- Text Parsing Cynbe ru Taren
- Text Parsing Katrina McClelan
- Text Parsing Travis S. Casey
- Text Parsing Greg Miller
- Text Parsing Chris Gray
- Text Parsing Martin C Sweitzer
- Text Parsing Jp Calderone
- Text Parsing Chris Gray
- Text Parsing Ben Greear
- Text Parsing Travis S. Casey
- Text Parsing Greg Miller
- Text Parsing Greg Miller
- Text Parsing Chris Gray
- Text Parsing Matthew Mihaly
- Text Parsing Ben Greear
- Text Parsing Caliban Tiresias Darklock
- Text Parsing Adam Wiggins
- Text Parsing Chris Gray
- Text Parsing Kylotan
- Text Parsing Koster, Raph
- Text Parsing Ben Greear
- Text Parsing Jon A. Lambert
- Text Parsing Adam Wiggins
- Text Parsing Chris Gray
- Text Parsing Matthew Mihaly
- Text Parsing Koster, Raph
- Text Parsing Hans-Henrik Staerfeldt
- Text Parsing Koster, Raph
- Text Parsing Travis S. Casey
- Text Parsing Greg Miller
- Text Parsing David Bennett
- Text Parsing Ross Nicoll
- Text Parsing Travis S. Casey
- Text Parsing Ross Nicoll
- Text Parsing Albert
- Text Parsing Travis S. Casey
- Text Parsing Matthew Mihaly
- Text Parsing Greg Miller
- Text Parsing Matthew Mihaly
- Text Parsing Greg Miller
- Text Parsing Matthew Mihaly
- Text Parsing Chris Gray
- Text Parsing Matthew Mihaly
- Text Parsing Adam Wiggins
- Text Parsing Katrina McClelan
- Text Parsing Adam Wiggins
- Text Parsing Matthew Mihaly
- Text Parsing Adam Wiggins
- Text Parsing Katrina McClelan
- Text Parsing Jon A. Lambert
- Text Parsing J C Lawrence
- Text Parsing J C Lawrence
- Text Parsing Joey Hess
- Text Parsing J C Lawrence
- Text Parsing Matthew Mihaly
- Text Parsing J C Lawrence
- Text Parsing Koster, Raph
- Text Parsing Matthew Mihaly
- Text Parsing Koster, Raph
- Text Parsing Chris Gray
- Text Parsing Albert
- Text Parsing Caliban Tiresias Darklock
- Text Parsing Matthew Mihaly
- Text Parsing Greg Miller
- Text Parsing J C Lawrence
- Text Parsing Caliban Tiresias Darklock
- Text Parsing Jon A. Lambert
- Text Parsing Caliban Tiresias Darklock
- Text Parsing Hans-Henrik Staerfeldt
- Text Parsing claw@kanga.nu
- Text Parsing Caliban Tiresias Darklock
- Text Parsing Greg Miller
- Text Parsing Petri Virkkula
- Text Parsing Matthew Mihaly
- Text Parsing Petri Virkkula
- Text Parsing Adam Wiggins
- Text Parsing Katrina McClelan
- Text Parsing Petri Virkkula
- Dylan Programming Language Ling
- Dylan Programming Language Jon A. Lambert
- Ultimate Universe Documentation Caliban Tiresias Darklock
- Oh yeah... Caliban Tiresias Darklock
- [TECHNICAL] [SOLVED] (template problem). Ben Greear
- [RELEASE] ScryMUD 1.9.4 available for download. Ben Greear