26 Commits

Author SHA1 Message Date
Paul Bailey
109fff22d0 0.4.1: the Cove's stream (trout), the seam and sea cave in real rock, one clock for every land (going home no longer rewinds the day) 2026-11-06 22:02:16 +00:00
Paul Bailey
b938e045cb One clock for every land: going back to a land catches it up on the time away (like a night's sleep) instead of rewinding to when you left; J3 decided: a server per land with the Valley's as hub, sleep needs everyone in every land 2026-11-06 21:57:37 +00:00
Paul Bailey
ad47cd53da The Cove's stream: a stream block whose water only runs downhill (spring to the bay), its own water ribbon, trout, on the map; scenery and landmarks keep clear 2026-11-06 21:35:04 +00:00
Paul Bailey
0209c6149a The seam and the sea cave built from real boulders (rock_pile.gd: the scenery's rocks with matching colliders), the seam a cleft between two slabs with pick marks and loose stones 2026-11-06 21:26:15 +00:00
Paul Bailey
b86fb879d2 Site: trailer encoded smaller (CRF 23, 3.5 Mbit/s cap) to fit Cloudflare Pages' 25 MiB file limit; make_site.sh refuses an oversized file 2026-11-06 21:06:08 +00:00
Paul Bailey
2b7e52cd82 0.4.0: map (N) that fills in as you explore and a compass (closes #1); Old Tam's seam and Cove tips (voiced); the journey and sea fish in the guide; trailer with the tunnel and the Cove; protocol 16 2026-11-06 18:36:20 +00:00
Paul Bailey
980ee53579 J1: the cliff tunnel (seam, six propped stretches, dark, lights), travel Valley <-> Cove through the sea cave, a save file per worldlet; New World has no Where (--dev-worldlets to try others) 2026-11-06 17:51:58 +00:00
Paul Bailey
793b214786 W3: the Cove (bay, pond, pier for sea fishing), mackerel and cod (cod only in deep water), non-start worldlets offered for testing when run from source 2026-11-06 17:08:42 +00:00
Paul Bailey
9b88a10609 W2: several lakes per worldlet, a beach block shelving into the sea with a current that turns swimmers back; testbay test worldlet through the water, edge and boundary suites; the two ways to play (journey, one land) recorded 2026-11-06 16:48:20 +00:00
Paul Bailey
68e6d814d9 W1: choose a worldlet (New World and Host Game pages, kept once an island exists), worldlet shown in the Load list; Godot .uid files 2026-11-06 16:10:32 +00:00
Paul Bailey
db4a659236 W0: terrain from worldlet building blocks (Valley in data/worldlets, identical heights), WorldInfo API, worldlet in saves and servers; the cliff tunnel plan 2026-11-06 15:51:43 +00:00
Paul Bailey
f4df2bc99d Journey: one boat each, no passengers; tunnels, ropes and burrows shared 2026-11-06 14:30:51 +00:00
Paul Bailey
5584f74a8b Journey: multiplayer spread out (decided) 2026-11-06 14:17:56 +00:00
Paul Bailey
77517be778 Journey decisions: extendable ending, four crossings, biome hazards; server cost measured 2026-11-06 14:16:07 +00:00
Paul Bailey
40f5e25c41 Version 0.3.1 2026-11-06 14:05:24 +00:00
Paul Bailey
eaeb841c1d Lights to place indoors (tallow candle, torch stand); docs brought up to date; the journey plan; sticky teleports in net tests; protocol 15 2026-11-06 13:56:43 +00:00
Paul Bailey
5f40fa3f7b Version 0.3.0 2026-11-06 11:58:27 +00:00
Paul Bailey
4b2e687188 Uses for every material (clay jar, bedroll, pelt rug, fang necklace, bear cloak, pemmican, bait), Q to drop, K/M bag rows on 1-8, help pages; protocol 14 2026-11-06 11:49:42 +00:00
Paul Bailey
5778d61763 Version 0.2.1 2026-11-06 00:12:53 +00:00
Paul Bailey
787d8d1d65 Old Tam speaks (Kokoro); CC0 birdsong, crickets and owls; no plants through floors; menu and marker fixes 2026-11-06 00:03:59 +00:00
Paul Bailey
0550a4daa0 tools/publish_release.sh: create the Gitea release, upload and verify 2026-11-05 21:06:33 +00:00
Paul Bailey
a33fbd5d88 Version 0.2.0 2026-11-05 21:04:08 +00:00
Paul Bailey
caa611fac6 Audio: mood music, ambience, sound effects and creature voices (Kenney CC0 + synthesised); protocol 13 2026-11-05 21:03:54 +00:00
Paul Bailey
2a9d47630e Trailer: encode standard-range yuv420p so Safari and QuickTime play it 2026-11-05 19:37:24 +00:00
Paul Bailey
1d0008d34b Trailer tool (Movie Maker + ffmpeg) and a static download page built per release 2026-11-05 19:31:33 +00:00
Paul Bailey
608c66ea54 Update feed: the repo is now Admin/Emberwild 2026-11-05 19:15:05 +00:00
384 changed files with 8298 additions and 163 deletions

6
.gitignore vendored
View File

@@ -18,3 +18,9 @@ Thumbs.db
# Editor # Editor
*.tmp *.tmp
# Cloudflare wrangler cache (tools/site deploys)
.wrangler/
# Kokoro TTS environment (tools/voice/make_voice.sh sets it up)
tools/voice/.venv/

View File

@@ -16,7 +16,24 @@ addon SDK with guard rails.
## Status ## Status
See `docs/ROADMAP.md` for milestones and `docs/ARCHITECTURE.md` for the design. See `docs/ROADMAP.md` for milestones and `docs/ARCHITECTURE.md` for the design.
Current milestone: **M0 — playable single-player world skeleton** (scaffolding on disk; needs Godot 4 installed to open & run). **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 ## Requirements
- **Godot 4.3+** (standard build; no C# needed — this project uses GDScript). - **Godot 4.3+** (standard build; no C# needed — this project uses GDScript).
@@ -53,6 +70,15 @@ Export Templates). The version number is `application/short_version` in
`Emberwild.exe --headless -- --server` (Windows). Saves and settings live in `Emberwild.exe --headless -- --server` (Windows). Saves and settings live in
the same user folder as a copy run from source. 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 ## Layout
``` ```
project.godot Godot project definition project.godot Godot project definition

54
assets/audio/CREDITS.md Normal file
View File

@@ -0,0 +1,54 @@
# Audio credits
Everything here is CC0 (public domain): free to use, change and ship, with
no attribution required. Credit is given anyway.
## Kenney (CC0)
`sfx/kenney/` holds sounds from three of Kenney's packs, renamed:
- **RPG Audio**: creaks, doors, cloth, leather, knife, metal clicks
- **Impact Sounds**: wood, mining, plank, punch and soft impacts; footsteps
on grass, snow, wood and concrete
- **Interface Sounds**: open, close, tick and confirmation chimes
https://kenney.nl/assets/rpg-audio,
https://kenney.nl/assets/impact-sounds,
https://kenney.nl/assets/interface-sounds:
"License: (Creative Commons Zero, CC0)
http://creativecommons.org/publicdomain/zero/1.0/". Thank you, Kenney.
Which file is which is listed in `KENNEY` in `tools/audio/make_audio.py`,
which also re-copies them (`--kenney <folder with the unzipped packs>`).
## SamsterBirdies (CC0)
`ambience/birds.ogg` is from "Bird ambience. Coniferous forest dawn chorus."
by SamsterBirdies (https://freesound.org/people/SamsterBirdies/sounds/745273/,
License: Creative Commons 0): its first 90 s (kept in
`tools/audio/sources/birds_samsterbirdies_745273.ogg`), softened a little and
made into a seamless loop by `tools/audio/make_audio.py birds`. Thank you.
## OwlStorm (CC0)
`ambience/crickets.ogg` is "Night Crickets Ambience on Rural Property" by
OwlStorm (https://freesound.org/people/OwlStorm/sounds/320145/, License:
Creative Commons 0; the preview is in `tools/audio/sources/`), with the low
rumble taken out and made into a seamless loop by
`tools/audio/make_audio.py crickets`. Thank you.
## Breviceps (CC0)
`ambience/owl_0.ogg` and `owl_1.ogg` are the two hoots in "Owl Hoot" by
Breviceps (https://freesound.org/people/Breviceps/sounds/465697/, License:
Creative Commons 0; the preview is in `tools/audio/sources/`), cut at 0.12 s
and 2.65 s (leaving out the short sound between them), then levelled. Thank you.
## Old Tam's voice
`voice/` is spoken by **Kokoro** (Kokoro-82M by hexgrad, Apache-2.0,
https://huggingface.co/hexgrad/Kokoro-82M) with its British "George" voice,
made a little older (deeper, slower, warmer) by `tools/voice/make_voice.py`.
The recordings are generated from our own text; rebuild them with
`tools/voice/make_voice.sh` after changing any line.
## Emberwild's own (CC0)
`music/`, `ambience/` and `sfx/synth/` are synthesised from scratch by
`tools/audio/make_audio.py` (no samples): the five music tracks (calm,
night, storm, danger, boss), the fire crackle, the creature voices, and the
swings, eating, splashes, the fishing reel and bite, the bow, the hurt thump
and death. Released under CC0 like the rest of this folder.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
assets/audio/music/boss.ogg Normal file

Binary file not shown.

BIN
assets/audio/music/calm.ogg Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More