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
This commit is contained in:
@@ -1,7 +1,30 @@
|
||||
# Worldlets design
|
||||
|
||||
Status: **W0 built**; the rest is planned. The journey between worldlets is
|
||||
§10.
|
||||
Status: **W0, W1 and W2 built**; the rest is planned. The journey between
|
||||
worldlets is §10, and the two ways to play (the journey, or one land) are in
|
||||
its decisions.
|
||||
|
||||
*As built in W2:*
|
||||
- `lake` blocks can repeat: every lake and pond is its own body
|
||||
(`terrain.lakes`, `world.water_bodies()`), all at one surface
|
||||
(`water_level`, set by the first). The first is still "the lake" to the
|
||||
older code (ice, its fish, the tutorial).
|
||||
- A `beach` block (angle, width, `shore_offset`, `slope`, `current_out`,
|
||||
`wall_out`): the land eases to a waterline and shelves gently into the
|
||||
sea, which is then the same surface as the ponds (one ocean sheet, no
|
||||
inland disc). The invisible wall stands well out in the water, and before
|
||||
it a current (`terrain.current_at()`, `world._current()`) carries
|
||||
swimmers back faster than they can swim, with a toast.
|
||||
- `water_at()` tells the sea off a beach from a pond.
|
||||
- Test-only worldlets live in `tests/worldlets/` (never listed or offered).
|
||||
`testbay.json` (two ponds and a beach) runs through
|
||||
`test_water_bodies`, `test_terrain_edges` (8 seeds) and `test_boundary`
|
||||
(swimming out across the beach).
|
||||
|
||||
*As built in W1:* a "Where" picker on the New World and Host Game pages
|
||||
(worldlets with `"start": true`; only the Valley, so it's greyed out), the
|
||||
worldlet in the Load list, and a hosted island keeps its worldlet like its
|
||||
seed.
|
||||
|
||||
*As built in W0:*
|
||||
- `data/worldlets/valley.json`: the Valley as data, its terrain as five
|
||||
@@ -336,6 +359,22 @@ A server today runs one island. Options:
|
||||
- **The other crossings are shared:** a dug tunnel, a fixed climbing rope
|
||||
and a dug burrow are changes to the world, there for everyone once one
|
||||
player has made them (like a door or a bridge).
|
||||
- **Two ways to play (Paul, Nov 2026).**
|
||||
- **The journey** (the standard game), single-player and multiplayer
|
||||
alike: every new world starts in the Valley and the worldlets come in
|
||||
their fixed order (Valley, Cove, Highlands, Marsh, Ember). Each
|
||||
worldlet's shape is set by its definition; the seed only changes the
|
||||
detail (hills, trees, where the den is), so the journey is the same
|
||||
adventure for everyone.
|
||||
- **One land** (a hosting choice): no journey, no crossings, the server
|
||||
is locked to one worldlet, and the host picks which, from all of them.
|
||||
Co-op or PvP as now (the rules preset). In code: a `mode` in
|
||||
`server.json` ("journey" / "one_land"); in one-land mode the Host
|
||||
page's "Where" lists every worldlet rather than only the starts, and
|
||||
the crossings (`world.crossings()`) answer none, so a tunnel seam
|
||||
can't be dug. Kept, like the seed and the worldlet, once the island
|
||||
exists. Worth building once the Cove exists (until then there's only
|
||||
the Valley to pick).
|
||||
|
||||
### Server cost, measured (0.3.1)
|
||||
One worldlet, a dedicated server on the M5 Pro, never pausing: about
|
||||
|
||||
Reference in New Issue
Block a user