ISSession:Navigation System
Overview
The Inner Space navigation system is comprised of three basic parts:
- Worlds
- Points, interconnected and contained by Worlds
- Paths, generated when needed, between two points in any given world
The way the system works is points with up to three dimensions are added to given "worlds", which are merely separate sets of points. Generally, the "worlds" will be used simply as different areas in a game, rather than literal worlds. Every world has a name you select, and can coexist peacefully (wouldn't that be nice to have in real life?). Points, which are also referenced by name, can be connected, either one way or two way, to any other point in the world. Each connection implies a direct path which may be used to automate movement within the game.
Paths
Paths come into play when the shortest distance between two given points is required, such as to travel from one end of a "zone" to the other, or simply to move to the bank teller. Although any number of paths may be used in practice, Inner Space provides access to one path object for general use. A path may be generated by using the NavPath command, supplying the name of the world, and two points in the world. The path, if found, will consist of any number of individual points, and can be accessed via the NavPath Top-Level Object.
Storage
Navigation worlds and points are stored in XML in order to make them easy to share and easy to integrate into other software (say, to graphically display all points in a world). Any number of worlds may be stored in a single XML file, and the same world may appear any number of times in another XML file. Any worlds with the same name will be merged into the same world. Likewise, any points in a given world with the same name will be merged into the same point.