RTS games you can host yourself
When the publisher's servers go, the game goes with them — unless you can run your own. The real-time strategy games with a server you can install, what hosting each one actually involves, and why Steel Tide's is one command.
In April 2026, Stormgate — a free-to-play RTS with a 1.0 release less than a year old — announced that its online play would end and an offline patch would follow, because the company hosting its servers had been bought by an AI firm and was shutting its game-server business down. Nothing about the game changed. The building it lived in was sold.
That is the case for self-hosting in one paragraph. A multiplayer game whose server you can run is a game that outlives its publisher's budget, its hosting contract, and its studio. Here are the real-time strategy games where that is possible, what hosting each one actually involves, and how Steel Tide's server works. Checked in September 2026.
Games with a server you can install
OpenRA ships a dedicated server with every release. There is a launch script for it, it listens on port 1234 by default, and the options — server name, map, port — are plain command-line settings. Because the whole project is GPL, the community has wrapped it in Docker images, and a Red Alert or Tiberian Dawn server on a five-dollar box is an afternoon's work.
Mindustry distributes a headless server as a separate download from the game, run from a terminal, with a wiki page on it and community admin tools around it. The game is free from the developer, so the server is too.
Chrono Divide, the browser Red Alert 2, publishes a server for its multiplayer alongside its modding SDK on the project's GitHub, though the game client itself is not open source and still needs the original game's files.
The Battle for Wesnoth is turn-based rather than real-time, and it goes here because it is the model everyone else copies: an open-source game that ships its own multiplayer server program, which anyone can run for their own community.
Two neighbours from outside the genre that deserve the mention: OpenTTD starts a dedicated server with a single flag, and Factorio offers a free headless Linux server download, with Space Age included. Both are why "host it yourself" is a normal sentence for their players and an unusual one for ours.
Games where a player hosts
0 A.D. (version 28 "Boiorix", February 2026, the first release without "alpha" on it) uses peer-to-peer networking with no central server: one player's game is the host, and the others connect to it. Free, GPL, and yours — but nobody's game keeps running when the host goes to bed.
Warzone 2100 (4.7.0, April 2026) has hosted multiplayer from inside the game since it went open source in 2004, and its lobby is a directory rather than an owner.
Warcraft III: Reforged still allows LAN play from its offline mode, which for a Blizzard game is a small miracle. StarCraft II does not: it needs Battle.net, and it always will.
Games with a lobby you do not own
Beyond All Reason runs on a central lobby server, and its own FAQ says so plainly: hosting your own has "many caveats", port-forwarding is nearly always required, and the team recommends joining one of the servers it spawns automatically and locking it to make it private. The whole stack — the lobby server, the autohost, the client — is open source, and a developer can spin it up locally in one command, but that is a development environment, not a Saturday.
Zero-K is similar: autohosts run by the project's administrators, with the underlying Spring-era tools available for anyone determined enough to run their own.
Neither is a criticism. A free game with thousands of players needs a matchmaking service more than it needs a hundred hobbyist servers. It is simply a different bet about who keeps the lights on.
How Steel Tide's server works
Steel Tide's multiplayer is server-authoritative — the server runs the simulation and sends each player a snapshot filtered through their own fog of war — and the server is something you install, not something we operate for you.
curl -fsSL https://steelti.de/setup.sh | bash
On a systemd Linux machine, x86-64 or ARM64, that installs an unprivileged service, generates a host key and a join code, and prints two links: one for the host, one for players. The server serves the complete browser client itself, so the people you send the link to need nothing but the link. Open TCP port 28785 and you are hosting. Re-running the installer updates the executable and the client without touching keys or checkpoints.
Add a domain name and the installer gets you a Let's Encrypt certificate, which matters more than it sounds: without TLS, a browser will not open a game socket from a secure page, so players get bounced to the server's own address and lose the saves and settings stored under the site they came from. With it, they connect from wherever they already are.
The server writes an atomic checkpoint at match start and every sixty simulated seconds, so a crash or a reboot resumes rather than restarts. A disconnected player reconnects with a token. The host can pause. The lobby exposes the same map, metal, fog and population options as a local skirmish, seats up to six humans or AIs, and accepts an uploaded save from a single-player game so a solo campaign can turn into a co-op one. The full guide covers TLS, ports, configuration and the uninstall script, which keeps your saves.
For a room rather than the internet, the desktop and mobile apps host without a server at all: Multiplayer ▸ Host, a name, and the game announces itself on the local Wi-Fi for other copies of the app to find. No port forwarding, no configuration. What that does not do is serve the browser client, so a friend on a laptop with only a browser still wants the one-line install.
Why it is one command
Because the honest number of people who will host a game server is the number who can do it in under a minute, and because a browser game whose multiplayer depended on our budget would be exactly the kind of game this post opened with. The server runs whether or not we do. Put one up and see.
