Files
Emberwild/docs/SETUP_ON_NEW_MACHINE.md
Paul Bailey 67bf85523d M1d: creatures, hunting, weapons, food buffs and the hide cloak
- Rabbits, deer and boars with procedural meshes and animated legs, a
  state machine (idle/wander/flee/charge/dead) and heightmap steering that
  avoids water, cliffs, the world edge, trees and buildings
- Spawner keeps a habitat-based budget around the player (6/4/3)
- Melee needs a weapon or tool (club, spear, axe, pickaxe); box sweep hits
- Wooden spear (thrust or throw) and crude bow with draw-scaled arrows;
  projectiles stick in the world as saved pickups
- Carcasses: E to butcher for meat, hide and embedded arrows
- Boars charge and gore when hit; hurt flash and a brief healing pause
- Cooked meat gives Well fed (faster stamina and healing); buffs saved
- Hide cloak: wear for warmth, saved, goes in the grave on death
- Feathers as meadow pickups (appended, existing save ids unchanged)
- New test_creatures_combat suite; run_all.sh gets a per-suite time limit
2026-11-04 10:55:44 +00:00

91 lines
3.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
Run everything (fails on any failed check or script error):
```bash
tests/run_all.sh
```
Or one at a time:
```bash
# Wildlife, melee, spear, bow, butchering, cooking + buffs, cloak, drops
godot --headless --path . --script res://tests/test_creatures_combat.gd
# Weather, shelter, snap building, support, doors, beds, regrowth
godot --headless --path . --script res://tests/test_weather_building.gd
# 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 deep pits / floating water at the boundary, across 8 seeds
godot --headless --path . --script res://tests/test_terrain_edges.gd
# Survival loop: inventory, crafting, chopping, mining, pickups, building, chests
godot --headless --path . --script res://tests/test_survival_core.gd
# Save/load round trip + world slots (uses user://test_worlds, not your saves)
godot --headless --path . --script res://tests/test_save_load.gd
# Survival stats: hunger, warmth, fire fuel, cooking, foraging, death + grave
godot --headless --path . --script res://tests/test_survival_stats.gd
```
## Save files
Worlds are per machine, under
`~/Library/Application Support/Godot/app_userdata/Valheimlike/worlds/` on
macOS (`%APPDATA%\Godot\app_userdata\Valheimlike\worlds\` on Windows). Copy a
world's folder across to move it to another machine.
## 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`.