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
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`.
|
||||
Loading…
Add table
Add a link
Reference in a new issue