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.
Emberwild 0.5.0 is released (download page and player guide: https://emberwild-95k.pages.dev, builds on the Gitea releases). Built so far:
- M0-M1: the island, survival, crafting, building, weather, wildlife, hunting, fishing.
- M2: self-hosted multiplayer (Host Game, dedicated servers, rules, chat, admin).
- P1-P5 (
docs/PROGRESSION_DESIGN.md): iron, stone building, the wolf moon and alpha, the bear, crows and foxes, the barrow, hazards, the Old Stag. P6: a use for every material, lights to place, dropping items, bag rows on the hotbar. - T1, T2, T4 (
docs/TUTORIAL_DESIGN.md): the tutorial with Old Tam (spoken), and his tips in normal worlds. - M4 so far: packaged builds, the update check, music, ambience, sound effects
and creature voices (
assets/audio/CREDITS.md), the trailer and help pages, the map (N) and compass. - W0-W3, J1, J3 (
docs/WORLDLETS_DESIGN.md): worldlets as data, the Cove (beach, pier, sea fishing, a stream), and the cliff tunnel between them, with a save file per worldlet; on a server, a server per land (the Valley's starts the Cove's on the next UDP port), with chat, the player list, admin commands and sleep across lands, and one clock everywhere. - 0.6.0, the Cove's own (
docs/WORLDLETS_DESIGN.md§5): the wreck, a treasure map and a dig for each player, the drowned crew, crabs and gulls, and a rowing boat to build and moor at the pier (sailing comes with the Highlands). Report a bug in the pause menu;docs/PLAYTEST.mdfor testers. Next: after the playtest, J2 (each tunnel's own gate and supplies), then the Highlands (by sail). Running from the source,godot --path . -- --dev-worldletslets New World start in any worldlet, to try one directly.
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
Packaged builds
tools/export.sh # build/Emberwild-<version>-macos.zip and -windows.zip
tools/export.sh macOS # or just one ("macOS" / "Windows")
Needs the Godot export templates for your Godot version (Editor > Manage
Export Templates). The version number is application/short_version in
export_presets.cfg.
- Mac: a universal .app, ad-hoc signed but not notarised. On another Mac, the first launch needs right-click > Open (or System Settings > Privacy & Security > Open Anyway).
- Windows: unzip and run
Emberwild.exe(keepEmberwild.pckbeside it). It's unsigned, so SmartScreen says "Windows protected your PC": More info > Run anyway. - A packaged copy is also a dedicated server:
Emberwild.app/Contents/MacOS/Emberwild --headless -- --server(Mac) orEmberwild.exe --headless -- --server(Windows). Saves and settings live in the same user folder as a copy run from source.
Trailer and download page
tools/trailer/make_trailer.sh # build/Emberwild-trailer.mp4: recorded in-game (Movie Maker), needs ffmpeg
tools/site/make_site.sh # build/site/: index.html + poster.jpg + trailer.mp4 for the current release
The page's download links point at the Gitea release named in
build/version.json, so rebuild it after each tools/export.sh release.
Gitea doesn't serve HTML pages: copy build/site/ to any static web host.
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).