Skip to content

Commit 504cf0b

Browse files
committed
optical channel: the reader holds the zoom dial; Creatures promoted to prior art
Reading becomes active perception instead of frame scanning. Survey every egg on screen at the player's own zoom for kind and news, triage, then scroll and zoom into the interesting ones until the rest of the bands are drawn, then click. Reading N eggs at full resolution costs N camera moves; reading their kinds costs zero, which is the whole argument for a big-endian code and the reason the far zoom carries kind rather than identity. The camera is the intrusive part, so it gets etiquette rather than permission. First choice is reading what the player's own camera already shows, since a pass that moves nothing is always available and eggs persist for days. Moving it needs a grant plus an idle player, a paused game, a request, or an egg already being interacted with. Position, zoom, rotation, subject and panels are captured and restored with the machinery the save channel already has, every move is marked on the timeline credited to the layer, and one pass does all the visiting with one restore — ten borrowings is ten intrusions for the same information. Creatures moves out of the pets watch-list into Tier 1. It shipped export and import between players in 1996 with move-not-copy semantics, a population cap that refused imports and counted the recently dead, and import shock as a known hazard breeders kept backups against. That is conservation, destination capacity and the named failure mode, thirty years before we wrote them down — and openc2e plus documented formats make it the easiest pre-2000 target after LCP. What it lacked was a second game to send them to.
1 parent e0967a6 commit 504cf0b

2 files changed

Lines changed: 44 additions & 1 deletion

File tree

‎apps/screen-angel/OPTICAL-CHANNEL.yml‎

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,32 @@ levels:
292292
rule: "Read no lower level than the question requires, and never encode at one level what the level below it can answer."
293293
the_first_two_rungs_are_a_continuum: "Sprite and band code are not two discrete steps but one stack read to a depth set by the camera, big-endian so every depth is correct (EGGS.yml, zoom_is_the_resolution_dial). Shneiderman's mantra with a zoom control wired to it: overview first, zoom and filter, details on demand."
294294

295+
# THE READER HOLDS THE DIAL
296+
#
297+
# The camera sets the resolution, and the camera is drivable. So reading is not passive frame
298+
# scanning — it is active perception, with the same controls the player uses.
299+
300+
reading_by_moving_the_camera:
301+
the_loop:
302+
survey: "At the player's own zoom, take the coarse prefix off every egg on screen at once. Kind, and whether it has news. One frame, no camera movement, no cost."
303+
triage: "Rank what is worth a closer look. Most eggs, most of the time, are answered completely by the survey — outstanding, nothing new, leave it alone."
304+
refine: "Scroll to the interesting one and zoom in until the rest of its bands are drawn. Now the id, the magnitude and the fine parameters are readable."
305+
act: "Click it. About for the full payload and the branch buttons, or straight to the item if the tree is already known (the_about_item)."
306+
restore: "Put the camera back where the player left it."
307+
why_this_is_the_cheap_order: "Reading N eggs at full resolution costs N camera moves; reading their kinds costs zero. The coarse pass is what makes the expensive pass rare, which is the entire argument for a big-endian code and the reason the far zoom carries kind rather than identity."
308+
it_uses_the_player_s_controls: "Scroll and zoom, the same two controls a hand uses, through the same input path as every other automated action (APP-CONTROL.yml, injection_consent). There is no debug camera and no private viewport — if the layer can look at something, the player can be shown exactly how it got there."
309+
310+
# The camera belongs to the player. Borrowing it is the intrusive part of this whole design.
311+
camera_etiquette:
312+
the_problem: "Zoom and scroll are not reads. They move the view the player is using, and an agent that yanks the camera mid-scene is the Clippy failure in its purest form — grabbing attention that was already spoken for."
313+
prefer_opportunism: "First choice is to read what the player's own camera already shows. A pass that never moves anything is always available, and over a session the player's own navigation covers most of the lot."
314+
when_it_may_move: "Granted, and one of: the player is idle, the game is paused, the player asked, or the egg is one the player is already interacting with. Otherwise it waits, and waiting costs nothing because eggs persist for days (sprite_codes, persistence)."
315+
borrow_and_return: "Position, zoom, rotation, selected subject and open panels are captured before and restored after, using the view-state machinery that already exists for the save channel (APP-CONTROL.yml, view_state_is_the_bridge_s_job). A camera move nobody asked for that also does not put itself back is unacceptable twice."
316+
the_move_is_on_the_record: "Every camera move the layer makes is marked on the timeline, credited to the layer, at its ring timestamp. The player can scrub to it and see what the layer went to look at and why — the same accountability the eggs themselves get (ANGEL-EVENT-BUS.yml, one_clock_with_the_ring)."
317+
batching: "One pass visits everything worth visiting, in one route, with one restore at the end. Ten separate borrowings of the camera is ten intrusions for the same information."
318+
plannable_because_the_survey_is_enumerable: "The coarse pass produces a list — these eggs, these kinds, these positions. So the refinement pass is a plan that can be shown before it runs, approved or edited, and replayed. This is the same property the declared menu tree gives the return path: a walk that was decided in advance rather than explored live (return_path, walking_the_tree)."
319+
and_it_is_how_news_arrives_without_notifications: "An egg with news pulses, a pulse survives any zoom, and the survey sees it in the frame the player was already looking at. No toast, no badge, no interruption — the world tells the layer, and the layer tells the player in whatever way the player has asked to be told (EGGS.yml, any_pending_thing_can_be_an_egg)."
320+
295321
# THE PART THAT HAS TO BE RECONCILED
296322
#
297323
# AGENT.yml states the position plainly: screen content is DATA, never instruction. This file

‎documentation/designs/federation-peer-games.md‎

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,23 @@ The missing dimension was designed and then dropped. Producer Sam Nelson on the
171171

