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.
70 lines
2.6 KiB
Markdown
70 lines
2.6 KiB
Markdown
# Continuing on another machine
|
|
|
|
This project is a self-contained git repo. Everything needed to build and run is
|
|
in it except **Godot itself** (which you install once per machine). No assets to
|
|
download — the M0 world is generated in code.
|
|
|
|
## 1. Install Godot 4.3+
|
|
- **macOS / Windows / Linux:** download the *standard* build (NOT the .NET/C#
|
|
build — this project is pure GDScript) from https://godotengine.org/download
|
|
- Use **4.7.x or newer 4.x**. The project was upgraded to `4.7.2.stable` (an
|
|
older editor will warn that the project is from a newer version).
|
|
- macOS shortcut: `brew install --cask godot`. If Homebrew can't unpack it,
|
|
download the zip from the GitHub release page and move `Godot.app` to
|
|
`/Applications`.
|
|
|
|
## Tests
|
|
```bash
|
|
# Boundary: tries to walk/jump out of the valley in 24 directions
|
|
godot --headless --path . --fixed-fps 30 --script res://tests/test_boundary.gd
|
|
# Terrain: no pits/hanging water just inside the boundary wall
|
|
godot --headless --path . --script res://tests/test_terrain_edges.gd
|
|
```
|
|
|
|
## 2. Get the project onto the machine
|
|
You have the folder (from the zip, or a git remote). Then:
|
|
|
|
```bash
|
|
# If you brought the .zip:
|
|
unzip valheimlike.zip
|
|
cd valheimlike
|
|
|
|
# If you use a git remote instead (recommended for ongoing work):
|
|
git clone <your-remote-url> valheimlike
|
|
cd valheimlike
|
|
```
|
|
|
|
## 3. Open / run it
|
|
```bash
|
|
# Open in the editor (first open rebuilds the local .godot cache — this is normal):
|
|
godot --path . # or: open Godot, "Import", pick this folder's project.godot
|
|
|
|
# Run the game directly:
|
|
godot --path .
|
|
```
|
|
On macOS the binary inside the app is:
|
|
`/Applications/Godot.app/Contents/MacOS/Godot --path .`
|
|
|
|
## Controls
|
|
WASD move · Mouse look · Shift sprint · Space jump · ESC frees the cursor.
|
|
|
|
## Notes
|
|
- The `.godot/` cache folder is machine-local and git-ignored — it regenerates on
|
|
first open. Don't copy it between machines.
|
|
- If scripts look like they "didn't load", let the first editor open finish its
|
|
import pass, then press play.
|
|
- Where we are: **M0 + M0.5 complete** (detailed, bounded island valley). Next
|
|
is **M1** (gather → craft → build). See `docs/ROADMAP.md`.
|
|
|
|
## Recommended: push to a git remote for cross-machine work
|
|
A zip is a one-time snapshot. For going back and forth between machines, create a
|
|
private remote once and push:
|
|
|
|
```bash
|
|
# GitHub (private): gh repo create valheimlike --private --source=. --push
|
|
# or any remote:
|
|
git remote add origin <your-remote-url>
|
|
git push -u origin main # (branch may be 'master' — check `git branch`)
|
|
```
|
|
Then on each machine it's just `git clone` / `git pull` / `git push`.
|