github openfrontio/OpenFrontIO v0.32.0-beta6
v0.32.0 Beta 6

latest release: v0.32.0
pre-release6 hours ago

v32 Release Notes

Major Changes

  • New WebGL renderer — the entire game now renders on WebGL, which is faster and smoother (especially on big maps with lots of activity). It also comes with a new Graphics Settings modal with a dozen+ options so you can tweak how the game looks to your taste.
  • Higher trade-ship cap — ports now spawn more trade ships before tapering off, so naval trade scales up further owith more ports.

Renderer & Graphics

  • Migrated the entire renderer from canvas2D/Pixi to WebGL and made it the sole renderer - ldlework
  • Added a Graphics Settings modal — allowing for a dozen+ different graphics options — Evan
  • Added territory image-based skins — Evan
  • Added colorblind mode — noahschmal
  • Moved the theme system from core to a client-side ThemeProvider — noahschmal
  • Returned factory/defence-post radii and railroad highlighting when placing a city/port on top — VariableVince
  • Showed the alliance request + duration icon and ally/teammate targets, with optimization — VariableVince
  • Moved status icons closer above names with emoji on top — VariableVince
  • Displayed player flags next to names again and restored territory skins — VariableVince
  • Restored rendering on WebGL context loss — VariableVince
  • Improved coordinate grid — FrederikJA
  • Stopped trade-friendly ships from rendering as angry red warships — Berk
  • Fixed the SAM/factory radius ghost upgrade and added a railroad ghost for factories, syncing factory effective distance and railroad max length — TKTK123456

Performance

  • Numerous WebGL renderer performance improvements — Evan
  • Major CPU and memory optimizations in the map generator — Alex Jurkiewicz
  • Migrated AttackExecution hot loops to forEachNeighbor — Mike Zaugg
  • Fixed AStar overflowing the priority queue on twisted paths — Arkadiusz Sygulski

Maps

🗺️ New Maps

  • Mississippi River 🇺🇸 — Extremely long vertical river-based meme map (by @RickD004)
  • Caribbean 🏖️ — Island based map with tons of naval trade/warfare (by @RickD004)
  • Danish Straits 🇩🇰 — Two landmasses and many islands on a relatively small map (by @RickD004)
  • Venice 🛶 — Urban map with a multitude of canals (by @RickD004)
  • Juan De Fuca Strait 🐋 — 3 Teams map based on the strait between Washington and Canada (by @RickD004)
  • Northwest Passage 🧊 — Island based map based on the historic sea route cutting through the Canadian Archipelago (by @RickD004)
  • Indian Subcontinent 🇮🇳 — Highly requested map with lots of Indian/Pakistani states as NPCs and rivers (by @RickD004)
  • Balkans — Land based European map with countries as NPCs and additional nations (by @RickD004)
  • Middle East 🌴 — Massive highland-based map focused on the most volatile region on earth (by @RickD004)
  • Onion 🧅 — tiny meme map with onion outlines as water and mountainous terrain as the background (by @TKTK123456)
  • Yellow Sea 🇨🇳 — medium sized sea map with two peninsulas, located between China and Korea (by @crunchybbb2)
  • Taiwan Strait 🇹🇼 — 2 teams map with two equally sized landmasses (by @crunchybbb2 and @RickD004)
  • Korea 🇰🇷 — Peninsula map with Korean provinces as nations (by @crunchybbb2)
  • Southeast Asia 🏝️ — Large subcontinental map with islands, landmasses and archipelagos (by @RickD004)
  • Hong Kong 🇭🇰 — Large and dense city-themed map with harbors, islands, and 71 district-themed NPCs (by @crunchybbb2)
  • Titan 🪐 — Cosmic lake and river system based on Saturn's largest moon (by @RickD004)
  • World Inverted 🌎 — Massive map with Earth's oceans becoming land and land becoming sea; filled with tectonic plate boundaries as "rivers" and shipwrecks as NPCs (by @PatrickPlaysBadly)
  • Labyrinth 🌀 — Confusing symmetrical maze pattern with water channels and white cross marks (by @PatrickPlaysBadly)
  • Chopping Block 🔪 — Unusual pattern inspired by The Box and an inversion of the Sierpinski map (by @PatrickPlaysBadly)
  • Warship Warship ⚓ — Meme map with two warship-shaped islands; inspired by Ultimus Rex's memed quote "Warship Warship" (by @crunchybbb2)