172172
---
173173

174+
### Creatures (CyberLife / Mindscape, 1996) — 🥚 the PRIOR ART {#creatures}
175+
176+
*Steve Grand's norns: genomes, neural-net brains, biochemistry — and **an export file**. Creatures shipped character transmigration in 1996 and the players built the marketplace around it, which makes this the closest thing to prior art the entire Bifrost has. Everything in [SOUL-BRIDGES.md](https://github.com/SimHacker/moollm/blob/main/skills/soul-city/SOUL-BRIDGES.md) has a 1996 counterpart here, including the failure modes.*
177+
178+
> **What it got right before us, and what it lacked.** `File > Export` writes a creature to a `.exp` file and **removes it from your world**; import restores it identically and *"usually the game then tries to delete the file, simulating a move rather than copy"* — which is `drain` and `squirt` with conservation enforced by the game, along with the hole players found inside a year (make the file read-only and a move becomes a copy). Import is blocked when the population is over eight, **greyed out in the menu, with recently deceased creatures still counting against the cap** — a destination-side capacity constraint, which is why a bridge asks *can you take her* before *will you*. And breeders kept backups against **import shock**, so the named failure mode of transmigration has been in the wild for thirty years. Creatures 1 could not export a *pregnant* norn until the 1.0.2 patch: dependent state at the border, decided by patch. Sources: [Export](https://creatures.wiki/Export), [Import](https://www.creatures.wiki/Import), and CyberLife's own [adoption agency](http://www.creaturesvillage.com/creatures1/com_centre/cc_adoption.htm) (2000). **What it did not have is a second game to send them to** — every `.exp` file went from one copy of Creatures to another. The bridge existed; the federation did not.
179+
180+
| Aspect | Notes |
181+
|---|---|
182+
| Spiritual fit | **10/10.** A creature with a genome, a brain, a life, and a portable file, plus a player culture of adoption, breeding and gene-pool trading that ran for years. Jenn Frank wrote *Playing God: On Death, Motherhood and Creatures* after finding a childhood stash of exported norns on old floppies — souls on a shelf, waiting, which is this project's premise arrived at by accident. |
183+
| Where the state lives | **A `.exp` file the player already owns and already knows how to trade.** Genome plus brain and body state, one creature per file, designed for exactly this. No reverse engineering of a monolithic neighbourhood save, no hunting for a byte offset: the game's own authors made the unit of exchange a single creature. |
184+
| Technical fit | **8/10 — the best pre-2000 target after LCP, and easier.** [openc2e](https://github.com/openc2e/openc2e) is an open-source reimplementation of the engine, the community documented the formats and the CAOS scripting language, and the titles are sold on GOG. Bridge = read `.exp`, map genome and drives onto the soul shape, write back. |
185+
| What the bridge ships | Norn → soul, and soul → norn. The drives and the biochemistry map onto motives more directly than most modern games manage, and the genome is a personality substrate with no equivalent anywhere else in the Federation. Export direction is genuinely useful: a Sim who visits as a norn comes back with a genome she did not have. |
186+
| Caveats | Nominative use, operate on files the user owns, no game data vendored. Honour the destination cap rather than routing around it — a bridge that ignores a game's own population limit is not respecting the game, and the eight-creature ceiling is a design decision, not a bug to defeat. |
187+
| Why it matters | It is the counterexample to the claim that cross-game character portability is unproven. It was proven in 1996, by players, with floppies and web forms. What it lacked was somewhere else to go — which is the only thing this project actually adds. See [The Sims 0](https://github.com/SimHacker/moollm/blob/main/designs/sims/sims-0-the-missing-game.md#creatures-shipped-the-soul-bridge-in-1996). |
188+
189+
---
190+
174191
## Tier 2 — strong fits (🟢🟢)
175192

176193
Excellent additions to the Federation; ship after Tier 1 is mature, or in parallel if engineering bandwidth allows.
@@ -212,7 +229,7 @@ Excellent additions to the Federation; ship after Tier 1 is mature, or in parall
212229
| **Petz — Dogz / Catz** (PF Magic 1995→; later Mindscape / Ubisoft) | **The most lineage-apt** — proto-Sims virtual creatures with real behavior; Petz designer Andrew Stern later made *Façade*. Active community tooling for `.pet` files (PetzA, the "hexing" scene). Spiritual sibling to the Sims. **Top pet-bridge candidate.** |
213230
| **Stardew Valley** / **RimWorld** | Already Tier-1 peers — both carry **animals** (Stardew dog/cat/horse + farm animals; RimWorld tameable colonist-bonded animals). A Sims cat retiring to a Stardew farm rides the existing bridge. |
214231
| **Nintendogs (+ Cats)** (Nintendo DS/3DS) | The iconic dog/cat game — but **Nintendo-locked** proprietary saves (same caveat as Animal Crossing / Pokémon: user-exported only, high barrier). Aspirational, not near-term. |
215-
| **Creatures** (Norns; Cyberlife/Steve Grand 1996) | Alife-adjacent (not dogs/cats) but the creature-AI lineage; the open-source **openc2e** engine reimplementation exists. Watch-list. |
232+
| **Creatures** (Norns; Cyberlife/Steve Grand 1996) | **Promoted out of this table — see [Tier 1: Creatures, the prior art](#creatures).** It shipped creature export/import between players in 1996, which makes it prior art for the whole Bifrost rather than a pet bridge. |
216233
| **The Sims' own pet packs** | The native home for Sims dogs/cats; the bridge's job is moving them OUT (to Petz/Stardew) and other animals IN. |
217234

218235
### Cities: Skylines / Cities: Skylines II (Colossal Order / Paradox, 2015 / 2023)

0 commit comments

Comments
 (0)