Repository navigation
Release v3.0.0
Build Details:
- Commit: 8a5f804
- Author: Filroden
Changelog
Changes since v2.6.0
Version 3.0.0 is the largest update to the module so far. The main changes are:
- New terrain engines: Advanced (Tectonics) v2, where tectonic plates decide where the continents lie, and Guided v2. Both have deeper oceans with continental shelves and mid-ocean ridges, and look the same at any map size.
- A new look for every map: relief shading brings out hills, valleys and the seabed, the sea and lakes are drawn as water you can see into, biomes can lie on the seabed, and rivers widen as they flow, meander across plains and split into deltas.
- Tectonic features: mountain ranges, subduction zones, rifts and hotspot chains replace fault lines, each shaped by the terrain it crosses.
- Better regional maps: regional maps can now be made from Guided and Advanced (Tectonics) maps, gain finer detail the further you zoom in, and line up with their parent's grid, rivers, rain shadows and faults.
- Better brushes: a new Roughen brush adds a natural texture, and Smooth now smooths properly without moving the coastline.
- Easier editing: move whole shapes, resize pins and labels with the mouse, see what each tool can do in the canvas hint, Save As, and random land masks for Guided maps.
- Faster: maps generate and load much faster, using all of your computer's processor cores, and painting and saving large maps no longer lags or stalls.
Note: Maps you have already made are never changed without asking. They keep generating exactly as before until you choose to update them. When you open a map that the new rules would change, a dialogue lists what would change for that map and offers to update it. An update is not saved automatically: reload the map without saving to return to the original, or save it to keep the update. Updating a map made with the original tectonic engine builds completely new terrain (everything you placed on it stays where it is), so only update a tectonic map you are happy to rework. A few fixes to regional maps need the regional map to be created again from its parent (see Bug Fixes).
Note: A few changes reach every map, because they only change how the map is drawn. Every map uses the new way of drawing the terrain, sea, lakes and rivers (an existing map's rivers keep their routes and lakes until you update it). As part of this, a frozen lake now shows Pack Ice, a land biome painted over a lake no longer shows on it, Pack Ice painted on land is no longer shown, and custom biomes set to render solid over water become Land and overwater biomes. Convergent and divergent fault lines now fade out smoothly at their edges instead of ending in a faint step, so their shape changes slightly near their edges.
FEATURES
- Advanced (Tectonics) v2: A new tectonic engine where the plates decide where the continents lie. Each plate is either buoyant continental crust or sinking ocean floor. Where plates collide they raise mountain ranges on land and trenches at sea, and where they pull apart they open rift valleys on land and mid-ocean ridges at sea. Coastlines are shaped as on Guided maps, with inlets, bays and small islands. Changing the number of plates reshapes the continents, but adding a single plate changes only a small part of the map. The original engine is now called Advanced (Tectonics) v1, the engine list shows a version number (Guided v2 and Advanced (Tectonics) v2), and every new map uses the latest version.
- Coasts and oceans (Guided v2 and Advanced (Tectonics) v2): Oceans are deeper. Continental Shelf sets the width of a band of shallow sea along the coast, beyond which the seabed falls steeply to the ocean floor, and a new Coastal Plains setting adds a band of low, gently rolling land along the coast. Both bands vary a little in width, so they do not trace the coastline exactly. A new Ocean Scale setting sets how quickly the seabed falls away beyond the shelf, and Continent Scale now sets only how quickly the land rises.
- Mid-Ocean Ridges: Ridges rise from the deep ocean floor with a narrow rift valley along the crest. On Guided maps they run between continents, and on Advanced (Tectonics) v2 maps they form wherever plates pull apart under the sea. The crest wanders and kinks, and abyssal hills (low hills running parallel to the ridge) cover its flanks. Set Mid-Ocean Ridges to 0 for a flat ocean floor.
- Relief shading: Slopes are shaded as if lit from the north-west, so hills, valleys, ridges and seabed features stand out, and the shading shows through the biomes. The Relief Shading setting ("Map Configuration" tool, "Visuals" section) sets its strength for each map (0 turns it off), and Seabed Relief sets how much of it shows through deep water.
- Water: The sea and lakes are drawn as water you can see into. Shallow water is clear and leans turquoise, and it darkens with depth, so the seabed shows through near the coast and fades further out. A new "Water" section in the "Map Configuration" tool sets the Water Tint, Water Saturation and Water Clarity for each map.
- Seabed biomes: Biomes can lie on the bed of the sea or a lake. Each custom biome has a Placement setting (Land only, Underwater only, Overwater only, Land and underwater, or Land and overwater), which replaces the "Render solid over water" checkbox. Underwater biomes are seen through the water, and overwater biomes sit on top of it, as Pack Ice does. Painting and auto-generation rules only place a biome where its placement allows, and it is never shown anywhere else. Deep Ocean and Shallow Ocean are now underwater biomes that can be painted like any other, and the biome brush's list groups biomes by placement. The biome brush cannot yet paint underwater or overwater biomes onto lakes, but auto-generation rules and the default biomes do reach them.
- Terrain and biome layers: The base map, terrain and biomes buttons in the map controls are replaced by Terrain Layers and Biome Layers. Each opens a list where you turn parts of the map on or off (Elevation, Relief Shading and Water, and Land and Sea biomes). A button is fully lit when all of its layers are on and partly lit when only some are, and every layer is on when a map opens.
- Shoreline: The coast of the sea is outlined, dark on the land side and pale on the water side. Lakes have no outline, so rivers run into and out of them unbroken. The outline is part of the contour layer (the contour lines button shows and hides it) and is drawn even when Contour Interval is 0.
- Rivers: Rivers are drawn as water, in the same colour as the sea and lakes, and frozen rivers as ice. A river starts narrow at its source and widens as it flows and as tributaries join it, narrowing where it falls steeply and widening on flat land. Large rivers widen at their mouth and can split into a delta. Rivers follow smooth curves, meander across flat plains, stay sharp however far you zoom in, and are drawn the same way in the 3D view. They are part of the Water layer, so the Toggle Features button is removed from the map controls.
- Tectonic features: Fault lines are replaced by four tectonic features, each shaped by the terrain it crosses: a Mountain Range (in Simple, Fold Belt and Rugged styles), a Subduction Zone (a trench on one side and a chain of volcanoes on the other), a Rift (a valley of tilted blocks with raised shoulders, and optional volcanoes), and a Hotspot Chain (volcanic islands that age along the chain to eroded islands, atolls and seamounts). Symbols along each line show which way it runs, and a Reversed checkbox turns it round. A feature can raise terrain above 100% elevation or lower it below 0%. New maps use tectonic features, and older maps keep their fault lines until updated: convergent faults then become mountain ranges, divergent faults become rifts, hotspots become hotspot chains, and slip faults are removed.
- Regional maps from Guided v2 and Advanced (Tectonics) v2 maps: Use the new crop button in the land mask toolbar (Guided) or the "Create Regional Map from Existing Map" button. A Guided regional map receives all of its parent's land masks, so land beyond the crop still generates as on the parent. Maps on the original tectonic engine, and Guided maps made before this version, must be updated first.
- Map updates: Maps made before this version can be updated to the latest engines. The update dialogue opens when you load a map the update would change and lists exactly what would change. Tick "Don't ask again for this map" to stop it opening, and use the new "Update Map to latest engine(s)" button in the "Create New Map" tool to update later.
- Roughen brush and textured Flat maps: A new Roughen brush gives the ground a fine, natural texture. It always lays the same texture, so the Strength and Feather sliders are hidden while it is selected. Going over rough ground again changes nothing, and Smooth removes the texture while Roughen puts it back. The texture is laid out across the world, so a roughened area looks the same on a regional map (with finer detail), and it fades out towards the coast so it never moves the coastline. A new "Textured ground" checkbox for the Flat engine in the "Create New Map" tool starts a new Flat map with this texture instead of perfectly flat ground.
- Save As: A Save As button beside Save saves the map under a new name as a new saved map, which then becomes the open map.
- Random land masks (Guided): A shuffle button in the land mask toolbar adds a random shape of the selected type (a Remove Land shape is always placed over existing land). A second button adds a random map of land and sea, with lakes and inland seas as Remove Land shapes. Each click is one step you can undo, and the shapes can be edited like ones you drew.
- Moving, resizing and rotating on the map: Hold Shift and drag any point of a region or land mask to move the whole shape (a box shows around it, the shape stops without changing its outline at the edge of the area its points can be placed in, and a region label you have placed stays where it is). While holding a pin or label, hold Shift and scroll to resize it in the same steps as its size slider. Label, pin, route and region dialogues have a label Rotation slider, and the decoration dialogue has Scale and Rotation sliders. Double-click a Rotation or Scale slider to reset it. Rotations are shown between -180° and 180°, however many times a label has been turned, and decorations now resize in steps of 0.05 to match their new Scale slider.
IMPROVEMENTS
- Faster generation and loading: The terrain, the climate and the drawing of the map are now shared between all of your computer's processor cores, and the calculations are quicker. Loading test maps went from about 11 seconds to 7, 21 seconds to 11, and 23 seconds to under 6 (the last a 4000 x 2400 Advanced (Tectonics) v2 map). Redrawing the whole map, for example after changing the Contour Interval or a biome's colour, is now almost instant. Guided maps also no longer take longer to generate the more nodes their land masks have. Maps you have already made generate exactly as before.
- Terrain at any size: On Guided v2 and Advanced (Tectonics) v2 maps, Coastal Fracture, Continent Scale, Ocean Scale and the band widths are measured against a 1,000 pixel map, so the same settings give the same world at any resolution, and larger maps add finer detail rather than smoothing it out. You no longer need to raise Coastal Fracture on larger maps, and updating a Guided map that is not 1,000 pixels across lowers its Coastal Fracture to keep its coastline close to its current shape. Continent Scale no longer moves the coastline, small islands rise to hills of their own, and on Advanced (Tectonics) v2 maps mountain ranges can climb above 100% (and trenches fall below 0%) instead of flattening at the limit.
- Regional maps gain detail: Terrain (except on Flat maps), moisture and temperature gain finer detail the further you zoom in, so coastlines and biome borders become more intricate while the world keeps its shape. Existing regional maps are offered this as an update.
- Rivers on new and updated maps: Rivers follow the lie of the land instead of running in straight lines at fixed angles, and a river running beside another joins it. River Meander now sets how much rivers meander on flat land (from 0 to 2), and a map saved with the old River Meander keeps its value, turned into the new setting. A lake that fills up breaks out through the lowest ground around it and its river flows on, so a river only ends in a lake in a wide hollow with no outlet. They run on through small inland hollows below sea level, and leave the map where that is their only way out. The Max Lake Size setting is removed: the largest lake is the same share of the world at any size or zoom (older maps keep their saved value).
- Rivers on every map: Rivers are drawn straight across a pool, or a narrow string of pools in a valley, instead of ending at each one, and still stop at larger lakes. A new River Width setting (Map Configuration, Hydrology) scales how wide every river is drawn.
- Custom rivers and river sources (new and updated maps): A custom river runs exactly along the line you draw, stops at the sea or another river (or carries on downhill from its end), and procedural rivers that reach it join it, so it widens with them. The ground around it is lowered into a gentle valley that keeps the land's texture, and its Width sets its width where it starts. Procedural river sources are placed afresh from the map's seed, land and climate every time, so they follow your edits, Spring Altitude and Spring Moisture take effect straight away, and a regional map finds the same sources as its parent. While editing features they show as red rings you can delete or drag. Updating an older map replaces the river source pins it saved, and keeps the ones you added.
- Rivers on regional maps: Rivers flowing in from outside a regional map are kept, entering as wide as on the parent (with a River Inflow spring at the edge), and rivers are drawn as wide as on the parent map.
- Smooth and Level brushes: "Smooth Terrain" now pulls the ground towards the average of its surroundings (before, it barely changed anything even at full Strength), and never moves the coastline. "Level Terrain" now leaves levelled ground with the Roughen texture, so it looks flat rather than featureless (Smooth it afterwards for perfectly smooth ground). Strokes painted before this version replay exactly as they were.
- Fault lines: Faults can be up to 400 pixels wide with the toolbar slider and up to 1,000 in the edit dialogue, which now uses sliders and shows only the chosen type's settings.
- Side panel: Every slider shows its name, an information icon and its value on one line above a full-width slider, and the coastline settings are grouped under Land and Sea headings. Tool lists (land masks, features, infrastructure, regions, labels and cartography, and each region layer) can be collapsed by clicking their heading, giving their space to the open ones, and stay as you leave them while the Map Builder is open. Route thickness is set with a slider in its dialogues, as in the toolbar.
- Map canvas: The hint in the bottom corner lists what you can do in the current tool and mode (and in the 3D view), and what you can do with an item while you hold it. The map controls are split into groups, and the map information, undo and redo, hint and controls share a darker background that is easier to read. Contour Interval redraws once you stop moving the slider, and the relief and water settings change the map without redrawing it.
- Labels: A label's Max Width is now a number of characters rather than pixels, so a label keeps its line breaks when you resize it or change its font. Widths saved in pixels (on existing maps and in exported settings files) are converted when opened, rounded up so no label wraps earlier than before.
- Pins: Points of interest no longer show a tooltip on hover, which could stay on screen after the pointer moved on. Descriptions are still included in the Scene Journal.
- 3D view: The 3D view now matches the map: seabed biomes under tinted water, lakes flat at their surface, Pack Ice on top of the sea, hidden layers stay hidden, and rivers painted onto the ground and visible with the whole map in view.
- Map journal page: A map's page in the compendium now also lists the engine version, a regional map's magnification, the new terrain, relief and water settings, Region Opacity, each biome's placement and a count of each kind of feature. Scale settings show the value their slider shows, and all of the page's text can be translated. A map's page is rewritten the next time you save it.
BUG FIXES
- Regional maps: Rain shadows now match the parent map, including along the left and right edges. The wind's reach was scaled twice and depended on the crop's shape, and near the edges a regional map could not see the mountains just outside it.
- Regional maps: Fault lines and hotspot chains now look as they do on the parent. Their width and texture did not scale with the zoom, and a fault crossing the crop without a point inside it was left out.
- Regional maps: Level Terrain, Slope Up and Slope Down strokes that start outside the crop now work, and slopes climb as steeply as on the parent (they were steeper the further you zoomed in).
- Regional maps: The regional grid now lines up with the parent's, the map is the width you ask for, and its latitudes match its terrain. The crop snaps to the parent's grid when you let go of it (gridless maps are not snapped).
- Regional maps: A regional map can no longer be made from an unsaved map or one with unsaved changes. You are asked to save first.
- Existing regional maps are offered the rain shadow and fault fixes above as an update. Create a regional map again to apply the edge rain shadow, brush and grid fixes.
- Grid data: Grid data exported with a scene now matches the scene's grid on maps with a small grid (the grid size now starts at 20 pixels, Foundry's minimum, a map saved with a smaller grid opens with a 20 pixel grid, and you are warned if Foundry ever stores a different size), and reports a river in every cell where one is drawn. Export the scene again to fix its grid data.
- Fault lines: Convergent and divergent faults no longer end in a faint step at their edges.
- Large maps: Brushes no longer lag behind the mouse, painting no longer uses up memory until the map stops drawing, quick successive edits no longer leave the map studio busy for minutes, and closing the map studio while it is refreshing or saving no longer shows errors (it now waits for a save to finish).
- Rivers: Two rivers no longer run side by side in parallel lines (on new and updated maps), and procedural rivers now reach the sea and join the river they flow into without a small gap.
- Region Opacity is now saved with the map.
- Exporting to a scene no longer turns the terrain, contour and feature layers back on.
- Lists and settings no longer run past the bottom of a tool panel (region layers now scroll together with the Edit Regions button always in view).
- A map size typed into Map Resolution is no longer lost before Create New Map, and no longer marks the open map as changed.
- Choosing a quick style now updates the filled part of the font size slider.
- Names containing quotation marks are no longer cut short in name prompts.
UNDER THE HOOD
A full account of how these changes work, and how they were checked, is in the version 3.0.0 technical write-up in the repository's Discussions.
- Terrain versions: Maps store a
terrainVersion(1 for maps saved before this version, 2 for new and regional maps), resolved byTerrainVersioninto the values the engines read, so version 1 maps generate bit-identically to 2.6.0.TerrainUpgradeworks out, applies and records map updates. - World frame: Guided, Advanced (Tectonics) v2, fault, surface texture and river source noise is read at each pixel's place in the top map, with extra detail octaves on regional maps.
RegionalExtractorrecords a compounding world frame and carries land masks, faults, river inflows, brush anchors and slope scales, and anupwindMarginof the parent's terrain. - Drawing on the GPU: The terrain, water, biomes and rivers are drawn by a shader (
TerrainCompositor,TerrainShading), with rivers turned into widening, meandering channels byRiverNetwork. Layer switches and the relief and water settings are shader settings, so they never repaint. - New engines and features: A plate model for Advanced (Tectonics) v2, a new coastal profile with mid-ocean ridges,
BiomePlacementfor seabed biomes,TectonicFeatureEnginefor tectonic features, and new river tracing, lake breaching andRiverSourcesfor current maps. - Brushes: Terrain strokes record the
revisionthey were painted with, so each replays with its own maths. The Roughen texture is part of the elevation, with a per-pixel roughness recording how much each pixel carries, worked out in tiles as brushes need it (ProceduralOrchestrator.getSurfaceTexture). Roughen strokes are replayed a whole stroke at a time (RoughenStroke,BrushGeometry). - Speed:
GenerationWorkersandLayerPaintingshare whole-map passes between background workers with bit-identical results. Current maps find coast and ridge distances with an exact distance transform, land masks are filled by scanline, and the noise is faster with the same values. - Reliability:
RefreshQueueruns refreshes one at a time and merges requests that arrive meanwhile. Brush moves that stamp nothing no longer repaint the map, painting no longer rebuilds labels and pin icons, and closing waits for a save. - Interface code: Shared slider partial and
RangeDisplay, collapsible<details>list sections,CanvasTransforms,CanvasHintsandLabelWidth. - Code quality: The most complex interface functions (undo and redo preview, pointer handling, grid drawing and scene export) were split into smaller helpers with identical behaviour, and the ESLint warnings were cleared.
- Dependencies and licences: Added d3-delaunay 6.0.4 (with delaunator and robust-predicates) for random land maps. Every licence file is now Markdown, so all of them are included in the release, and the README lists each third-party licence.