Map Improvements & Fixes

  • Team Maps Expansion (new team spawnzones), a huge terrain re-make of multiple maps, and new/updated map categories — RickD004
  • Rebalanced the Taiwan Strait map — RickD004
  • Fixed a river in Balkans not connecting to the sea and the Bosphorus map; QoL for Strait of Malacca — RickD004
  • Formatted the map lists in Main and MapPlaylist; standardized map names across info/manifest JSONs — RickD004
  • Added flags to nations on Lemnos/Hormuz/Two Lakes; fixed the disconnected Yalu River and a Warship Warship pathfinding bug — crunchybbb
  • Updated maps: Dyslexdria and LUNA — Patrick Plays Badly
  • Added a Favourite maps tab — bijx
  • Added map search — FloPinguin
  • Improved MapPlaylist — FloPinguin
  • Fixed map land-tile lookup broken by the asset URL migration — FloPinguin
  • Code refactor: removed lake tile type from the game — FloPinguin
  • Added the Giant World Map to the multiplayer queue after performance improvements — Evan

Nations & Bots

  • Allowed mappers to define additionalNations and to omit nation coordinates for random spawn — FloPinguin
  • Better troop management for nations, with follow-up fixes and improvements — FloPinguin
  • Fixed nations being blocked by PVP immunity and not spawning with random spawn enabled — FloPinguin
  • Fixed nation city farming, reactive defense posts, and nuked-territory capture — FloPinguin
  • Fixed nation names with special characters — Katokoda
  • Fixed nations not spawning in singleplayer when the player picks spawn too fast — Evan
  • Prevented bots from invading/attacking themselves — Berk

Alliances

  • Improved alliance extension handling — babyboucher
  • Fixed the alliance renewal prompt staying open and the expiration window persisting after expiration — Katokoda

Nukes & Combat

  • Rendered nukes smoothly per frame — Evan
  • Removed a double x() dereference in the MIRV separation point calc — Berk
  • Destroyed defense posts on tile capture instead of downgrading/transferring ownership — Berk
  • Fixed warships freezing with no path — Katokoda

Store & Account

  • Showed full store item names instead of truncating them — Aotumuri

Clans

  • Added clan game history, a clan stats breakdown, and clantag part 1 — ryanbarlow97
  • Disabled game buttons for clan tag + username; fixed the clans-UI border and a streamer-mode bug — ryanbarlow97
  • Hid clan tags in public FFA games to prevent teaming and hid the clan tab on crazy games — Evan
  • Added support for direct clan detail links and made the clan-tag warning clickable — Aotumuri
  • Corrected the clan-tag length error message — Berk

Friends & Social

  • Added a friends panel with team-grouping hints (extended to the lobby team preview) and put friends on the same team — Evan
  • Added FFA collusion warning — a-happy-goose

UI, Events & Notifications

  • Added a help notification system to the control panel — FloPinguin
  • Filtered actionable events to remove dead requestors — Katokoda
  • Added boat ETA calculation and display in AttacksDisplay — a-happy-goose
  • Fixed the missing boat sprite icon in the attacks panel — Cameron Clark
  • Fixed a malformed flag SVG URL in playerRow — Blake Girardet
  • Fixed mobile logo spacing — Aotumuri
  • Removed emoji from user settings — Aotumuri
  • Added a "go to player on spawn" setting (default on) — FrederikJA
  • Added a retaliate keybind — Sky Elder
  • Fixed rebound keys — TKTK123456
  • Disabled build hotkeys after death — Aotumuri
  • Blocked Safari page-level pinch-zoom — Vansh
  • Added a per-recipient cooldown to QuickChatExecution — Josh Harris

