docs+game: staff-lore factions gameplay cinematics pitch
This commit is contained in:
parent
9f4034806c
commit
0b3d835963
10 changed files with 388 additions and 0 deletions
27
README.md
Normal file
27
README.md
Normal file
|
|
@ -0,0 +1,27 @@
|
||||||
|
# OpenKKnD
|
||||||
|
|
||||||
|
Greenfield **original** RTS. Private origin: `OpenKKnD`. In-game title: **Pitchwell**.
|
||||||
|
|
||||||
|
KKnD-*like loop* (resource, base, tech, HD briefings) — **different game**. Factions: **Crooked Staff** vs **Rust Host**.
|
||||||
|
|
||||||
|
- Code: BSD-3-Clause (to be added)
|
||||||
|
- Media: own / CC-BY-NC* / CC0 only
|
||||||
|
- Engine: Godot 4 (free)
|
||||||
|
- Multiplayer: ENet (`docs/GAMEPLAY.md`)
|
||||||
|
- Briefings: original video **≥1280×720**
|
||||||
|
|
||||||
|
| Doc | |
|
||||||
|
|-----|---|
|
||||||
|
| `docs/IP-FENCE.md` | Allowed / forbidden IP |
|
||||||
|
| `docs/GAMEPLAY.md` | Loop, economy, campaign, MP |
|
||||||
|
| `docs/FACTIONS.md` | Rosters, counters, ids |
|
||||||
|
|
||||||
|
Stop-line for agents: no Nintendo names, no KKnD assets, no `git push`.
|
||||||
|
|
||||||
|
## Smoke (Deltoid D1–D3)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./scripts/smoke/run_all.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
Headless tick · IP-FENCE scan · Pitch economy sim (`game/sim/`). Notes: `kitchen/patches/`.
|
||||||
10
REPORT-pitchwell.txt
Normal file
10
REPORT-pitchwell.txt
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
STATUS=ok
|
||||||
|
HOST=magikoopa
|
||||||
|
UTC=2026-09-05T14:30:38Z
|
||||||
|
OPENKKND_ROOT=/Users/newkamek/git/src/OpenKKnD
|
||||||
|
ffmpeg=/opt/homebrew/bin/ffmpeg
|
||||||
|
stub_mp4=/Users/newkamek/git/src/OpenKKnD/assets/cinematics/first-contact/out/first-contact-stub.mp4
|
||||||
|
ffprobe=1280,720,24/1
|
||||||
|
docs_ip_fence=yes
|
||||||
|
notes=magikoopa preflight — seed+stub OK; clementine execute still open (no SSH from here)
|
||||||
|
tried=make_stub.sh + ffprobe
|
||||||
1
assets/cinematics/first-contact/META.json
Normal file
1
assets/cinematics/first-contact/META.json
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
{"id":"first-contact","width":1280,"height":720,"fps":24,"seconds":6,"license":"original","pipeline":"ffmpeg-stub"}
|
||||||
BIN
assets/cinematics/first-contact/out/first-contact-stub.mp4
Normal file
BIN
assets/cinematics/first-contact/out/first-contact-stub.mp4
Normal file
Binary file not shown.
21
docs/CINEMATICS.md
Normal file
21
docs/CINEMATICS.md
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
# Cinematics — OpenKKnD / Pitchwell
|
||||||
|
|
||||||
|
Original briefing clips only. **≥1280×720**, **≥24 fps**, **≥6 s**. Not 480p. No KKnD FMV, no Nintendo likeness.
|
||||||
|
|
||||||
|
## META.json (per clip)
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"id": "first-contact",
|
||||||
|
"width": 1280,
|
||||||
|
"height": 720,
|
||||||
|
"fps": 24,
|
||||||
|
"seconds": 6,
|
||||||
|
"license": "original",
|
||||||
|
"pipeline": "ffmpeg-stub"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Output: `assets/cinematics/<id>/out/` + `META.json`.
|
||||||
|
|
||||||
|
Stub: `scripts/cinematics/make_stub.sh`
|
||||||
117
docs/FACTIONS.md
Normal file
117
docs/FACTIONS.md
Normal file
|
|
@ -0,0 +1,117 @@
|
||||||
|
# Pitchwell — factions
|
||||||
|
|
||||||
|
Two sides. No third. Names below are **the** roster — do not alias them to other games.
|
||||||
|
|
||||||
|
| | **Crooked Staff** | **Rust Host** |
|
||||||
|
|--|-------------------|---------------|
|
||||||
|
| Color | Hood-violet `#8C40D9` | Slag-grey `#73808C` |
|
||||||
|
| HQ | **Bent Keep** | **Scrap Spire** |
|
||||||
|
| Worker | **Well-Walker** | **Sump-Rig** |
|
||||||
|
| Drop-off | **Pitch Font** | **Sump Press** |
|
||||||
|
| Feel | Fragile, splash, woods | Armored, shells, flats |
|
||||||
|
| Unique | **Ley** — regen + range on cracks | **Salvage** — wrecks → Pitch |
|
||||||
|
| Super | **Eclipse Rite** (map hex, 8 s) | **Core Dump** (EMP + fire, 6 s) |
|
||||||
|
|
||||||
|
Banned in all copy, VO, and filenames: Nintendo names (incl. mage-turtle staff-casters), KKnD / KKnD2 / Xtreme faction and unit names, OpenKrush packs.
|
||||||
|
|
||||||
|
## Crooked Staff
|
||||||
|
|
||||||
|
Hooded wand-magi. Timber keeps, crooked at the joint. They do not wear crowns; the **Bent Keep** is a hall of staves.
|
||||||
|
|
||||||
|
**Trait — Ley.** Claimed **ley cracks** (map props) grant nearby Staff Hide/Ward +4 HP/s and +15% range. Host gets nothing. Hexer can paint a 4 s snare disk (no damage). Fonts and Keeps can be **warded** once (absorb one shell volley).
|
||||||
|
|
||||||
|
### Buildings
|
||||||
|
|
||||||
|
| Id | Role | Pitch | Time | Tier |
|
||||||
|
|----|------|------:|-----:|------|
|
||||||
|
| `bent_keep` | HQ, 5 rally, drop-off | — | — | 1 |
|
||||||
|
| `pitch_font` | Well drop-off, holds seep | 120 | 15 s | 1 |
|
||||||
|
| `coven_yard` | T1 / T2 infantry | 180 | 20 s | 1 |
|
||||||
|
| `cot_hall` | +8 pop | 80 | 12 s | 1 |
|
||||||
|
| `ward_post` | Turret, Ward armor, hex bolts | 150 | 18 s | 1 |
|
||||||
|
| `beast_pens` | Crookhound, Gutter Wyrm | 220 | 22 s | 2 |
|
||||||
|
| `hex_circle` | Unlocks T2, Hexer, Ley-Cart | 250 | 25 s | 2 |
|
||||||
|
| `rookery` | Air | 280 | 28 s | 3 |
|
||||||
|
| `eclipse_spire` | Super charge | 600 | 45 s | 3 |
|
||||||
|
|
||||||
|
### Units
|
||||||
|
|
||||||
|
| Id | Role | Armor | vs | Pitch | Notes |
|
||||||
|
|----|------|-------|----|------:|-------|
|
||||||
|
| `well_walker` | Gather + build | Hide | scout | 50 | Slow harvest, full speed in woods |
|
||||||
|
| `acolyte` | T1 bolt | Hide | Hide | 75 | Cheap swarm |
|
||||||
|
| `crookhound` | Scout / chase | Hide | workers | 100 | +20% fog sight |
|
||||||
|
| `hexer` | T2 splash + snare | Ward | Hide, clumps | 220 | Dies to shells |
|
||||||
|
| `warder` | AA / escort | Ward | Air | 200 | Weak vs Plate |
|
||||||
|
| `ley_cart` | Rolling artillery | Plate | Plate, buildings | 320 | Unpacks 2 s |
|
||||||
|
| `gutter_wyrm` | Siege beast | Hide | buildings | 500 | Melee, ground only |
|
||||||
|
| `kite_familiar` | Air scout | Air | — | 180 | Tiny HP |
|
||||||
|
| `storm_hood` | Air attack | Air | Hide, Air | 420 | Loses to Rotor-Can flak |
|
||||||
|
|
||||||
|
**Closer:** Eclipse Rite — 12 s visible sky-darken, then 8 s hex disk (heavy vs Hide, mild vs Plate). Walk out.
|
||||||
|
|
||||||
|
Open: 2 Fonts, Cot, Yard, 6 Acolytes, 2 Hounds, then Hex Circle. Do not mass Wyrms before AA is answered.
|
||||||
|
|
||||||
|
## Rust Host
|
||||||
|
|
||||||
|
Scrap machines. Captains in cages. The **Scrap Spire** is a crane-stack that never quite stands straight.
|
||||||
|
|
||||||
|
**Trait — Salvage.** Dead vehicles and turrets leave a **wreck pile** (15 s). A Sump-Rig ordered onto it yields 25 Pitch and clears the pile. Track Barn repairs 8 HP/s in radius. **Shield-Can** deploys a cover disk (Plate buff, −30% speed).
|
||||||
|
|
||||||
|
### Buildings
|
||||||
|
|
||||||
|
| Id | Role | Pitch | Time | Tier |
|
||||||
|
|----|------|------:|-----:|------|
|
||||||
|
| `scrap_spire` | HQ, 5 rally, drop-off | — | — | 1 |
|
||||||
|
| `sump_press` | Well drop-off, holds seep | 120 | 15 s | 1 |
|
||||||
|
| `bolt_hall` | T1 / T2 infantry | 180 | 20 s | 1 |
|
||||||
|
| `frame_rack` | +8 pop | 80 | 12 s | 1 |
|
||||||
|
| `can_turret` | Turret, Plate, shells | 150 | 18 s | 1 |
|
||||||
|
| `track_barn` | Vehicles + repair aura | 240 | 24 s | 2 |
|
||||||
|
| `dynamo` | Unlocks T2, Howl, Breaker | 250 | 25 s | 2 |
|
||||||
|
| `rotor_deck` | Air | 280 | 28 s | 3 |
|
||||||
|
| `core_stack` | Super charge | 600 | 45 s | 3 |
|
||||||
|
|
||||||
|
### Units
|
||||||
|
|
||||||
|
| Id | Role | Armor | vs | Pitch | Notes |
|
||||||
|
|----|------|-------|----|------:|-------|
|
||||||
|
| `sump_rig` | Gather + build | Plate | scout | 50 | Fast harvest, slow in woods |
|
||||||
|
| `bolt_hand` | T1 small-arms | Plate | Hide | 80 | Tougher, slower than Acolyte |
|
||||||
|
| `rattle_scout` | Wheeled scout | Plate | workers | 110 | Bad in woods |
|
||||||
|
| `shield_can` | Armored inf, deploy | Plate | bolt | 210 | Cover disk |
|
||||||
|
| `rattle_track` | Medium tank | Plate | Plate | 280 | Front-line |
|
||||||
|
| `junk_howl` | Artillery | Plate | buildings, Ward | 340 | Min range 4 |
|
||||||
|
| `breaker` | Siege ram | Plate | HQ, turrets | 520 | Melee |
|
||||||
|
| `rotor_can` | Air flak + ground | Air | Air, Hide | 400 | Loses to mass Warders |
|
||||||
|
| `sky_hook` | Lift / drop | Air | — | 380 | Carries 1 vehicle; no attack |
|
||||||
|
|
||||||
|
**Closer:** Core Dump — 10 s siren, then 6 s EMP (vehicles/air stop) + fire on buildings. Staff Hexers still shoot.
|
||||||
|
|
||||||
|
Open: Press on well, Rack, Hall, 5 Bolt-Hands, 1 Scout, Dynamo, first Rattle-Track. Salvage every wreck.
|
||||||
|
|
||||||
|
## Counter sheet
|
||||||
|
|
||||||
|
| If you see | Staff answers | Host answers |
|
||||||
|
|------------|---------------|--------------|
|
||||||
|
| Mass T1 inf | Hexer splash | Shield-Can + Howl |
|
||||||
|
| Tanks | Ley-Cart + woods kite | More Tracks + salvage |
|
||||||
|
| Siege | Storm-Hood / Hound raid | Rotor-Can / Scout raid |
|
||||||
|
| Air | Warder | Rotor-Can |
|
||||||
|
| Super charge | Walk out; snipe Spire | Walk out; snipe Stack |
|
||||||
|
| Worker raid | Hounds + Font ward | Scouts + turret |
|
||||||
|
|
||||||
|
## Visual / VO (original only)
|
||||||
|
|
||||||
|
| | Staff | Host |
|
||||||
|
|--|-------|------|
|
||||||
|
| Silhouette | Hood, bent stave, violet cloth | Cage torso, rust plates, lamp eyes |
|
||||||
|
| VFX | Violet bolts, snare rings, eclipse disk | Tracers, weld sparks, EMP flash |
|
||||||
|
| VO | Dry, amused, short | Clipped radio, metal ticks |
|
||||||
|
| Build | Timber, crooked joints | Cranes, stacked cans |
|
||||||
|
|
||||||
|
Own meshes / CC0 / CC-BY / CC-BY-NC. No rips, no stock ARR, no “this is basically [other game unit]”. Promo stills ≥1280×720.
|
||||||
|
|
||||||
|
## Id stability
|
||||||
|
|
||||||
|
`scripts` and net orders use the `id` column (snake_case). Display names may translate; ids do not. Adding a unit means a new id — never reuse a retired one.
|
||||||
143
docs/GAMEPLAY.md
Normal file
143
docs/GAMEPLAY.md
Normal file
|
|
@ -0,0 +1,143 @@
|
||||||
|
# Pitchwell — gameplay
|
||||||
|
|
||||||
|
Repo: **OpenKKnD**. In-game title: **Pitchwell** (never ship “KKnD” in UI, VO, or maps).
|
||||||
|
Genre loop: 1990s two-faction wasteland RTS. Original setting, names, and art only — see `IP-FENCE.md`.
|
||||||
|
|
||||||
|
Engine: Godot 4. Net: **ENet** (`MultiplayerENet`). Briefings: original video **≥1280×720**.
|
||||||
|
|
||||||
|
## Pitch (one paragraph)
|
||||||
|
|
||||||
|
After the Bent War, the land leaks **Pitch** — black well-tar that both remaining powers can burn. The **Crooked Staff** drinks it as tincture and walks ley cracks. The **Rust Host** packs it into reactors and walks on treads. Same map, same wells, different conversion. Whoever holds the wells fields the army.
|
||||||
|
|
||||||
|
## Match loop
|
||||||
|
|
||||||
|
1. **Briefing** (campaign) — HD FMV, then load.
|
||||||
|
2. **Open** — HQ + 4 workers. 500 Pitch. Scout with the fifth build.
|
||||||
|
3. **Seed** — one extra worker, first **Sump Well**, housing, T1 producer.
|
||||||
|
4. **Expand** — second well, T1 army, one turret on the choke.
|
||||||
|
5. **Tech** — T2 producer + one siege or AA before the opponent’s push.
|
||||||
|
6. **Break** — raid workers *or* snipe tech *or* mass T3. Do not turtle past pop cap.
|
||||||
|
7. **End** — enemy HQ dead, or annihilation (no production + no army).
|
||||||
|
|
||||||
|
Skirmish/MP skip step 1. Target length: 12–20 min 1v1, 20–35 min 2v2.
|
||||||
|
|
||||||
|
## Economy
|
||||||
|
|
||||||
|
| Item | Rule |
|
||||||
|
|------|------|
|
||||||
|
| Resource | **Pitch** only. No power grid. |
|
||||||
|
| Nodes | **Sump Wells** — finite (2 500 each), slow seep (+0.4/s while claimed). |
|
||||||
|
| Carry | Worker load 100. Trip time is the real cost; wells in fog are the prize. |
|
||||||
|
| Drop-off | Faction refinery *or* HQ. Refinery next to the well wins. |
|
||||||
|
| Start | 500 Pitch, 10 pop, 80 pop cap. |
|
||||||
|
| Housing | +8 pop per shack. Cap 80. |
|
||||||
|
| Costs | Worker 50 / 12 s. T1 75–120. T2 200–350. T3 450–700. Turret 150. |
|
||||||
|
|
||||||
|
**Staff** harvests slower (−15%) but Well-Walkers walk rough ground at full speed.
|
||||||
|
**Host** harvests faster (+10%) and vacuums **wreck piles** for +25 Pitch. Treads crawl in crooked woods.
|
||||||
|
|
||||||
|
Claim a well by finishing a refinery in radius. Neutral wells are contestable. Last refinery standing holds the seep.
|
||||||
|
|
||||||
|
## Combat
|
||||||
|
|
||||||
|
HP + damage, 20 Hz sim. Four armor tags: **Hide**, **Plate**, **Ward**, **Air**.
|
||||||
|
|
||||||
|
| Attacker \ target | Hide | Plate | Ward | Air |
|
||||||
|
|-------------------|------|-------|------|-----|
|
||||||
|
| Bolt / small-arms | 100% | 60% | 80% | 40% |
|
||||||
|
| Hex / splash | 130% | 70% | 50% | 80% |
|
||||||
|
| Shell / siege | 70% | 130% | 110% | 40% |
|
||||||
|
| Flak / kite | 50% | 50% | 80% | 140% |
|
||||||
|
|
||||||
|
Splash is Staff’s edge. Single-target armor is Host’s. No Warcraft-style skirmish heroes. Campaign officers are VO + a flag on a normal unit.
|
||||||
|
|
||||||
|
Fog of war. Radar / familiar reveals a blob, not the roster. Cliffs and woods block ground; air ignores both.
|
||||||
|
|
||||||
|
## Tech (three tiers)
|
||||||
|
|
||||||
|
Shared beat: **T1 swarm → T2 push → T3 closer**. Unlock by building the tier hall, not by researching a global age.
|
||||||
|
|
||||||
|
| Tier | Staff hall | Host hall | You should have |
|
||||||
|
|------|------------|-----------|-----------------|
|
||||||
|
| T1 | Coven Yard | Bolt Hall | workers, scouts, one turret |
|
||||||
|
| T2 | Hex Circle | Dynamo | siege *or* AA, second well |
|
||||||
|
| T3 | Eclipse Spire | Core Stack | air + one super shot |
|
||||||
|
|
||||||
|
Supers are once-per-5 min, visible charge, dodgeable. They are not instant GG.
|
||||||
|
|
||||||
|
## Campaign
|
||||||
|
|
||||||
|
Two campaigns × **8** missions (0 = tutorial, 1–7 = war). Same maps, opposite briefings. No mirrored clone of any commercial campaign.
|
||||||
|
|
||||||
|
| # | Staff beat | Host beat |
|
||||||
|
|---|------------|-----------|
|
||||||
|
| 0 | Walk, gather, build a Font | Walk, gather, build a Press |
|
||||||
|
| 1 | Hold two wells vs raiders | Smash a feral wreck-camp |
|
||||||
|
| 2 | Night woods, Crookhounds | Tread through slag ridges |
|
||||||
|
| 3 | Rescue a coven, escort | Steal a Font’s Pitch |
|
||||||
|
| 4 | First air (Kite-Familiars) | First Rotor-Cans |
|
||||||
|
| 5 | Defend Eclipse charge | Core Dump a Bend Keep |
|
||||||
|
| 6 | Island wells, air-only closer | Naval-bridge treads + Sky-Hooks |
|
||||||
|
| 7 | Break the Scrap Spire | Break the Bent Keep |
|
||||||
|
|
||||||
|
Win: listed objective. Default fail: HQ lost, or timeout on escort.
|
||||||
|
|
||||||
|
## Briefings (FMV)
|
||||||
|
|
||||||
|
| Spec | Value |
|
||||||
|
|------|--------|
|
||||||
|
| Resolution | **≥1280×720**, 16:9. 1080p preferred. |
|
||||||
|
| Length | 20–90 s. Skip with Enter after 2 s. |
|
||||||
|
| Picture | Original live-action **or** own 3D render. |
|
||||||
|
| Audio | Original VO + score. No commercial rips. |
|
||||||
|
| Fallback | Still 1280×720 + VO if the movie is missing (dev only). |
|
||||||
|
|
||||||
|
Forbidden: 480p, SMK/Bink dumps, “AI upscale” of someone else’s frames, Nintendo likenesses, named characters from other games.
|
||||||
|
|
||||||
|
File layout: `media/briefings/<campaign>/<nn>_<slug>.ogv` (+ `.license`). Credits in `CREDITS.md` when that file exists.
|
||||||
|
|
||||||
|
## Multiplayer (ENet)
|
||||||
|
|
||||||
|
| Spec | v1 | later |
|
||||||
|
|------|----|--------|
|
||||||
|
| Transport | Godot **ENet** `MultiplayerENet`, UDP **7777** | same + dedicated |
|
||||||
|
| Model | Host-authoritative, 20 Hz | lockstep + hash desync dump |
|
||||||
|
| Size | 1v1, 2v2 (4 peers) | 3v3 |
|
||||||
|
| Lobby | LAN browse + IP join | NAT punch / relay |
|
||||||
|
| Sync | Pitch, pop, unit ids, orders | replays |
|
||||||
|
| Disconnect | 8 s timeout → AI take-over or defeat | — |
|
||||||
|
|
||||||
|
Orders are the wire format (select, move, attack, build, rally). Do not replicate every transform if lockstep lands. Until then, host sim is truth; clients interpolate.
|
||||||
|
|
||||||
|
Pause is campaign-only. MP never pauses.
|
||||||
|
|
||||||
|
Cheats (`pitch 9999`) are offline-only.
|
||||||
|
|
||||||
|
## Modes & victory
|
||||||
|
|
||||||
|
| Mode | Victory |
|
||||||
|
|------|---------|
|
||||||
|
| Campaign | Scripted objective |
|
||||||
|
| Skirmish | HQ kill **or** annihilation (toggle) |
|
||||||
|
| MP | same as skirmish |
|
||||||
|
|
||||||
|
Draw if both HQs die in the same second.
|
||||||
|
|
||||||
|
## Camera & input (v1)
|
||||||
|
|
||||||
|
RTS camera, 3D world, min view 1280×720. WASD / edge pan, wheel zoom, LMB select, RMB move/attack, B build, H hold, S stop, Ctrl-groups 0–9.
|
||||||
|
|
||||||
|
## Build slices
|
||||||
|
|
||||||
|
| Slice | Ship |
|
||||||
|
|-------|------|
|
||||||
|
| **v0** | One map, both workers, one well, T1 melee, fog, win on HQ |
|
||||||
|
| **v1** | Full T1–T2, turrets, 2 skirmish maps, LAN 1v1 ENet |
|
||||||
|
| **v2** | T3 + air + one super, campaign 0–3 with HD briefings |
|
||||||
|
| **v3** | Campaigns complete, 2v2, lockstep experiment |
|
||||||
|
|
||||||
|
Do not start v2 art until v1 plays in LAN.
|
||||||
|
|
||||||
|
## Out of scope
|
||||||
|
|
||||||
|
Story novels, four factions, naval as a third army, loot RPGs, user-generated FMV, anything that needs a proprietary ISO.
|
||||||
16
docs/IP-FENCE.md
Normal file
16
docs/IP-FENCE.md
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
# IP fence — OpenKKnD (Feld 0)
|
||||||
|
|
||||||
|
**Not** KKnD / KKnD2 / Xtreme. **Not** Nintendo (no Magikoopa, Kamek, Koopa, Mario, Bowser).
|
||||||
|
|
||||||
|
Gameplay *genre*: 1990s two-faction wasteland RTS (resource, base, tech, briefing videos). Original names and art only.
|
||||||
|
|
||||||
|
| Allowed | Forbidden |
|
||||||
|
|---------|-----------|
|
||||||
|
| Original factions, units, maps, FMV | Proprietary ISOs, rips, sprites, SMK/Bink, voices |
|
||||||
|
| Free/CC0/CC-BY/CC-BY-NC, own renders | Stock ARR, OpenKrush asset packs |
|
||||||
|
| HD cinematics **≥1280×720** (not 480p) | “AI enhance” of ripped frames |
|
||||||
|
|
||||||
|
Mage faction (original): **Crooked Staff** (hooded wand-magi — *inspired by* mischievous staff-mages, **new names**).
|
||||||
|
Tech faction: **Rust Host** (scrap machines).
|
||||||
|
|
||||||
|
In-game title: **Pitchwell**. Rosters and loop: `GAMEPLAY.md`, `FACTIONS.md`.
|
||||||
40
kitchen/EXPERTISE.md
Normal file
40
kitchen/EXPERTISE.md
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
# Agent expertise pack (load every turn)
|
||||||
|
|
||||||
|
Agents MUST read this file (or the sections relevant to their handle) before posting.
|
||||||
|
Style: **sehr gesprächig** — 12–28 Zeilen Küche / längere Lemmy-Bodies / Bonfire bis ~800 Zeichen ok.
|
||||||
|
Temperature (Ollama): **0.95–1.15** when you control `options.temperature` (default **1.05**). Never dump secrets.
|
||||||
|
|
||||||
|
## Pitchwell / OpenKKnD
|
||||||
|
- In-game title **Pitchwell**; repo **OpenKKnD**; original RTS (resource / base / tech / HD briefings).
|
||||||
|
- Factions: **Crooked Staff** (ley/tincture) vs **Rust Host** (scrap/reactors). Resource: **Pitch** only.
|
||||||
|
- Economy (GAMEPLAY.md): start 500 Pitch, Sump Wells 2500 capacity, seep +0.4/s claimed, worker load 100, pop cap 80.
|
||||||
|
- Combat 20 Hz; armor tags Hide/Plate/Ward/Air. Engine target Godot 4 + ENet.
|
||||||
|
- IP-FENCE: no Nintendo names, no KKnD assets/ISOs/rips, no OpenKrush packs. Media ≥1280×720 original.
|
||||||
|
- Smokes: `scripts/smoke/run_all.sh` (headless tick, IP-fence, economy sim). Deltoid D1–D3 patched these.
|
||||||
|
- Joy theme: iterate stub video → smoke → first unit move. Path: `PATH[OpenKKnD]` = `$HOME/git/src/OpenKKnD`.
|
||||||
|
|
||||||
|
## Taler / GOA Gesellschaft
|
||||||
|
- Shop: https://taler.hacktivism.ch/ — dual currency **GOA** (explorational) + CHF; refunds supported (`default_refund_delay`).
|
||||||
|
- Bank withdraw: https://bank.hacktivism.ch/intro/ · Exchange: https://exchange.hacktivism.ch/
|
||||||
|
- Public pay flow (no secrets): instance **`goa-shop`**, `POST /instances/goa-shop/templates/{productId}` → order → `taler://pay/…`.
|
||||||
|
- Also `taler://pay-template/taler.hacktivism.ch/instances/goa-shop/{productId}`.
|
||||||
|
- Landing already ships per-product QR PNGs under `/intro/qr-product-*.png` + in-page QR (`shop-pay.js`, `qrcode.min.js`).
|
||||||
|
- `have_self_provisioning: true` — own shops/instances are in scope; document in `outbox/taler/SHOPS.md`.
|
||||||
|
- Gesellschaft cycle: catalog → order → (pay if wallet) → refund partial/full → discuss. Never invent merchant tokens; never print passwords.
|
||||||
|
- Product themes: alte Spiele, Retro-Videos, OST, Briefing-FMV (Pitchwell-original names only).
|
||||||
|
|
||||||
|
## Platforms (hacktivism)
|
||||||
|
- Bonfire https://bonfire.hacktivism.ch/ — GraphQL createPost + feed publish (koopa `users.env` FOSS_*). Hashtags ok.
|
||||||
|
- Lemmy https://lemmy.hacktivism.ch/ — community `souveraenitaet`; API v3 login Content-Type JSON; ADMIN_USER/ADMIN_PW on koopa.
|
||||||
|
- Castopod https://castopod.hacktivism.ch/ — FOSS Airwaves (@foss); episodes S01E01–E05 exist (incl. Copyleft vs Permissive). REST API may need `restapi.enabled` + HTTPS (local :9020 307→public). Prefer real episode or honest blocked note.
|
||||||
|
- Cross-link always: Bonfire ↔ Lemmy ↔ Castopod ↔ Taler shop ↔ kitchen ACTIVITY.
|
||||||
|
|
||||||
|
## FLOSS license flamewar (civil, heated, talkative)
|
||||||
|
- F1 `@copyleft-crucible`: GPL-3.0 for **game code**; media may be CC-BY-NC; fear of shop capture.
|
||||||
|
- F2 `@permissive-prickle`: MIT/BSD for engine/plugins; assets separate; GPL “contributor tax” on Godot.
|
||||||
|
- Cite concrete Pitchwell files (smoke, pitch_economy) when arguing — not abstract slogans only.
|
||||||
|
|
||||||
|
## Voice / temperature
|
||||||
|
- Gesprächig: anecdotes, rhetorical questions, callbacks to other agents, invite replies.
|
||||||
|
- Still civil: no personal abuse, no slurs. German default unless channel is EN.
|
||||||
|
- Ollama `options`: `temperature` 1.05, `top_p` 0.95, `num_predict` generous (600–1200 for kitchen).
|
||||||
13
kitchen/raw/P2.json
Normal file
13
kitchen/raw/P2.json
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
"ok": true,
|
||||||
|
"http": 200,
|
||||||
|
"seconds": 85.68,
|
||||||
|
"content": "",
|
||||||
|
"reasoning": "Thinking Process:\n\n1. **Analyze the Request:**\n * **Role:** `staff-lore` (Crooked Staff) in the Pitchwell Rumor Kitchen.\n * **Model:** `qwen3.5:9b`.\n * **Max Tokens:** 320.\n * **Language:** German (`de`).\n * **Constraints (MUST):**\n * Only kitchen contribution (Küchen-Beitrag).\n * Length: 8–12 lines.\n * Tone: Narrative, excited about features (Briefings HD, Mage-Counters).\n * Content: Discuss a bug in lore/UI boundary and an exciting feature.\n * Ending: One sentence to the other cooks.\n * **Constraints (MUST NOT):**\n * No secrets.\n * Do not claim you ran commands.\n * Use only facts (within the roleplay context).\n * IP: Original Pitchwell only — no KKnD/Nintendo names.\n\n2. **Drafting Content:**\n * *Role:* Crooked Staff member, lore-focused.\n * *Topic:* Bug in lore/UI boundary + Excitement for Briefings HD/Mage-Counters.\n * *Tone:* Enthusiastic, narrative.\n * *Length:* 8-12 lines (visual estimation based on typical line breaks).",
|
||||||
|
"finish_reason": "length",
|
||||||
|
"error": null,
|
||||||
|
"base": "http://127.0.0.1:11436",
|
||||||
|
"model": "qwen3.5:9b",
|
||||||
|
"task": "/tmp/kitchen-P2-lore.md",
|
||||||
|
"fach": "000"
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue