Mapping Minecraft with Go (a.k.a OrienteerMap)

It has been, for a long while, on my bucket list to implement a program that renders from some sort of game/map data. And over the summer 2021, I had the time and opportunity to implement just that. Meet OrienteerMap, as I call it.

Introduction

Version 1 Version 2

As a process of iteration, I made two different prototypes. First one, one on the top, renders large-scale PBM maps by having only single pixel per block. PBM was chosen as a format due to the ease of implementation of a renderer that doesn’t require the whole image file loaded in memory at once, without resorting to advanced lower-level methods like memory-mapping. Second one generates grids of SVG images - plan was to implement a beautifully scaling geographical map, with a combination of pixel tiles and contour curves (only former has been implemented so far).

Lessons learned from this venture

Conclusion

I stopped developing this after I had an initial prototype - it was a hectic span of few weeks to implement these. That said, I wouldn’t foreclose the idea of me returning to this prototype eventually - the concept of using Go for parallelized data-based 2D rendering was proven very viable and usable with further refinement.

Source code for the second iteration can be seen on GitLab