Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

ReSiedler.Alpha

A rewrite inspired by the original The Settlers, built with the Bevy game engine. The project focuses on online multiplayer and expanded gameplay.

Assets

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.

Build

Install current stable Rust.

Ubuntu

common native build dependencies:

sudo apt install build-essential pkg-config libasound2-dev libudev-dev

macOS

Install libopenmpt to enable Amiga music playback:

brew install libopenmpt

The game automatically detects Homebrew installations on Apple Silicon and Intel Macs, as well as MacPorts installations.

Windows

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.

Multiplayer

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_server

Players 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-alpha

Replace 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.

Controls

Keyboard

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.

New features

  • 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.

Client parameters

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-alpha

Dedicated-server parameters

dedicated_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.SAVE

Bug reports

If 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.

Contributions

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.

Local test

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.

About

A rewrite inspired by the original The Settlers, focused on online multiplayer and gameplay enhancements

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Contributors

Languages