Nortantis Updates (Version 2.8)
I’ve spent the last year steadily working on Nortantis, fixing bugs and adding features that I want to use in a map for a new book series I’m working on. I’m not great at posting regular updates, but here, at last, is a summary of what I’ve been working on for the past year.
Some of you might recall what Nortantis looked like a year ago:
That UI resulted from quickly dropping controls into a somewhat messy layout, and it had a lot of problems. It looked ancient. It hid the most useful feature, the editor, in a menu at the top. It required you to press the preview button every time you wanted to see your changes, and the list goes on. Possibly the worst issue, though, was that it required you to install Java and then run the program from a script.
So, after many months of work, I introduced Nortantis 1.0 to fix those issues. It added an entirely new user interface, and installers for Microsoft Windows and Ubuntu Linux that don’t require Java. (Sorry Mac users, but I can’t justify the cost of buying a mac, plus the $100 yearly license fee, to make a Mac installer for a project that doesn’t make money. I hope to do it someday. And Chromebook folks, yeah… I can’t support ChromeOS since jpackage doesn’t support it, so that will never happen).
Since version 1.0, I’ve continued to add features and fix issues, arriving now at version 2.8:
Some of you might wonder why I chose to re-work the old Java Swing UI instead of transitioning to web. Web has some clear advantages, but ultimately I stuck with a Java app because restrictions in sharing memory between threads in web would have slowed down map creation by about 3x. And a desktop app has the advantage that you can access files on your machine, making it easy to use your own images, and store your maps wherever you want instead of depending on someone else’s server or using web browser local storage.
Let’s take a look at what changed.
Changes from version 1.0 up to 2.0:
Installers
New look and feel. The options that used to be in an old wizard-style UI are now in the left panel that controls the map’s theme, the settings that affect the entire map. The right panel holds the editing tools that used to be in the editor window. If you miss the old text output, no need to fear; it still exists in a panel you can drag out from under the theme panel. It’s by default collapsed.
Dark theme from FlatLaf.
The map automatically draws when you open it, and automatically updates when you change any setting. The updater is smart about bundling multiple changes into a single draw whenever possible so you don’t get stuck waiting a long time when you change the map faster than it can re-draw it.
Significant performance improvements by parallelizing drawing threads, although performance will vary a lot depending on how powerful your CPU is. Re-draws triggered by the editing tools (painting land/water, adding/removing trees/mountains etc., and editing text) now take tens of milliseconds instead of multiple seconds. This is accomplished by incrementally updating only the part of the map that changed.
Display quality and zoom are separate concepts (in the lower right corner). This makes zooming in and out much faster, while allowing display quality to control quality vs speed.
Undo/redo applies to all changes to the map instead of just changes made in the editor window.
Icons tool now shows previews of icons, rather than just file names.
New, cleaner icons for mountains, hills, dunes, and trees.
Tools -> Name Generator launches a tool for generating random names. I’ve found it to be very useful when I need names for places or characters.
Generating new random maps has its own pop-up launched by File -> New Random Map. It has buttons to randomize the theme or land separately, and automatically updates the preview with each change, so you can quickly sift through land shapes or themes to find one you like. Hidden feature: If you drag the edges of that pop-up to make it larger, it will redraw the map at a higher resolution to fit the new size.
File -> New Map With Same Theme allows creating a new map with random land shape but with everything else the same, so once you’ve got the theme you want, it’s easy to create a new map with different land shape, world size, or dimensions.
New keyboard/mouse shortcuts for zooming/panning the map. See Help -> Keyboard Shortcuts.
Exporting the map has the option to save directly to a file instead of always opening the map in your system’s default image viewer.
In the Effects tab:
I added a new style “Splines with smoothed coastlines”, which uses an algorithm similar to a low-pass filter to smooth coastlines to better hide the polygon structure the maps are drawn on.
New Ocean effects type “Fading concentric waves”, which draws concentric waves that become increasingly transparent further from land.
Drawing ocean waves/shading on lakes is optional with the new checkbox “Draw ocean waves/shading in lakes”.
Frayed edges better use noisy edges to give more detail, especially when drawing at higher resolutions.
The tops of icons can protrude into the ocean, giving the map an increased feeling of depth.
You can override the built in images rather than change them in the old assets folder. See Edit -> Custom Images Folder. That pop-up has documentation for the required folder structure.
The map generator marks lakes in new maps, instead of leaving them as ocean. Also, the Effects tab now has a checkbox for choosing whether to draw ocean effects in lakes.
View -> Highlight Lakes makes it easy to see where your lakes are.
Highlighting rivers is moved to the View menu so that you can highlight rivers while using any editor tool.
The Land and Water and Icons tools don’t hide your text. If you want to hide text, you can do so using the Fonts tab -> Enable text.
Improved river drawing.
Improved text placement on new maps.
Bug fixes.
New features added since version 2.0 (up to version 2.8):
The Icons tool now has an Edit mode that allows moving/resizing icons.
The Erase/Replace modes in the Icons tool now target specific icons, rather than working on the polygons the images were attached to. This allows more direct control of image placement.
The bottom of the Effects tab now has sliders for easily changing the height of all icons of a given type (except decorations). For example, if you think Nortantis draws mountains too short, you can increase the height of all mountains at once. Note that if changing the height causes the bottom of an icon to touch the ocean, it will be deleted.
Changes in the Text tool draw much faster. The same for erasing and replacing icons using the icons tool.
New icon type: decorations, which are images you can place anywhere, including the ocean. I used Bing Image Creator to create some compasses, ships, and other markers for the built-in images, but you can add your own decorations by creating a custom images folder (in the Edit menu).
Cities (and decorations) in the Icons tool are laid out in cards to make them more compact, which means less scrolling to find the city you want.
Maps can use cities from multiple “city types”.
Tools -> Text Search or Ctrl+F allows searching map text.
Borders can have corners inset into the map. See the built-in border type “dashes with inset corners” as an example. Corners are inset if the corner image is wider than the width of the edge images.
I simplified the custom images folder structure by eliminating the “icons” folder, instead bringing its sub-folders up to the main folder. Custom image folders of existing maps will be automatically converted when you open the map.
Default export action is stored in the map settings instead of user settings.
New “books”: “SSA boy names” and “SSA girl names”. These aren’t really books; they’re lists of names from the US Social Security association. They’re useful if you want to generate a name that it is specifically masculine vs feminine.
Display quality is moved to be by Zoom to make it more visible.
Concentric waves draw faster.
More bug fixes.
I hope you enjoy these new features.