Scenery (all procedural, seeded, no imported assets): - Terrain shader: grass/dry grass/dirt/sand/rock strata/snow + detail normals - 5 tree types, faceted mossy rocks, cliff outcrops, sea stacks, bushes, logs and stumps, batched as MultiMesh per 48 m cell - Wind-animated grass and flowers streamed in tiles around the player - Lake (depth-shaded water with shore foam), ocean to the horizon, cloud sky shader, volumetric fog, glow, softer shadows - Swimming: float at the surface, swim-jump to climb out World bounds: - Steep mountain rim with an invisible wall partway up; one side opens to a sheer sea cliff with the wall 1 m inside the edge; whole chunk is an island so the mesh edge is never visible - Respawn safety net if the player leaves the walkable area or the map - Fix: the cliff edge now tracks the wall in the headlands (it used to drop away inside the wall, leaving a pit with lake water hanging over it) Tests: tests/test_boundary.gd (24-direction escape attempt) and tests/test_terrain_edges.gd (no ground below waterline near the wall). Upgrades the project to Godot 4.7 (project.godot rewritten by the 4.7 importer, .uid files added) and documents it in the setup guide.
3.2 KiB
3.2 KiB
Roadmap
One milestone ≈ a chunk of working sessions. Each ends with something you can actually run and see. Timelines assume solo dev + heavy AI assistance, steady (not full-time) pace.
M0 — World skeleton (single-player) · ~2–4 weeks
Goal: walk around a lit, atmospheric terrain. Prove the look.
- Project scaffold, git repo, docs
- Godot installed, project opens
- First-person / third-person character controller (move, jump, mouse-look)
- One flat/heightmap terrain chunk with a material
- Atmospheric lighting: directional sun, sky, volumetric fog, tonemapping
- Place one low-poly tree + rock to set the mood
- Done when: you load the game and walk around a Valheim-ish lit field.
M0.5 — Scenery & world bounds (done)
- Mountain-rim boundary (steep cliffs + invisible wall + respawn safety net),
covered by
tests/test_boundary.gd - Procedural terrain shader (grass/dirt/sand/rock strata/snow), lake + water shader
- 5 procedural tree types, faceted mossy rocks, cliff outcrops, bushes, logs, stumps
- Streamed wind-animated grass + flowers; cloud sky; swimming
M1 — Survival loop (single-player) · ~3–5 weeks
Goal: the core game verbs.
- Resource nodes: chop tree → wood, mine rock → stone
- Inventory + simple hotbar UI
- Crafting (recipe: wood → tools / building pieces)
- Health / stamina, day-night cycle
- Snap-together building: place a wall/floor, resource cost, basic support rule
- Done when: gather → craft → build a tiny shelter, single-player.
M2 — Multiplayer · ~2–4 months
Goal: self-hosted, authoritative, 2–8 players.
- Refactor state to server-authoritative (single-player becomes loopback server)
- Headless dedicated server mode (
--headless -- --server) - ENet transport, client prediction for local movement, interpolation for others
- Replicate resource nodes, inventory, building, health
- Persistence: world save/load on the server
- Done when: a friend joins your self-hosted server and you build together.
M3 — Addon SDK + sandbox · ~2–3 months
Goal: the differentiator. Easy, safe mods.
- Embed sandboxed Lua VM in the server
- Capped API surface (events + safe world queries/commands)
- Per-addon CPU/time + memory quotas
- Addon manifest format (declare items/recipes/prefabs as data)
- 2–3 example addons (a new craftable item; a "welcome" message on join; a custom spawn rule)
- SDK docs for modders
- Done when: a modder drops an addon folder in and it safely adds content, and a deliberately-malicious test addon is contained (can't read files, can't hang the server).
M4 — Content & polish · ongoing
- More biomes, creatures, items, building pieces
- PvP / raiding rules, building damage
- Better UI, settings, controls
- Audio, music, weather
- Packaged builds for Win/Mac/Linux (+ Mac signing/notarisation)
Honest overall estimate
A genuinely playable self-hosted survival game with a working sandboxed addon SDK is roughly 6–12 months of steady solo work with AI help. The M0–M1 vertical slice (a few weeks) is what proves the concept and keeps you motivated.