Lobby & Matchmaking

  • Added a spawn phase countdown timer — tnhnblgl
  • Added a delayed lobby start timer — FrederikJA
  • Removed the spawn timer on singleplayer (kept a static one elsewhere) — Aotumuri / Evan
  • Fixed ranked 1v1 requeue opening matchmaking — Aotumuri

Security & Server Stability

  • Fixed a critical XSS in NewsModal (GHSA-rpr9-rxv7-x643) — Mehmet KOZAN
  • Patched a Desync DoS vulnerability with strict majority consensus — Berk
  • Removed duplicate express.json() middleware (SEC-04) — Berk
  • Guarded all ws.send() calls with readyState checks and prevented sendStartGameMsg from crashing the server on disconnect — Berk
  • Added stale-if-error to the app-shell Cache-Control — Josh Harris

Tooling, CI & Repo

  • Fixed the GitHub translation key category and restored the dev-only localStorage pattern override — Aotumuri
  • Fixed CI test failures from an over-long test — VariableVince
  • Silenced a noisy LangSelector "not found" console warning; fixed a websocket error-log typo — Berk

Meta & Misc

  • Meta tuning: nuke speed 8 → 10 tiles per tick, trade-ship sigmoid midpoint 200 → 400 — Evan
  • Replaced hardcoded defaults and fixed an off-by-one error — babyboucher
  • Updated and removed dependencies; removed a leftover optional chain — VariableVince
  • Dropped the unused disposer return from installSafariPinchZoomBlocker — Vansh

Translators

  • Arabic🇸🇦: N0ur, Moha & SyntaxPM
  • Bengali🇧🇩: sheikh
  • Brazilian Portuguese🇧🇷: theskeleton4393 & juliosilvaqwerty5
  • Bulgarian🇧🇬: Nikola123 & NewHappyRabbit
  • Chinese Simplified🇨🇳: Moki
  • Chinese Traditional🇨🇳: SkiRhino
  • Czech🇨🇿: Xaelor, erinthegirl & Matoada
  • Danish🇩🇰: NiclasWK
  • Dutch🇳🇱: cldprv, tryout33 & Zjefken
  • Esperanto<:flag_esperanto:1369260030674862222>: r3ms & Katokoda
  • Estonian🇪🇪: ramon.o
  • Finnish🇫🇮: Tanepro193
  • French🇫🇷: cldprv, gx21, r3ms & Eiwalis
  • Galician<:flag_gl:1393344571450200246>: toldinsound
  • German🇩🇪: Pilkey, jacks0n, floriankilian, Fibig & TNB
  • German🇨🇭: originaloha
  • Greek🇬🇷: pantelispantelidis
  • Hungarian🇭🇺: ap.ms
  • Hebrew🇮🇱: Goblinon
  • Hindi🇮🇳: sheikh
  • Italian🇮🇹: frappa10 & Lollosean
  • Indonesian🇮🇩: tronsar
  • Japanese🇯🇵: Aotumuri, daimyo_panda2, gafunuko, kaywb & aki__san__
  • Korean🇰🇷: Jinyoon
  • Macedonian🇲🇰: Perdiccas
  • Polish🇵🇱: zibi, RinkyDinky, Rulfam & krissutonieja
  • Persian🇮🇷: nobodyiran
  • Russian🇷🇺: Rulfam & Redincon
  • Serbo-Croatian🇷🇸🇭🇷🇧🇦🇲🇪: Vekser
  • Slovak🇸🇰: extraextra
  • Slovenian🇸🇮: MotivatedMonkey
  • Spanish🇪🇸: 6uzm4n
  • Swedish🇸🇪: Moha, theangel2 & Keevee
  • Toki Pona<:tokipona_flag:1371913333254393856>: Makonede
  • Turkish🇹🇷: Toyatak & grassified
  • Ukrainian🇺🇦: Rulfam

Don't miss a new OpenFrontIO release

NewReleases is sending notifications on new releases.