World map -- data sources and attribution ========================================= Built by mapgen.py (with mapgen_continent.py) from configs/world.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, 6837 polygon parts), ne_10m_minor_islands (version 4.1.0, 2795 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, ne_10m_lakes_north_america), 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_60s_N90W180_surface.tif (60 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 (the 60 arc-second file: the same model at 60 arc-seconds). 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=eqc +lat_ts=24.9609 +lon_0=11.8130 +ellps=WGS84 +units=m +no_defs (pyproj 3.8.0) equirectangular (plate carree) with true scale along 25.0 N and S, centred on 11.81 E: the projection the old map fits best (fit_old.py; IoU 0.937 at 16x, 0.930 with its one- and two-tile water counted as land; Miller 0.700, Mercator 0.598). The grid spans the whole 360 degrees of longitude and wraps at its seam (the Pacific at 168.2 W). Not conformal: a tile is 18,141 m tall everywhere and, on the ground, 18,141 m wide at 25 N and S, 20,000 m at the equator, 13,900 m at 46 N and 2,300 m at 83 N; the game treats tiles as square, so no aspect correction is used. Fitted by fit_old.py to the old map's land (its map16x.bin): the eqc projection and box under which Natural Earth's land, rasterised on the old grid, best matches the old land: intersection over union 0.9367 at 16x (0.9298 with the old map's one-tile river channels counted as land). Grid 2000 x 1000 tiles at 18141.4 m/tile (36282.8 x 18141.4 km), the old map's size Origin tile (x,y) covers E = -18141375.7 + 18141.4*x, N = 9263332.1 - 18141.4*y Latitude row 0 = 83.3 N, last row = -79.9 N (crates/of_app/src/view.rs latitude_range: "world" => (83.3, -79.9)), set in the config: the centre column (a row is a parallel in this projection). Centre column (83.3, -79.9): off by 0.08 deg on average over the land (0.13 at worst); least squares (83.4, -79.9): 0.04 deg (0.13 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 (9.75 to ~9.8 cells across a tile), within 18 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 9,209 tiles land that Natural Earth has as sea and 0 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.6*(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 on the field u with the old map's own band shares: 34% of the land is Plains, 28% Mountain (the old World measured 34-38-28, slope 0.87, rock 26%), the top segment running to the highest u so peaks are not clamped. The mask (-0.6 over a 4-tile sigma: at 18 km a tile the mean elevation steps steeply from tile to tile, so it is softened) is the --tune row whose slope is nearest 0.6 with rock under 12%: 0.63 and 11.8%. Measured alternatives: -1 over 4 tiles 0.57 / 9.9%; -0.3 over 2 tiles 0.71 / 15.2%; no mask 0.74 / 16.2%; +2 over 1 tile 0.80 / 18.1%. curve: auto_bands {'plains': 0.34, 'mountain': 0.28} -> piecewise-linear [[0.0, 0.0], [295.2, 9.5], [1048.6, 19.5], [5340.0, 31.0]]. Result: mean slope 0.629 magnitude steps/tile, 11.84% rock, bands 34.0% Plains / 38.0% Highland / 28.0% Mountain, mean magnitude 12.99 (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 1.009 / 1.527, rock 22.29% / 35.95%. 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 (13164.4 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 8, 16x 13. River policy none: rivers are not carved (the old map had none). The centre-line mode only carries the straits' lines below to map4x and map16x. The old map had no rivers: its 3,410 tiles of one- and two-tile water at full detail are straits, fjords and inlets, and no Natural Earth river cut matches them (fit_old.py --rivers: F1 0.009 at best), so none is carved. Straits kept open: Strait of Gibraltar, Bosporus, Dardanelles, Kerch Strait, Suez: a line drawn down the strait's middle (Suez: along the canal) and burnt as water like a river, at every detail. Gibraltar, the Bosporus, the Dardanelles and the Kerch Strait are a few kilometres wide or less and close on an 18 km grid, which made the Mediterranean, the Black Sea, the Sea of Marmara and the Sea of Azov lakes; each carries a line, so they are open at every detail, as on the old map. Suez is open as on the old map: the canal is a line. Panama is land (no canal). The Danish straits, Hormuz, Bab-el-Mandeb and the Taiwan Strait are open by themselves. The map's seam (168.2 W) runs through the Bering Strait, as on the old map: Alaska is at the left edge and Chukotka at the right. compare_old_world.txt checks each strait inside its own box where it has one (where the two seas would otherwise meet round a continent). 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, 500 x 250: 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 (1.0 tiles of 72.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: EF 18%, Dfc 14%, BWh 10%, ET 9%, Aw 8%, BSk 5%, Dfb 5%, BWk 4%, BSh 4%, Af 3%, Cfa 3%, Am 2%, Dwc 2%, Cwa 2%, Cfb 1%, Dsc 1%, Dfa 1%. As the temperate ladder reads it: desert 15.6%, steppe 6.0%, grass 57.0%, forest 21.4% (before the shader's noise, heat and altitude). Atlantis -------- modes.json's `neighbours.atlantis` (Front+ 1.0.6, step s25): the island that rises from the Atlantic in The Neighbours. It is made by the game, not taken from any data: no such land is in the files above, and map.bin, map4x.bin and map16x.bin hold open sea there. In a match of The Neighbours on this map the game raises it at 0:00 from these numbers alone, the same at every detail (of_sim atlantis.rs: integer value noise from its seed, no floats). Where its middle at full-map tile (691, 353), about 43.6 W, 25.8 N: the open-sea tile of the North Atlantic box (about 45 to 20 W, 25 to 45 N through the projection above, tiles 684-823 x 234-357) farthest from any land at full detail (113.9 tiles); the nearest other land 82.7 tiles from its coast. Size r 36 full-map tiles, seed 1: 3,117 tiles at full detail, 780 at 4x, 195 at 16x (0.50%, 0.49% and 0.50% of the land with it), Plains, Highland and a low Mountain in the middle; at least 6 full-map tiles of open sea round it (3 at 4x, 1 at 16x). Made by crates/of_sim/examples/mode_points.rs, `atlantis world --write`. A rebuild of this file by mapgen.py drops this paragraph; copy it back. Colour (colour.jpg) ------------------- Source NASA Blue Marble Next Generation (Reto Stockli, NASA Earth Observatory; a cloud-free MODIS composite of 2004, 500 m), public domain (NASA imagery is not copyrighted; credit: NASA Earth Observatory). Served by NASA's Global Imagery Browse Services (GIBS), no login and no key: WMTS layer BlueMarble_NextGeneration ("Blue Marble (MODIS)"), EPSG:4326, tile matrix set 500m, level 3 (0.0703 degree pixels), 50 JPEG tiles from https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/BlueMarble_NextGeneration/ default/500m/{level}/{row}/{col}.jpeg. The plain layer, not BlueMarble_ShadedRelief: the terrain shader shades the relief itself. We acknowledge the use of imagery provided by services from NASA's Global Imagery Browse Services (GIBS), part of NASA's Earth Science Data and Information System (ESDIS). Grid the full map grid, 2000 x 1000: RGB, 8 bits a channel, sRGB, one pixel a tile (18.14 km); JPEG, quality 90. Method the imagery's own water left out (blue over red and green and not bright, or dark with almost no red: the sea and the lakes, while snow and the dark forests stay land; and the dark pixels one pixel round it); reprojected with the map's projection onto the full grid, each tile the area average (in linear light) of the pixels in it; the tiles that are not this map's land left out; not averaged further (one pixel a tile); pixels with no land take the nearest land pixel's colour (1,378,499 of them), so the GPU's filtering never draws sea blue or a neighbour's colours onto the shore. Land mean colour 111, 109, 87 (sRGB), spread 79 / 75 / 86; 1,421 full-map land tiles had only the imagery's water under them. 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 ------- Each nation is a point, snapped to the nearest tile that is land at all three resolutions, on the landmass of the land nearest the point, off the 16x coast where one is within 8 tiles more. United States us ( 484, 284) the old map's spawn (484, 284) on the fitted grid; snapped 0 tiles Canada ca ( 374, 188) the old map's spawn (374, 186) on the fitted grid; snapped 2 tiles Mexico mx ( 375, 374) the old map's spawn (375, 374) on the fitted grid; snapped 0 tiles Cuba cu ( 500, 378) the old map's spawn (500, 378) on the fitted grid; snapped 0 tiles Colombia co ( 527, 487) the old map's spawn (527, 487) on the fitted grid; snapped 0 tiles Venezuela ve ( 576, 466) the old map's spawn (576, 466) on the fitted grid; snapped 0 tiles Argentina ar ( 565, 737) the old map's spawn (565, 737) on the fitted grid; snapped 0 tiles Brazil br ( 684, 574) the old map's spawn (684, 574) on the fitted grid; snapped 0 tiles Antarctica aq (1280, 975) the old map's spawn (1280, 975) on the fitted grid; snapped 0 tiles Greenland gl ( 709, 57) the old map's spawn (709, 57) on the fitted grid; snapped 0 tiles Iceland is ( 831, 112) the old map's spawn (831, 112) on the fitted grid; snapped 0 tiles United Kingdom gb ( 925, 186) the old map's spawn (925, 186) on the fitted grid; snapped 0 tiles Ireland ie ( 887, 183) the old map's spawn (887, 183) on the fitted grid; snapped 0 tiles Spain es ( 908, 264) the old map's spawn (908, 264) on the fitted grid; snapped 0 tiles Italy it (1004, 250) the old map's spawn (1004, 250) on the fitted grid; snapped 0 tiles France fr ( 948, 221) the old map's spawn (948, 221) on the fitted grid; snapped 0 tiles Germany de ( 990, 195) the old map's spawn (990, 195) on the fitted grid; snapped 0 tiles Sweden se (1014, 137) the old map's spawn (1014, 137) on the fitted grid; snapped 0 tiles Poland pl (1031, 193) the old map's spawn (1031, 193) on the fitted grid; snapped 0 tiles Belarus by (1102, 183) the old map's spawn (1102, 183) on the fitted grid; snapped 0 tiles Romania ro (1073, 230) the old map's spawn (1073, 230) on the fitted grid; snapped 0 tiles Türkiye tr (1123, 272) the old map's spawn (1123, 272) on the fitted grid; snapped 0 tiles Norway no ( 969, 133) the old map's spawn (969, 133) on the fitted grid; snapped 0 tiles Finland fi (1082, 126) the old map's spawn (1082, 126) on the fitted grid; snapped 0 tiles Ukraine ua (1135, 210) the old map's spawn (1135, 210) on the fitted grid; snapped 0 tiles Russia ru (1351, 134) the old map's spawn (1351, 134) on the fitted grid; snapped 0 tiles Mongolia mn (1500, 203) the old map's spawn (1500, 203) on the fitted grid; snapped 0 tiles China cn (1527, 303) the old map's spawn (1527, 303) on the fitted grid; snapped 0 tiles India in (1331, 353) the old map's spawn (1331, 353) on the fitted grid; snapped 0 tiles Kazakhstan kz (1279, 207) the old map's spawn (1279, 207) on the fitted grid; snapped 0 tiles Iran ir (1238, 309) the old map's spawn (1238, 309) on the fitted grid; snapped 0 tiles Saudi Arabia sa (1178, 351) the old map's spawn (1178, 351) on the fitted grid; snapped 0 tiles Australia au (1679, 657) the old map's spawn (1679, 657) on the fitted grid; snapped 0 tiles New Zealand nz (1890, 775) the old map's spawn (1890, 775) on the fitted grid; snapped 0 tiles Algeria dz ( 957, 295) the old map's spawn (957, 295) on the fitted grid; snapped 0 tiles Libya ly (1024, 340) the old map's spawn (1024, 340) on the fitted grid; snapped 0 tiles Egypt eg (1094, 340) the old map's spawn (1094, 340) on the fitted grid; snapped 0 tiles Niger ne ( 956, 389) the old map's spawn (956, 389) on the fitted grid; snapped 0 tiles Sudan sd (1101, 400) the old map's spawn (1101, 400) on the fitted grid; snapped 0 tiles DR Congo cd (1051, 513) the old map's spawn (1051, 513) on the fitted grid; snapped 0 tiles Ethiopia et (1153, 451) the old map's spawn (1153, 451) on the fitted grid; snapped 0 tiles South Africa za (1075, 707) the old map's spawn (1075, 707) on the fitted grid; snapped 0 tiles Madagascar mg (1194, 627) the old map's spawn (1194, 627) on the fitted grid; snapped 0 tiles Chad td (1036, 420) the old map's spawn (1036, 420) on the fitted grid; snapped 0 tiles Namibia na (1039, 646) the old map's spawn (1039, 646) on the fitted grid; snapped 0 tiles Philippines ph (1631, 465) the old map's spawn (1632, 465) on the fitted grid; snapped 1 tiles Thailand th (1502, 415) the old map's spawn (1502, 415) on the fitted grid; snapped 0 tiles Taiwan tw (1610, 364) the old map's spawn (1610, 364) on the fitted grid; snapped 0 tiles Japan jp (1710, 290) the old map's spawn (1710, 290) on the fitted grid; snapped 0 tiles Siberia Siberia (1626, 118) the old map's spawn (1626, 118) on the fitted grid; snapped 0 tiles Nunavut Nunavut ( 422, 95) the old map's spawn (422, 95) on the fitted grid; snapped 0 tiles West Antarctica aq ( 419, 975) the old map's spawn (419, 975) on the fitted grid; snapped 0 tiles Peru pe ( 516, 567) the old map's spawn (516, 567) on the fitted grid; snapped 0 tiles Zambia zm (1097, 598) the old map's spawn (1097, 598) on the fitted grid; snapped 0 tiles Latvia lv (1067, 168) the old map's spawn (1067, 168) on the fitted grid; snapped 0 tiles Bhutan bt (1419, 338) the old map's spawn (1419, 338) on the fitted grid; snapped 0 tiles Indonesia id (1511, 524) the old map's spawn (1511, 524) on the fitted grid; snapped 0 tiles East Antarctica aq (1809, 977) the old map's spawn (1809, 977) on the fitted grid; snapped 0 tiles Oman om (1255, 382) the old map's spawn (1255, 382) on the fitted grid; snapped 0 tiles Morocco ma ( 886, 327) the old map's spawn (886, 327) on the fitted grid; snapped 0 tiles Uruguay uy ( 626, 704) the old map's spawn (626, 704) on the fitted grid; snapped 0 tiles Bolivia bo ( 581, 620) the old map's spawn (581, 620) on the fitted grid; snapped 0 tiles Alaska Alaska ( 95, 115) the old map's spawn (95, 115) on the fitted grid; snapped 0 tiles Yukon Yukon ( 243, 131) the old map's spawn (243, 131) on the fitted grid; snapped 0 tiles California California ( 264, 276) the old map's spawn (264, 276) on the fitted grid; snapped 0 tiles Texas Texas ( 371, 299) the old map's spawn (371, 299) on the fitted grid; snapped 0 tiles Quebec Quebec ( 532, 191) the old map's spawn (532, 191) on the fitted grid; snapped 0 tiles Benin bj ( 931, 475) the old map's spawn (932, 476) on the fitted grid; snapped 1.4 tiles Senegal sn ( 845, 425) the old map's spawn (845, 425) on the fitted grid; snapped 0 tiles Kenya ke (1152, 522) the old map's spawn (1152, 522) on the fitted grid; snapped 0 tiles Pakistan pk (1320, 282) the old map's spawn (1320, 282) on the fitted grid; snapped 0 tiles Sri Lanka lk (1383, 463) the old map's spawn (1384, 466) on the fitted grid; snapped 3.2 tiles