A persistent strategy MMO for the Mac, on a still black lake under the moon.
Watch the trailer
Nullmere Online is one world shared by everyone who plays it: a great dead lake, still as black glass under a full moon, ringed by the seats of twelve Houses (a realm may be raised with up to ninety-six). Each player is a keeper and holds a House. Keepers found holds and work the land, raise works and pursue studies, muster companies by the thousand under their commanders, make and break pacts and alliances, and win the age by dominion over the lake or by raising the Moonspire. The realm keeps the world on its server and plays every House no keeper holds. When an age ends, its holds lie drowned beneath the next age's lake, for new keepers to find.
It is a native Mac app for Apple silicon: SwiftUI and AppKit, every frame drawn with Metal, every model, sound and note of music made in code for this game alone. Envoys, a chronicler and a clerk who reads orders written in plain words speak through Apple's on-device model, on each keeper's own Mac. Website: nullmere.online.
A minute and fifty-two seconds of the game's own world at night, drawn by its own renderers and scored by its own synthesiser, with nothing of the interface over it: the trailer (1920 by 1080 at sixty frames a second, MP4).
You need a Mac with Apple silicon on macOS 26 Tahoe or later, with Apple Intelligence turned on and its model downloaded (System Settings), and Xcode 26 or later to build. The voices speak through Apple's Foundation Models framework, so the game runs only where that model does.
git clone https://github.com/ael-dev3/Nullmere.git
cd Nullmere
NULLMERE_REALM=local swift run NullmereLauncherThat builds the game and opens its launcher with a realm hosted on your own Mac: press Play, choose the name you'll go by, and enter as a keeper. To build the app itself:
make app
open "build/Nullmere Online.app"The public realm on SpacetimeDB's maincloud is not raised yet, so for now a realm of your own is the way in. DEVELOPING.md covers Xcode, the tests, releases and the previews; REALM.md raising a realm on a SpacetimeDB server.
Nullmere Online is in active development. It plays end to end on a realm of your own, and CI plays it through a real SpacetimeDB server whenever the code changes: keepers' clients meet, trade, ally, speak and make war there, and the app enters a realm across the network. Going live takes five steps that need the maintainer's own accounts and ears, each a checklist in GO-LIVE.md. Measured honestly against Rise of Kingdoms, it scores 5 of 10 today; GAPS.md says what is there and what is still missing.
| Document | What it covers |
|---|---|
| Playing | The launcher, the realm and every rule of the game |
| The realm | How the server works, and raising a realm |
| Developing | Building, testing, releasing, the previews, the trailer and the code's layout |
| Design | How the lake and the world look, and the direction |
| Gaps | Nullmere Online against Rise of Kingdoms, and what lies beyond it |
| Going live | The maintainer's checklist for the public realm and release |
| From Warpkeep | What Nullmere kept from its halted predecessor |
| The audit | The consistency audit of October 2026 and what became of it |
- Nullmere Online, its code, art, sound and documentation alike, is licensed under the GNU Affero General Public License, version 3 only (AGPL-3.0-only). Whoever runs a modified realm or client for others over a network must offer them its source.
- The names Nullmere Online and Nullmere identify the official project. Neither licence grants rights to them.


