> > There is, of course, some problems. It requies everything to be > physically possible. [snip] > Where they would *logically* connect, they do not, because no-one > ever bothered to check. As it is, the zones are free-floating > masses of rooms that can "magically" connect with one another. If > you stapled them down to the ground in a limited space, several > would likely overlap...:\ Not only that but a lot of zones also depend on unrealistic room layouts for mazes. Those rooms would have to be taken out and some special coding to emulate the maze added in. > The only way I can see to remedy this situation is to have the > program (or you can do it manually) find where two zones intersect > by in an illogical way by building the array and reporting the > two intersecting zones. Once you do this it would be a good idea to add checks to OasisOLC that prevent the rooms from overlapping each other all over again. > This is why, though, I am moving away from > free-floating, unlimited zones and placing them in a three-dimensional > cube. It has its own limitations, but it's very neat for tracking, > flying, etc. (e.g., you don't have to *fake* flying or make it just > a hovering thing). Do you mean that you have one room for every coordinate within the boundries of the "cube" or only that you insure that each room doesn't overlap? Either way you can implement some cool searching algorithms like A* (capable of taking into effect terrain as well as being pretty damn fast) that you couldn't implement if the rooms don't form a nice 3d structure (ie- no overlaps). Here are some url's I've found helpful: http://theory.stanford.edu/~amitp/GameProgramming/ http://hem.passagen.se/fmj/pathfinder/index.html For the room layouts possible under normal circumstances, Jeremy's algorithm is near impossible to improve upon. If anyone has any idea whether it's possible to implement a better algorithm without constraining the layout of the rooms (even if it's only a slight notion of a solution) I'd love to hear from you. +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/08/00 PST