Examples of the interface for both the minimap and full map in Super Metroid:
<img src="https://dl.dropbox.com/u/919275/CivilWarProj/Placeholders/Super%20Metroid_1.png" border="0" />
<img src="https://dl.dropbox.com/u/919275/CivilWarProj/Placeholders/Super%20Metroid_2.png" border="0" />
I want to be able to create a similar map interface, where the player can see where they are in the level at any time, and dynamically fill in blanks and unexplored areas as they explore the map, as well as display a mini-map as well.
Now, for the map itself, I figured it would be a simple matter of having an array that records every 'square' on the map, which has, in order:
* X and Y values for grid position (needed for a 2D array to work)
* A value that determines whether it is 'hidden', shown but unexplored, or explored
* A value that determines what "type" of square it is (basically, a 0 would be completely blank, 1 would have a wall on the left, 2 would have a floor but no walls, etc).
* A value for if there is an icon to display on the square (such as a save point, an item, etc).
That's easy enough, but the main issue after that is showing and displaying both kinds of maps, as well as determining where the player is on the grid at any one time. I've been considering setting up a 'grid' of invisible objects that would work as 'grid spaces' with the values and can collide with the player to automatically determine where the player is on the grid (and would also be useful for level design, since I would have a reference on hand), but setting up an entire grid of those things would likely be rather tedious, I imagine, and I'd rather have a more automated method.
And then there's setting up the map grid itself, which is somewhat trickier, I think. Setting up a map manually is also quite possible... But it would be EXTREMELY TEDIOUS. If there was a tileset feature, doing it manually would actually be pretty easy. XD