# [MUD-Dev] Room-based vs. coordinate-based

Alex Oren alexo at bigfoot.com
Wed Jun 4 12:52:47 New Zealand Standard Time 1997

```Jeff wrote:

} >How do you handle cross-room actions?
}
} As I understand your question, I don't.  As I say "room" is too narrow a
} term. My model is a world of nested containers, each iwth acoordinate
} system. If you want something like a voice to be heard in multiple places,
} or an arrow to arch across an area, the areas in questio nare all part of
} the same "container" and exist in the same coordinate space.
}
} As an example... a large expanse of desert might all be one container.  The
} streets of a city m,igth be another container. Inside a bar in the city is
} in a third conatiner.
}
} The whole purpose of containers is to cut down on the interraction between
} players where logical and reduce the n-square problem. (Actually, thats not
} entirely true, my parse system is also inhearently tied to the container
} hirearchy.)

Consider:

+---------------------------------------+---------------+    N
|                                       |               |    ^
|  [A]          Grassland          [B]  |  [C]  Forest  |   / \
|                                       |               |    |
+---------------------------------------+---------------+    |

Alfred is in the grassland.			Position[A] = (30,30).
Bubba is in the grassland, near the forest.	Position[B] = (200,30).
Calvin is in the forest.			Position[C] = (230,30).

How will the program handle the following scenarios:

* Bubba sees Alfred ("in the distance") but not Calvin.

* Bubba says "hi".  Calvin hears him but Alfred does not.

* Bubba screams "H-E-L-P".  Calvin and Alfred both hear him.

* Calvin shoots an arrow to the west, which arches over Bubba
and accidently hits Alfred.

* Calvin walks west.
Bubba sees a message "Calvin arrives ...".  Alfred does not.

In a purely "container-based" setting, \$Calvin would send a message to
\$Grassland which would, in turn, send messages to \$Alfred and \$Bubba.

} >What algorithms do you use?
}
} Um... thats BIG question. All code is algorithymic.  Im not sure what your
} question is here...

I meant data structures to represent spatial relationships and algorithms to
compute message recipients.

Have fun,
Alex.

```