# 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.4.1** 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 (`docs/WORLDLETS_DESIGN.md`): worldlets as data, the Cove (beach, pier, sea fishing), and the cliff tunnel between them, with a save file per worldlet (single-player). Next: J3, the journey on a server ("spread out"), then the Highlands. Running from the source, `godot --path . -- --dev-worldlets` lets 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) ```bash # 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 ```bash tools/export.sh # build/Emberwild--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` (keep `Emberwild.pck` beside 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) or `Emberwild.exe --headless -- --server` (Windows). Saves and settings live in the same user folder as a copy run from source. ## Trailer and download page ```bash 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).