Britannia map -- data sources and attribution ============================================= Built by mapgen.py (with mapgen_continent.py) from configs/britannia.json on 2026-10-09. Every input is public and needs no account or key. Rebuilt from open data in Front+ 1.0.6 in place of the OpenFront map of the same name (CC BY-SA); nothing of that map is used except its size, the shape it was fitted to (see Geometry) and its nations' names, flags and spawn places. Datasets used ------------- Land Natural Earth 1:10m Physical Vectors, PUBLIC DOMAIN (https://www.naturalearthdata.com, 'Made with Natural Earth'; no permission needed). Downloaded from https://naciscdn.org/naturalearth/10m/physical/.zip ne_10m_land (version 5.1.1, 6836 polygon parts), ne_10m_minor_islands (version 4.1.0, 17 polygon parts): every land polygon in the map's box is land (no country is cut out). Lakes Natural Earth 1:10m (ne_10m_lakes, ne_10m_lakes_europe), public domain. Rivers Natural Earth 1:10m ne_10m_rivers_lake_centerlines (version 5.0.0), public domain. Elevation ETOPO 2022 Global Relief Model v1, ice surface elevation, NOAA National Centers for Environmental Information. PUBLIC DOMAIN (a work of the U.S. Government; NOAA: "freely available to use for all private, academic, or commercial purposes"). From https://www.ncei.noaa.gov/products/etopo-global-relief-model, files: ETOPO_2022_v1_15s_N60W015_surface.tif, ETOPO_2022_v1_15s_N60E000_surface.tif (15 arc-second cells). Cite as: NOAA National Centers for Environmental Information. 2022: ETOPO 2022 15 Arc-Second Global Relief Model. NOAA National Centers for Environmental Information. DOI: 10.25921/fd45-gt74. ETOPO 2022's land elevation is built from, among others, Copernicus DEM 30 m, credited by NOAA's User Guide as: The European Space Agency. Copernicus DEM - Global and European Digital Elevation Model (COP-DEM); and FABDEM (Hawker et al. 2022, Environmental Research Letters 17(2), 024016, doi:10.1088/1748-9326/ac4d4f). Geometry -------- Projection +proj=merc +lon_0=-4.2500 +ellps=WGS84 +units=m +no_defs (pyproj 3.8.0) Mercator, centred on 4.25 W: the projection the old map fits best (fit_old.py; IoU 0.952 at 16x with its river channels as land, 0.940 as it is; equirectangular 0.877, transverse Mercator 0.826, Miller 0.700). Conformal: a tile is 892.2 m on the grid, 576 m on the ground at 49.9 N, 519 m at 54.5 N and 454 m at 59.5 N, as on the old map; the game treats tiles as square, so no correction is needed. Fitted by fit_old.py to the old map's land (its map16x.bin): the merc projection and box under which Natural Earth's land, rasterised on the old grid, best matches the old land: intersection over union 0.9395 at 16x (0.9519 with the old map's one-tile river channels counted as land). Grid 1600 x 2088 tiles at 892.2 m/tile (1427.5 x 1862.8 km), the old map's size Origin tile (x,y) covers E = -727214.8 + 892.2*x, N = 8252416.8 - 892.2*y Latitude row 0 = 59.5 N, last row = 49.9 N (crates/of_app/src/view.rs latitude_range: "britannia" => (59.5, 49.9)), set in the config: the centre column (a row is a parallel in this projection). Centre column (59.5, 49.9): off by 0.22 deg on average over the land (0.29 at worst); least squares (59.8, 50.0): 0.05 deg (0.26 at worst). Coastline Natural Earth's outline refined by ETOPO 2022: a tile is land when at least half of its ETOPO cells are above 0 m (0.98 to ~1.11 cells across a tile), within 3 km of Natural Earth's coast inside the land and within 40 km of it out at sea (the small islands Natural Earth leaves out); deeper inland Natural Earth decides. ETOPO made 26,812 tiles land that Natural Earth has as sea and 4,718 the other way. Elevation curve magnitude = round(curve(u)), clamped 0..31, where e is the tile's mean ETOPO elevation (area average of its cells) and u = e - 0.3*(e - gaussian(e, sigma = 4 tiles)), the blur taken over land only so the sea does not drag the coast down. The curve is the auto_bands fit (--tune) on the field u with the old map's own band shares: 39% of the land below 80 m is Plains, 9% above 367 m is Mountain (the old Britannia measured 39-53-9), and the top segment runs to the highest u so peaks are not clamped. The mask (-0.3 over a 4-tile sigma, a light softening: Britain is low and its relief steep near the coast) is the --tune row whose slope is nearest 0.6 with rock under 12%: 0.60 and 8.7%. Measured alternatives: the same bands -0.3 over 2 tiles 0.64 / 10.4%, -0.6 over 2 tiles 0.60 / 8.8%; 50-33-17 bands -0.3 over 4 tiles 0.67 / 11.1%, -1.0 over 2 tiles 0.61 / 9.2%; 45-43-12 -0.3 over 4 tiles 0.63 / 9.5%; a fixed 60 m a step makes the map 94 to 98% Plains. curve: piecewise-linear [[0.0, 0.0], [80.3, 9.5], [366.7, 19.5], [1026.5, 31.0]]. Result: mean slope 0.603 magnitude steps/tile, 8.71% rock, bands 39.0% Plains / 52.0% Highland / 9.0% Mountain, mean magnitude 10.5 (Switzerland 0.62 / 8.8% / 51-34-15 / 11.10, Britannia 0.67 / 12.4% / 39-53-9 / 10.12, measured the same way by validate_map.py). map4x / map16x: slope 0.871 / 1.199, rock 17.28% / 29.44%. Water magnitude OpenFront's convention: min(ceil(d/2), 31), d = Manhattan distance from the shoreline water. Lake policy Natural Earth lakes are lakes; a lake that touches the map's edge, the sea or a river that reaches the sea is ocean. A lake under 40 tiles at full res (10.5 km2), 10 at 4x or 3 at 16x is filled back to land at the ground height. Island policy land bodies under 2 tiles at full resolution are dropped; every island that survives the downsample is kept at 4x and 16x. Downsampling map4x / map16x: plurality vote of each 2x2 block (a 2-2 tie goes to the side with the larger sub-tile land fraction); sea cut off by the vote is reconnected along its real channel; then the small-body cleanup above. 16x is built from 4x. Carved channel tiles: 4x 27, 16x 45. River policy Natural Earth centre lines (all) burnt as water: every tile whose centre is within 0.71 tile of the line (0.7 km wide at full resolution), and burnt again from the same lines into map4x and map16x (half width 0.71 tile) after the plurality vote, so each river is one continuous 4-connected channel at every resolution. A river that reaches the sea is ocean, so boats can use it. A river end short of other water by <= 10 tiles is extended to it. The old map had river water open to the sea at all three resolutions: 5,319 tiles of one- and two-tile channels at 4x (at full detail its rivers are two tiles wide and more, so the 3 x 3 opening finds them at 4x). The same rivers are burnt here from Natural Earth's centre lines with scalerank <= 8 (Shannon, Ness, Oich and the Caledonian Canal, Trent, Severn, Thames), the cut whose lines best match the old channels at 4x (fit_old.py --river-res map4x: 1,176 tiles, 74% of them within 3 tiles of an old channel), one tile wide. ne_10m_rivers_europe's further rivers (Tay, Tweed, Wye, Swale, Great Ouse, Suir, Barrow, Blackwater, Annalee, Somme) were measured and left out: 0 to 29% of their tiles lie near an old channel, so the old map did not have them. Straits kept open: Strangford Narrows: the strait's centre line (traced on ETOPO's cells below sea level) burnt as water like a river, at every detail. River mouths kept open: Trent, Severn: a line from the river's end down its estuary (traced on ETOPO's lowest cells) burnt as water like a river, at every detail, so the river reaches the sea. The Strait of Dover, the North Channel and the Solent are open at all three details by themselves, as on the old map; the Menai Strait is closed at all three, as on the old map (Anglesey is joined to Wales). Strangford Lough, a sea lough the old map did not have, keeps its narrows (0.5 to 1 km wide) by its line. Sea lochs and harbours whose mouths are narrower than a tile (Gare Loch, Loch Etive, Portsmouth Harbour) are lakes at this size, as the grid closes them. compare_old_britannia.txt checks each strait inside its own box. Climate (climate.bin) --------------------- Source Beck, H.E., N.E. Zimmermann, T.R. McVicar, N. Vergopolan, A. Berg, E.F. Wood: Present and future Koppen-Geiger climate classification maps at 1-km resolution, Scientific Data 5, 180214 (2018), doi:10.1038/sdata.2018.214. Data: figshare, doi:10.6084/m9.figshare.6396959 (Beck_KG_V1.zip, no login), Beck_KG_V1_present_0p0083.tif (present day, 1980-2016, ~1 km). Licence CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/): attribution required; the classes were turned into moisture values and reprojected (changes made). Grid the map16x grid, 400 x 522: one byte per 16x tile, 0 = driest, 255 = wettest, on the terrain shader's own moisture scale (x 255). Method each Koppen class -> a moisture (table below); reprojected with the map's projection, each 16x tile the area average of the 1 km cells in it; the sea and the neighbours (water on this map) take the nearest own land's value; Gaussian smoothing, sigma 8 km (2.2 tiles of 3.57 km). Classes BWh, BWk 0.06; BSh, BSk 0.28; Csa 0.34; Dsa 0.40; Csb, Csc, Dsb 0.46; Dsc, Dsd 0.48; Aw, ET, EF 0.50; Cwa, Cwb, Cwc, Dwa, Dfa 0.52; Cfb, Cfc, Dwb, Dwc, Dwd, Dfb 0.53; Dfc, Dfd 0.58; Cfa 0.60; Am 0.66; Af 0.76. The shader's temperate ladder: desert under 0.22, steppe to 0.33, grass to 0.56, forest above; in hot country savanna from 0.24, grass from 0.45, jungle above 0.56. Tundra and snow come from the temperature. Land the largest classes by 16x land tile: Cfb 92%, Cfc 6%. As the temperate ladder reads it: desert 0.0%, steppe 0.0%, grass 99.8%, forest 0.2% (before the shader's noise, heat and altitude). Colour (colour.jpg) ------------------- Source the ESA WorldCover Sentinel-2 median L2A (RGBNIR) composite of 2021, v200 (the ESA WorldCover project; made by the ESA WorldCover consortium from Copernicus Sentinel-2 data), its true-colour bands B04, B03 and B02 (the NIR band not used): one cloud-optimised GeoTIFF a 1 x 1 degree cell in the open-data bucket https://esa-worldcover-s2.s3.eu-central-1.amazonaws.com/rgbnir/2021//ESA_WorldCover_10m_2021_v200__S2RGBNIR.tif, read at its overview level 4 (750 pixels a degree), only that level, by range requests (Front+ 1.0.9 step s02, 16 October 2026; every piece in mapdata/DOWNLOADS.txt). 94 cells used; of the cells under the land and its one-tile ring 0 the bucket does not have (open sea) and 0 are missing. Licence CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/); the terms: https://esa-worldcover.org/en/data-access ("provided free of charge, without restriction of use"). Attribution © ESA WorldCover project / Contains modified Copernicus Sentinel data (2021) processed by ESA WorldCover consortium Grid the full map grid, 1600 x 2088: RGB, 8 bits a channel, sRGB, one texel a tile (0.892 km in the map's projection); JPEG, quality 90. Changed the source pixels averaged in blocks of 1 x 1 (3.6 x 6.0 of them a texel, north-south x east-west, at the land's middle), reprojected with the map's projection onto its grid, each texel the area average of the pixels in it in linear light (reflectance); water left out by the map's own land mask, and within 2 tiles of the map's own water also the imagery's own water (dark and blue pixels); clouds left out under the game's snow line (mean reflectance over 1.50 and spread under 0.05 of the mean; 0 texels touched); the 11,221 land texels with no data or mostly left-out pixels filled from the land round them, every texel that is not land from the nearest land texel; the tone: 1.6 x reflectance, to the power 0.9, highlights rolled off above 0.6, the colours 1.45 x as far from grey, exposure 1. Built 2026-10-16 (mapgen_imagery.py). Land mean colour 95, 104, 81 (sRGB), spread 15 / 9 / 10; 98 of 1,160,896 land texels had no source pixel with data (0.01%). Game the terrain shader takes the land's base colour from this instead of its biome palette, under its own light, relief shading, territory tint, borders, haze, snow and water, while the Realistic look is on (the Settings switch is the default for every map; each map can change it on the Singleplayer page; off, it draws the palette). Land a match raises where this map has sea keeps the palette. Nations ------- The old map's twenty nations, with their names and flags exactly as its manifest had them (Fermanagh has no flag, as before) and in its order. Each spawn is the lon/lat of the old spawn tile on the fitted grid, snapped to the nearest tile that is land at all three resolutions, on the landmass of the land nearest that point, off the 16x coast where one is within 8 tiles more. Pas-de-Calais fr (1544, 1920) the old map's spawn (1539, 1915) on the fitted grid; snapped 7.1 tiles Mayo ie ( 214, 1242) the old map's spawn (214, 1242) on the fitted grid; snapped 0 tiles Kerry ie ( 189, 1605) the old map's spawn (189, 1605) on the fitted grid; snapped 0 tiles Clare ie ( 257, 1458) the old map's spawn (257, 1458) on the fitted grid; snapped 0 tiles Meath ie ( 527, 1295) the old map's spawn (527, 1295) on the fitted grid; snapped 0 tiles Highland gb-sct ( 703, 431) the old map's spawn (703, 431) on the fitted grid; snapped 0 tiles Argyll and Bute gb-sct ( 612, 690) the old map's spawn (611, 690) on the fitted grid; snapped 1 tiles North Yorkshire gb-eng (1118, 1202) the old map's spawn (1118, 1202) on the fitted grid; snapped 0 tiles Aberdeenshire gb-sct ( 971, 517) the old map's spawn (971, 517) on the fitted grid; snapped 0 tiles Cumbria gb-eng ( 951, 1088) the old map's spawn (951, 1088) on the fitted grid; snapped 0 tiles Dumfries and Galloway gb-sct ( 846, 1000) the old map's spawn (846, 1000) on the fitted grid; snapped 0 tiles Perthshire and Kinross gb-sct ( 856, 672) the old map's spawn (856, 672) on the fitted grid; snapped 0 tiles Lincolnshire gb-eng (1271, 1403) the old map's spawn (1271, 1403) on the fitted grid; snapped 0 tiles Devon gb-eng ( 867, 1883) the old map's spawn (867, 1883) on the fitted grid; snapped 0 tiles Northumberland gb-eng (1051, 946) the old map's spawn (1051, 946) on the fitted grid; snapped 0 tiles Norfolk gb-eng (1400, 1495) the old map's spawn (1400, 1495) on the fitted grid; snapped 0 tiles Powys gb-wls ( 902, 1563) the old map's spawn (902, 1569) on the fitted grid; snapped 6 tiles Suffolk gb-eng (1407, 1584) the old map's spawn (1407, 1584) on the fitted grid; snapped 0 tiles Hampshire gb-eng (1148, 1820) the old map's spawn (1148, 1820) on the fitted grid; snapped 0 tiles Fermanagh ( 404, 1146) the old map's spawn (404, 1146) on the fitted grid; no flag, as on the old map; snapped 0 tiles