Resolves #4099 ## Description: Remake the terrain of various maps with green gaps in their terrain, example below (strait of gibraltar) <img width="608" height="383" alt="image" src="https://github.com/user-attachments/assets/9272cf00-6620-4711-81a9-64ebf6a7990d" /> ### Why? In maps with continuous brown and white terrain, it is easier for a player to defend against an attacker, as these types of terrains slow down troops. However in maps with green gaps like the one in the example, the troops will just rush in the green gaps and surround all the white terrain, instantly absorbing them, which makes the terrain mostly useless against defending. I believe that this new type of terrain (using proper elevation data instead of "hillshade like the ones used in these maps) is better for gameplay as it adds more complexity to attacks and defense, and also brings diversity to spawns, as right now these maps have functionally all-green terrain all across them I also changed the coastline of some maps that had them very pixelated. This sometimes caused some rivers to dissapear and some islands to be merged into blobs. I kept the rivers of all maps even if slightly updated, to not change naval gameplay. The maps changed were: Black Sea (terrain and coastline) Gateway to the Atlantic (terrain only) Between 2 seas (terrain only) Iceland (terrain and coastline) East Asia (terrain only) Falklands (terrain and coastline) Halkidiki (terrain only) Strait of Gibraltar (terrain and coastline) Italia (terrain and coastline) Japan (terrain only) Two Lakes (terrain only) <img width="1058" height="536" alt="Captura de pantalla 2026-06-02 213132" src="https://github.com/user-attachments/assets/58fb357b-8738-4388-bbc5-d6c9c1ac4699" /> <img width="625" height="583" alt="Captura de pantalla 2026-06-02 213251" src="https://github.com/user-attachments/assets/99ead586-f790-4088-baef-ad179f3c0119" /> <img width="535" height="537" alt="Captura de pantalla 2026-06-02 213336" src="https://github.com/user-attachments/assets/66755b25-e362-4ef0-b7ff-48b51fdabbbd" /> <img width="639" height="561" alt="Captura de pantalla 2026-06-02 231736" src="https://github.com/user-attachments/assets/22802e9a-5989-4204-9002-61afef22696b" /> <img width="680" height="543" alt="Captura de pantalla 2026-06-02 231804" src="https://github.com/user-attachments/assets/bfae63b6-81e3-4d53-bf17-962332b2c9b0" /> <img width="742" height="545" alt="Captura de pantalla 2026-06-02 212309" src="https://github.com/user-attachments/assets/cdb933c7-5361-4db5-aa4f-c641d0fc4662" /> <img width="613" height="546" alt="Captura de pantalla 2026-06-02 212531" src="https://github.com/user-attachments/assets/352148be-01fb-491b-ae39-746c54d3c278" /> <img width="908" height="548" alt="Captura de pantalla 2026-06-02 212709" src="https://github.com/user-attachments/assets/f6a1ec03-fed8-4872-9a65-0a1ef4268035" /> <img width="718" height="536" alt="Captura de pantalla 2026-06-02 212839" src="https://github.com/user-attachments/assets/5ec1e581-142c-45d6-af0d-e642989e1be1" /> <img width="516" height="544" alt="Captura de pantalla 2026-06-02 212937" src="https://github.com/user-attachments/assets/9843ef29-81f1-45c3-ba7e-49ad2693571d" /> <img width="801" height="537" alt="Captura de pantalla 2026-06-02 213028" src="https://github.com/user-attachments/assets/252822b5-2f2d-456e-a207-85367fab8e02" /> Terrain sources from NASA and OpenTopography, both already credited in CREDITS ## Please complete the following: - [x] I have added screenshots for all UI updates - [x] I process any text displayed to the user through translateText() and I've added it to the en.json file - [x] I have added relevant tests to the test directory ## Please put your Discord username so you can be contacted if a bug or regression is found: tri.star1011
OpenFront.io is an online real-time strategy game focused on territorial control and alliance building. Players compete to expand their territory, build structures, and form strategic alliances in various maps based on real-world geography.
This is a fork/rewrite of WarFront.io. Credit to https://github.com/WarFrontIO.
License
OpenFront source code is licensed under the GNU Affero General Public License v3.0
Current copyright notices appear in:
- Footer: "© OpenFront and Contributors"
- Loading screen: "© OpenFront and Contributors"
Modified versions must preserve these notices in reasonably visible locations.
See the LICENSE for complete requirements.
For asset licensing, see LICENSE-ASSETS.
For license history, see LICENSING.md.
🌟 Features
- Real-time Strategy Gameplay: Expand your territory and engage in strategic battles
- Alliance System: Form alliances with other players for mutual defense
- Multiple Maps: Play across various geographical regions including Europe, Asia, Africa, and more
- Resource Management: Balance your expansion with defensive capabilities
- Cross-platform: Play in any modern web browser
📋 Prerequisites
- npm (v10.9.2 or higher)
- A modern web browser (Chrome, Firefox, Edge, etc.)
🚀 Installation
-
Clone the repository
git clone https://github.com/openfrontio/OpenFrontIO.git cd OpenFrontIO -
Install dependencies
npm run instDo NOT use
npm installnornpm ibut instead use ournpm run inst. It runs the safernpm ci --ignore-scriptsto install dependencies exactly according to the versions inpackage-lock.jsonand doesn't run scripts. This can prevent being hit by a supply chain attack.
🎮 Running the Game
Development Mode
Run both the client and server in development mode with live reloading:
npm run dev
This will:
- Start the webpack dev server for the client
- Launch the game server with development settings
- Open the game in your default browser (to disable this behavior, set
SKIP_BROWSER_OPEN=truein your environment)
Client Only
To run just the client with hot reloading:
npm run start:client
Server Only
To run just the server with development settings:
npm run start:server-dev
Connecting to staging or production backends
Sometimes it's useful to connect to production servers when replaying a game, testing user profiles, purchases, or login flow.
To replay a production game, make sure you're on the same commit that the game you want to replay was executed on, you can find the
gitCommitvalue viahttps://api.openfront.io/game/[gameId]. Unfinished games cannot be replayed on localhost.
To connect to staging api servers:
npm run dev:staging
To connect to production api servers:
npm run dev:prod
🛠️ Development Tools
-
Format code:
npm run format -
Lint code:
npm run lint -
Lint and fix code:
npm run lint:fix -
Testing
npm test
🏗️ Project Structure
/src/client- Frontend game client/src/core- Deterministic game simulation/src/server- Backend game server/resources- Static assets (images, maps, etc.)
🤝 Contributing
Contributions and translations are welcome! See CONTRIBUTING.md for the workflow, the approved-issue process, project governance, and translation info.