Paul Bailey f62f71658f M2.1: dedicated server, joining, identity handshake, names, lobby
- Net autoload: headless dedicated server (--server) on UDP 24242 via ENet,
  server.json preferences (flags override per run, never saved), reserved
  names in names.json
- Identity: RSA-2048 key per install (Godot has no Ed25519), player id =
  key hash, challenge/response so ids can't be faked; profile with name
  and limited appearance (tunic, hair, beard)
- Server refuses bans, allowlist misses, duplicate logins, bad or taken
  names, wrong passwords, old protocol versions and a full server, each
  with a clear reason; first player on a new server becomes admin
- Title screen: Profile, Join Game, and a lobby with server info, rules
  and who's online
- test_net_lobby: real headless server + bot processes over UDP (38
  checks); --exit-with so test servers never outlive the test
2026-11-04 13:40:27 +00:00

Valheim-like Survival Game (working title)

A stylised-realistic, low-poly survival game built in Godot 4, inspired by Valheim (look/feel) and Rust (survival depth, player-run servers). Cross-platform (Windows / macOS / Linux). Self-hosted authoritative dedicated server. Sandboxed addon SDK with guard rails.

North star

  • Look: low-poly meshes + atmospheric lighting + fog/post-processing. Mood over texture detail. (Valheim recipe — a 5-person team made it run on potatoes.)
  • World: mesh/heightmap terrain, procedurally generated, biomes. NOT voxels.
  • Building: snap-together prefab pieces (walls, floors, roofs) with structural rules.
  • Survival loop: gather → craft → build → defend. Health/stamina, day/night, enemies.
  • Multiplayer: authoritative headless dedicated server, same codebase, self-hostable on any OS. Clients are never trusted.
  • Addons: sandboxed (Lua), capped API, CPU/memory quotas, no host filesystem/network/escape. Guard rails from day one.

Status

See docs/ROADMAP.md for milestones and docs/ARCHITECTURE.md for the design.

Current milestone: M0 — playable single-player world skeleton (scaffolding on disk; needs Godot 4 installed to open & run).

Requirements

  • Godot 4.3+ (standard build; no C# needed — this project uses GDScript).
  • Git.

Quick start (once Godot is installed)

# Open the project
godot --path . --editor        # or open Godot and import this folder's project.godot

# Run the game
godot --path .

# Run the headless dedicated server (later milestone)
godot --headless --path . -- --server

Layout

project.godot          Godot project definition
scenes/                game scenes (.tscn)
scripts/               GDScript (.gd)
  core/                shared systems (world, net, save)
  player/              player controller, camera
  world/               terrain, chunks, generation
  building/            snap-together building system
  addons_sdk/          the sandboxed addon host + API
addons_examples/       example mods written against the SDK
assets/                models, materials, textures (low-poly)
docs/                  architecture, roadmap, addon SDK spec

License

TBD (lean toward MIT or a source-available license — decide before first public release).

Description
Low-poly survival game (Godot 4)
Readme 16 MiB
2026-11-07 16:14:11 +00:00
Languages
GDScript 94%
Python 3.6%
HTML 1.3%
Shell 1.1%