I haven't had much online time as of late so I've been doing some scripting offline. My latest idea was taking a map drawn in text and converting it into a graphical tile-based map as seen in Dungeon Crawl (a dungeon crawler I'm very addicted to atm).
Here's a video of the progress (It's a bit choppy, but just to show what it looks like):
http://youtu.be/GpOtRj2w37w
Each map is stored in a table like so:
map.layout = {
"XXXX",
"X..X",
"X..X",
"XXXX",
}
where X represents a wall and . the floor. So the above would make a 4x4 room with 2x2 of it walkable space.
Maps can be as large as you want and the UI will cut it to size to display your current position. The idea is that you can map small areas (I mapped Maims Maze from Achaea in my example video) or large areas (the wilderness map of Achaea in the image above).
Here's the table used to generate Maim's Maze:
map.layout = {
"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBBBBBXXXXXBBBBBBBBBBBBBBBBBBBXXXXXBBBBBBBBBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBBBBBX...XBBBBBBBBBBBBBBBBBBBX...XBBBBBBBBBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBBBBBX...XBBBBBBBBBBBBBBBBBBBX...XBBBBBBBBBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBBBBBX...XBBBBBBBBBBBBBBBBBBBX...XBBBBBBBBBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBXXXXXXXXXX.XXBBBBBBBBBBBBBBBBBBBXX.XXXXXXXXXXBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBX...X...X...XBBBBBBBBBBBBBBBBBBBX...X...X...XBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBX...........XBBBBBBBBBBBBBBBBBBBX...........XBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBX...X...X...XBBBBBBBBBBBBBBBBBBBX...X...X...XBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBX...X...X...X...X...X...X...X...X...X...X...XBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBX.......X...............X...................XBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBX...X...X...X...X...X...X...X...X...X...X...XBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBXXXXXX.XXX.XXXXXXX.XXX.XXX.XXXXXXXXXXXXXXX.XXBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBX...X...X...X...X...X...X...X...X...X...XBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBX...X...X.......X.......X...........X...XBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBX...X...X...X...X...X...X...X...X...X...XBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBXX.XXX.XXX.XXXXXXXXXXXXXXXXXXX.XXX.XXX.XXBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBX...X...X...X...X...X...X...X...X...X...XBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBX.......X...................X...X...X...XBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBX...X...X...X...X...X...X...X...X...X...XBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBXXXXXX.XXXXXXXXXXX.XXXXXXX.XXX.XXXXXXX.XXBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBX...X...X...X...X...X...X...X...X...X...XBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBX...............X...X...................XBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBX...X...X...X...X...X...X...X...X...X...XBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBXX.XXXXXXXXXXX.XXXXXXX.XXXXXXXXXXXXXXX.XXBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBX...X...X...X...X...X...X...X...X...X...XBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBX...........X.......X...............X...XBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBX...X...X...X...X...X...X...X...X...X...XBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBXX.XXXXXXX.XXXXXXX.XXXXXXX.XXXXXXX.XXX.XXBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBX...X...X...X...X...X...X...X...X...X...XBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBX.......X...X.......X.......X.......X...XBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBX...X...X...X...X...X...X...X...X...X...XBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBXX.XXXXXXX.XXX.XXXXXXX.XXX.XXX.XXXXXXX.XXBBBXXXXXBBBBBBBBBB",
"BBBBBBBBBBBBBBX...X...X...X...X...X...X...X...X...X...XBBBX...XBBBBBBBBBB",
"BBBBBBBBBBBBBBX...X.......X...........X...X...X.......XBBBX...XBBBBBBBBBB",
"BBBBBBBBBBBBBBX...X...X...X...X...X...X...X...X...X...XBBBX...XBBBBBBBBBB",
"BBBBBBBBBBXXXXXX.XXX.XXXXXXXXXXXXXXXXXXX.XXX.XXX.XXXXXXXXXXX.XXBBBBBBBBBB",
"BBBBBBBBBBX...X...X...XBBBBBBBBBBBBBBBX...X...X...X...X...X...XBBBBBBBBBB",
"BBBBBBBBBBX.......X...XBBBBBBBBBBBBBBBX...X...X.......X.......XBBBBBBBBBB",
"BBBBBBBBBBX...X...X...XBBBBBBBBBBBBBBBX...X...X...X...X...X...XBBBBBBBBBB",
"BBBBBBBBBBXXXXXXXXXX.XXXXXXXXXXXXXXBBBXXXXXXXXXXXXXX.XXX.XXXXXXBBBBBBBBBB",
"BBBBBBBBBBBBBBX...X...X...X...X...XBBBBBBBBBBBX...X...X...XBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBX.......X.........f.XBBBBBBBBBBBX.......X...XBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBX...X...X...X...X...XBBBBBBBBBBBX...X...X...XBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBXX.XXXXXXX.XXXXXXXXXXXXXXXXXXXXXXX.XXXXXXX.XXBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBX...X...X...X...X...X...X...X...XX.XXBBBX...XBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBX.....V.X...X...................XX.XXBBBX...XBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBX...X...X...X...X...X...X...X...XX.XXBBBX...XBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBXXXXXXXXXX.XXXXXXXXXXX.XXX.XXXXXXX.XXXXXXX.XXBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBBBBBBBBBX...X...X...X...X...X...X...X...X...XBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBBBBBBBBBX...............X...................XBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBBBBBBBBBX...X...X...X...X...X...X...X...X...XBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBBBBBBBBBXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
}
B is black space, X is a wall, . is a floor, V is a stairway and I threw a magma pit at the end of the maze (f) just because
)
Hooking the map to in-game maps is as simple as storing each line of text from the map to the map.layout table and making sure you update map.terrain to represent the characters you're using (ex: M = "mountain")
I'm not sure if the tiles I'm using are open source (I think they are but just to be safe) so you'll want to get/create some of your own 20x20 pixel .png work great.