Print Page

Wednesday, October 28, 2015

DunGen variant concept - Stock a Map

So, let's say you want to use DunGen to generate a dungeon key for a map you already have. There is a digital version of the map on a website like this blog or Dyson's or Matt's. What do you have to do currently? You first probably need to get out a graphics program and put numbers onto the map and save it. Then go into DunGen and set the size of the map to something close to the highest number on the map. Then add or subtract nodes until it matches. It doesn't really matter what the connecting edges are, since you are only interested in the node list. Then copy out the node table to a word processor file, maybe also copy out the notes field for the wandering monsters, relationships and any other notes you added. Edit nodes either before or after copying. Then paste the edited image into the file, and you have your dungeon scenario. It's a bit, um, tedious.

Here is what the experience could be:
You find a map you like, right click the image and copy the URL to it. You bring that back to DunGen and click a button for "Stock a Map" or something like that. The UI rearranges a bit, the current network clears, and you have a field to paste the URL in. Paste in, maybe hit a button, and the map image loads into the app. For my own maps, and maybe other map makers that opt in, there could be a select menu to just pick the map to use. Click a button for Place Nodes. Click onto each map feature that you want to be a numbered feature. As you click, it starts creating nodes, probably just showing room numbers in a small label initially, so as not to obscure the artwork. The node list fills in below the map image. When you are done, you can click that button again, which now says "Stop placing nodes", and then you can drag nodes around like usual. The nodes stay where you put them unless you move them. Reroll or edit nodes as necessary. When you save the dungeon, it remembers where you put the nodes and the URL of the map, along with the usual contents. When you load it, it sets back up the way you left it. There is no edge list, since the map image shows you everything you need to know in that regard. Seems to me this is about the easiest possible way to assemble a scenario  for a nice map in a hurry. The main downside would be that it does not store the map, so it if disappears from that URL, you would have to repoint it at another copy to see the map image again.

Maybe after awhile, there is an export to PDF that makes a PDF document of the map, key, and notes, in version 2 or 3 of the feature.

I've been mulling around an extraction from the app that would do this, and figuring it would be a moderately heavy project to learn what I needed about HTML5 Canvas to do everything needed to pull it off. Today I had a bit of an epiphany when I realized that the Vis.js library can do this for me, if I turn off the physics, use nodes as the labels, and make a graph without edges. I just have to write the rather small routine to put in the background image, change what gets created and stored (X,Y coordinates, map URL and scaling, etc, and change a bunch of settings. Not sure yet if it would be better to do it as a separate application webpage, or as a mode in the current one that you toggle into. Anyway, it should go together as a first version pretty quickly. It could even be integrated with an HTML5 drawing app to let you draw a map and then populate it. So far, I have started rearranging the current codebase, so that it will be easier to slot in new code that isn't about the current network graphs.

P.S. started coding. It will be a second page on the same site, the simplest thing that works.

1 comment:

  1. After a couple of nights, I have the page and its JS loading again on the separated out code that has references to edges excised. It's not doing anything yet. That comes next. Wondering if it might be a bad move to remove them entirely, and whether it would be useful to leave them available for editing, not displayed in the lists.
    Room names also are going, since A they will seldom fit when rolled random after placement over a specific room on a map, and B there will often be no room for more than a room number on a map. Trying to decide if the default should be a minimalist number on a transparent background or a circle, maybe white background and black border, with a number in it. The second is more legible without editing against any background image, the first obscures the maps the least. Both options will definitely be there in the Styles.