User Tools

Site Tools



Mapcraft - Fantasy map designer

WorldGen - SciFi universe generator

Mapcraft Web - Web based fantasy map designer

All code for the project is released under the GPL, and is copyright Samuel Penn.

The text on this wiki is dual licensed CC-BY-SA and GPL.

You can contact the author at


Mapcraft Web

Since Mapcraft was begun ~10 years ago (it went through several iterations before the version now on Sourceforge was started) things have changed a bit. The most important change is that I now have access to my own web servers, so the requirement of generating static images is no longer there.

This then is a holding page for ideas on how to move Mapcraft into a more dynamic, web based, environment. Navigation similar to GoogleMaps would be good, with support for much larger maps stored in a database.

See also: REST API, AJAX


This supersedes the Initial Ideas section below. We have hex based tiles, with an assumed resolution of 1 tile = 5km. The map is divided into sectors - each 32×40 tiles in size. Dynamic resolution is based on the sector/sub-sector etc.

A sector is sized so that it fits nicely onto a single sheet of A4 paper. The back end also supports a caching mechanism to we read/write whole sectors at a time for hopefully better performance.

Initial Ideas

  • Map data stored in the database. Possible use Hibernate to get away from my 10 year old set of database libraries.
  • Maps can be displayed online, and can be scrolled/zoomed/searched dynamically.
  • A single world will have one very big map, with dynamic resolution.
  • Should editing use a thick client, or web front end?
  • Still tile based, or possibly just a big pixel image?


Maps will be organised into sectors if 32×40 hexes, in the same style as Traveller star maps. Each sector consists of 16 (4×4) sub-sectors, each of 8×10 hexes. This latter fits nicely onto an A4 sheet of paper, hence the choice.

Each hex represents an area 5km across.

An entire sector can be represented by a single hex (0101). If no other hexes are defined in the database, then the entire sector is assumed to be the same as this hex.

A sub-sector can be represented with a single hex in the same way. There is the possibility of falling back to sub-sub sectors (4×5 hexes).

This saves space in the database in areas with little detail.

Current Status

Currently SVN has code which can display a basic map - things and paths aren't yet supported. There is a REST interface for this, which works nicely for getting tiled map images.

  • REST interface to display maps.
  • Display Things (towns, cities etc)
  • Display map by named area.

There is also a utility for importing maps from the old XML files, which is being used for testing. How best to do actual editing has yet to be decided.

Support for the REST interface has been added into the Alfresco Yagsbook implementation, so that a Yagsbook encyclopedia can now reference these maps and embed them. Maps can currently be selected according to area, and the area is automatically scaled to a sensible size.

mapcraftweb.txt · Last modified: 2015/02/04 22:39 (external edit)