A rewrite inspired by the original The Settlers, built with the Bevy game engine. The project focuses on online multiplayer and expanded gameplay.
This project does not distribute original game assets. Players must provide legally obtained data files themselves.
The game supports the DOS spaed.pa archive and optional sounds and music
files from the Amiga version.
Place spaed.pa, sounds, and music in the working directory from which the
game is started.
Install current stable Rust.
common native build dependencies:
sudo apt install build-essential pkg-config libasound2-dev libudev-devInstall libopenmpt to enable Amiga music playback:
brew install libopenmptThe game automatically detects Homebrew installations on Apple Silicon and Intel Macs, as well as MacPorts installations.
To enable Amiga music playback, download the Windows binaries from the
libopenmpt website and copy all provided
.dll files next to the game executable, for example into target\release.
Copying only libopenmpt.dll may fail because Windows also needs its dependent
libraries.
Host starts server (UDP port 5000):
RESIEDLER_ALPHA_MAX_CLIENTS=4 cargo run --release --bin dedicated_server
# on windows
set RESIEDLER_ALPHA_MAX_CLIENTS=4
cargo run --release --bin dedicated_serverPlayers connect using host IP:
RESIEDLER_ALPHA_SERVER_ADDR=SERVER_IP:5000 \
cargo run --release --bin resiedler-alpha
# on windows
set RESIEDLER_ALPHA_SERVER_ADDR=SERVER_IP:5000
cargo run --release --bin resiedler-alphaReplace SERVER_IP with the host's LAN or public IP address. The host must allow
UDP port 5000 through its firewall and may need to forward that port on its
router.
| Key | Action |
|---|---|
W, A, S, D or arrow keys |
Pan camera. |
F1 |
Center camera on current player's castle. |
F2, F3, F4 |
Center camera on land-expedition bases 1, 2 and 3. |
F9 |
Reserved for local save loading; dedicated multiplayer reports it as unavailable. |
F10 |
Finish all owned construction sites; server requires DEBUG_MODE=1. |
F11 |
Request maximum resources and people; server requires DEBUG_MODE=1. |
F12 |
Request 100 elite castle soldiers; server requires DEBUG_MODE=1. |
Space |
Show/hide build markers for flags, mines, small and large buildings. |
Hold Tab |
Show player territory colors and castle representatives. |
M |
Show/hide minimap. |
Shift+M |
Expand/restore and show minimap. |
O |
Cycle minimap ownership mode. |
B |
Show/hide buildings on minimap. |
G |
Show/hide minimap grid. |
Z |
Switch minimap scale between 1× and 2×. |
R |
Show/hide stored-resources window. |
T |
Show/hide production-history window. |
Escape |
Close popup, cancel road/work-area/expedition placement, or cancel pigeon mail. |
- Authoritative online multiplayer with a dedicated server.
- Stone and wood cutters now support any type of rock/ tree.
- New desert economy with water, cactus, juice, and production boosts.
- Gatherer hut, juicery, well, charcoal kiln, and expedition cart production.
- Land expeditions that establish remote territory and storage.
- Bird mail between castles.
- Boats for fishing and two-item water transport.
- Dynamic worker allocation and redirected goods when new demand appears.
- Per-castle military controls, beer-assisted soldier training.
- Building operations pause.
- Minimap, territory overlay, production statistics, movable/pinned popups.
- New graphics effects.
- Ultrawide screens support.
The client has no command-line options. Configure it with environment variables
placed before cargo run --release --bin resiedler-alpha:
| Variable | Default | Description |
|---|---|---|
RESIEDLER_ALPHA_SERVER_ADDR |
127.0.0.1:5000 |
Dedicated-server IP/hostname and UDP port. |
RESIEDLER_ALPHA_DATA |
automatic search | Path to spaed.pa, or an audio-data directory containing sounds/music. |
RESIEDLER_ALPHA_AMIGA_DATA |
automatic search | Directory containing optional Amiga sounds and/or music files. |
DEBUG_MODE |
0 |
Set to 1 to auto-ready the client and use server-enabled debug actions. |
Example:
RESIEDLER_ALPHA_SERVER_ADDR=game.example.org:6000 \
RESIEDLER_ALPHA_DATA=/path/to/data \
cargo run --release --bin resiedler-alphadedicated_server [--seed <SEED>] [--game-speed <0..=40>]
[--save-file <FILE.SAVE> | FILE.SAVE]
| CLI option | Default | Description |
|---|---|---|
-h, --help |
— | Print usage. |
--seed SEED, --seed=SEED |
8667715887436237 |
Map seed: exactly 16 digits, each from 1 through 8. |
--game-speed N, --game-speed=N |
2 |
Simulation speed from 0 through 40. |
--save-file FILE.SAVE, --save-file=FILE.SAVE |
none | Load/create server save; filename must end in .SAVE. |
FILE.SAVE |
none | Positional shorthand for --save-file FILE.SAVE. |
Server environment variables:
| Variable | Default | Description |
|---|---|---|
RESIEDLER_ALPHA_BIND_ADDR |
0.0.0.0:5000 |
Local address and UDP port on which server listens. |
RESIEDLER_ALPHA_MAX_CLIENTS |
10 |
Number of required lobby/player slots, clamped to 1..=10. |
RESIEDLER_ALPHA_MAP_SIZE |
10 |
Map size, clamped to 3..=10. |
RESIEDLER_ALPHA_SEED |
8667715887436237 |
Map seed in format described above. |
RESIEDLER_ALPHA_GAME_SPEED |
2 |
Simulation speed from 0 through 40. |
RESIEDLER_ALPHA_SAVE_FILE |
none | .SAVE file loaded or created and periodically saved by server. |
DEBUG_MODE |
0 |
Set to 1 to enable authenticated F10/F11/F12 actions. |
CLI options override matching environment variables. Example:
RESIEDLER_ALPHA_BIND_ADDR=0.0.0.0:6000 \
RESIEDLER_ALPHA_MAX_CLIENTS=4 \
RESIEDLER_ALPHA_MAP_SIZE=8 \
cargo run --release --bin dedicated_server -- \
--seed 1234567812345678 --game-speed 5 --save-file community.SAVEIf you spot a bug, please report it thru issues in the github project. Try to include as much evidence, e.g. screenshot, *.SAVE file and/or steps to reproduce the bug.
Fork the repository, create a focused branch, and open a pull request with a
concise title identifying the affected area, for example:
assets loader: introduce ....
More importantly, explain clearly what changed, why it changed, and include tests. Keep each pull request focused. Write contributor discussions and review responses in your own words; do not use large language models to communicate with other contributors.
From this directory, start one server and one client at game speed 5:
./local-test.sh [client-count: 1-10] [game-speed: 0-40]
Defaults: 2 clients and speed 2. Launcher also accepts client/server variables
listed above. Set RESIEDLER_ALPHA_SAVE_FILE for persistent server state or
DEBUG_MODE=1 for debug mode:
First build takes several minutes. Start more local players by changing 1 to
any number through 10. Press Ctrl+C in terminal to stop server and clients.