Map Making

By the look of the “Date Modified” attribute of my first Fallout map, I’ve been at this now for about three years. On the surface, it seems pretty straightforward. The GECK (or Creation Kit) allows you to view game worldspaces from the top down, on a cell by cell basis, with an orthographic camera. Basically all the requirements for creating a seamless map. Capture an image of each cell, paste it into Photoshop, and assemble the world’s most boring jigsaw puzzle.

Free Maps! Just add tedium!

Of course, just because it seems straightforward, doesn’t mean there weren’t bumps in the road. First among them, was to capture a specific area of the screen. At first I handled this with SnagIt’s region capture, but every time I went to make a map, I had to manually re-adjust the window, and the region to fit the game cell. So it took a bit of trial and error, and there was little consistency. To make matters worse, I was greatly limited by the performance and drive space of my computer at the time – dealing with massive images has a tendency to eat up both. Finally, there was the whole tedium part of it – even a smaller (DLC) map could have about 900 cells, with main game maps being even larger!

Step One: The Upgrade

Shortly before the System Requirements were posted for Fallout 4, I had finished my upgrade. Nothing that would make hardware fetishists excited, but it did (luckily) exceed said requirements. This upgrade included two new hard drives. A monster 2TB platter drive, and a 500GB SSD. So not only did I have significantly more RAM, GPU RAM, and a faster CPU, but also, conveniently had more room for Photoshop scratch disk usage.  So while cell captures on the Mojave Wasteland map were limited to around 300px across, The newly created Commonwealth map boasted 865px cell captures. By this point, I had went and created a tiny tool that would do the job of SnagIt. Something I could build on, to help me solve future problems.

 

Isn’t it cute?

Step Two: Consistency and Pushing the Limits

I was rapidly approaching the limits of what a 1080p screen could show at once, but I discovered if I could adjust the window just right I could expand that capture to 1021px across. But this required a lot of trial and error to achieve. So it was time to add another feature to my little tool. Using Win32 functions, I could now change the position and the size of the Render Window, so I could consistently get those large captures, without having to fiddle with position/bounds.

While I could now consistently get large cell captures, with the absolute minimum of effort, the tedium of building the map itself suddenly became the largest issue. While I could capture a cell with a key, I found myself constantly moving between the Cell View window to manually navigate the map, and back to Photoshop to place the capture. Not to mention all the key combinations required.  It was time to add some more bells and whistles

Step Three: Moar Hotkeys

To alleviate at least some of the back and forth, the next step would be to add a total of five new hotkeys, and bind all of these to the mouse buttons on my Logitech G600 Two buttons would now do the capture and pasting, another one will reset the view, and four more would handle the map navigation, by using Win32 to directly alter the cell coordinates on the Cell View window, and hit the “Go” Button.

All your control belong to us.

At this point, I could now do everything just using the mouse – and it was a big improvement; but there were still some issues.

First, Photoshop had problems, not only with getting focus, but also registering that new data was on the clipboard. This led to needing a couple of clicks to be able to paste, and through trial and error, clicking the capture button a couple of times, just so I wouldn’t get the previously captured cell again when I attempted to paste. Due to the aforementioned inaccuracy with the clipboard, I had to keep Photoshop zoomed in enough to verify I was getting the right cell, which required me to pan/scroll more while working on the map. Then of course, there was user error. Even with guides, the occasional capture wouldn’t be placed correctly, and I fat-fingered the wrong button, more than I’d like to admit. Which required additional time to get the map back to the correct cell.
So, for my next trick, I was going to try to eliminate both Photoshop and…well…me, as much as possible.

Step Four: When a Little Tool Grows Up

Now, I couldn’t remove both from the picture – entirely. I’m not going to implement my own scratch disk system to allow my app to do the entire map by itself. But what I can do, is work with large chunks of the map, and assemble them in Photoshop when I’m done. Instead of a thousand cells, I’d only have to deal with 15-20 larger images – so a lot less room for error. I also can’t remove myself from the process – a human eye is necessary to catch map symbols that, while useful when editing a map, aren’t actually visible in game. Judgement is also required to verify that the cell has finished loading. But again, what I can do, is limit my interaction to simply capturing, while the map navigation and placement, is handled by the app.

Mapmaking at a click of a button.

What you see above, is a proof of concept – a 16k pixel square map chunk created by a simple button press for each cell, and other than the occasional brief loading time, nearly instant. Massively cutting down the time it takes to build it. The next step is to make it more project focused – setting the upper left and lower right bounds for the whole map, making the app figure out how many chunks are necessary to complete it, and allowing the ability to save/switch between chunks.

The idea is to be able to start in the upper left corner, and simply hit the capture button repeatedly, with the app saving and switching chunks as needed – while automatically navigating to the proper cell. By my estimate, this could turn a multi-day project for a full game map down to something that takes only a handful of hours.

Epilogue: To be Continued…

While this should work nicely for Fallout 3/New Vegas maps, Fallout 4/Skyrim and newer maps still have an additional twist that needs to be handled. See, the GECK requires manually changing cell coordinates to continue loading new cells, while the Creation Kit will continue loading just by navigating with the arrow keys. However, trying to navigate by going directly to the cell in question, will reset the zoom for the perspective view. The perspective view is zoomed in so far by default, that it will clip terrain/objects in the orthographic view. So, when I get to Skyrim maps, I’ll have to figure out how to get around this.