On Aug 29, 3:20 pm, Thomas Bartscher <thomas.bartsc...@googlemail.com> wrote: > Wait, I just realized that your directions are relative and not absolute. > I name them and thus a cell always knows where north is. How are you > doing that without loosing track of where to move?
Short answer: There are no cells.
The user of the map interacts with Positions. From a position, I can give an absolute direction: "North, South". The position is a struct of x, y, angle, and room id. The local angle in the position transforms the "North" given by the user into the actual underlying topology.
Thus, there is no requirement that pos->north->south == pos. Indeed, since the result of pos->north() is a new position, it could have its own local angle be different than pos.
Jacob's Matrix uses this angle shifting heavily to get people lost. The Jacob's Matrix "maze" is actually quite trivial in connectivity. The problem comes from the constant angle twists. I've learned from experience that this is way confusing to users and to avoid it as much as possible.
The recent history of my 7DRLs has been an attempt to reduce the confusion engendered by letting rooms connect any which way. Normal roguelikes benefit highly from people building an absolute map in their minds of where things are in the game. When you mess with that, you cause lots of problems.