Remove Apex Dynamics faction, retune bullet speed/size

Drop Apex Dynamics from the playable roster (2 races now: Inner Sphere
Navy, Outer Rim Collective) to simplify the 2D art pipeline; World's
race-offer logic just shuffles both remaining races instead of picking
2 of N. Also fix bullets using a constant muzzle velocity instead of
adding the shooter's own velocity, and shrink the bullet hitbox/sprite.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-16 21:41:35 -04:00
parent 2f6607af8c
commit 5fe7c01052
10 changed files with 44 additions and 84 deletions
+1 -1
View File
@@ -2,7 +2,7 @@
## Rules
- Each casual match picks **2 of the 3 races** at random
- Each casual match fields both races (order presented is randomized)
- Bots fill empty slots until the match reaches **7v7** (14 total)
- Once 7v7 is reached, **no more bots are added** — additional human players replace bots as they join
- Bots are removed when real players join their team slot
+6 -6
View File
@@ -2,13 +2,13 @@
## Concept
A 2D pixel-art top-down space shooter inspired by **Subspace Continuum**, built for **Steam Deck and PC**. Three alien races fight for control of a galaxy. Fast matchmaking like Rocket League — quick in, quick out.
A 2D pixel-art top-down space shooter inspired by **Subspace Continuum**, built for **Steam Deck and PC**. Two alien races fight for control of a galaxy. Fast matchmaking like Rocket League — quick in, quick out.
## Core Loop
1. Launch → Main Menu
2. Enter callsign → click CASUAL
3. World loads → pick your race (2 of 3 randomly offered per match) → pick your ship
3. World loads → pick your race (both offered every match) → pick your ship
4. Fight in a 25v25 battle
5. Return to main menu
@@ -25,7 +25,7 @@ A 2D pixel-art top-down space shooter inspired by **Subspace Continuum**, built
Main Menu
└─ CASUAL ──► World loads immediately (game active)
└─ TeamSelect overlay appears
├─ Pick race (2 random of 3 offered)
├─ Pick race (both offered every match)
└─ Pick ship (4 available, sprites shown)
└─ Player spawns centred, invincible briefly
└─ ESC / Start ──► Pause menu overlay
@@ -38,7 +38,7 @@ Main Menu
## Races
3 playable races chosen from a pool of 10 concepts — see `racesclasses.md`. Each race has 5 ship classes:
2 playable races (a third, Apex Dynamics, was cut to simplify the art pipeline) — see `racesclasses.md`. Each race has 5 ship classes:
| Class | Role |
|-------|------|
@@ -52,8 +52,8 @@ Races are visually distinct — critical for reading a 25v25 battlefield at a gl
## Match Setup
- Each match randomly picks **2 of the 3 races** to field
- Player picks which of those 2 they fight for, then picks their ship
- Both races are fielded every match (order they're presented in is randomized)
- Player picks which of the 2 they fight for, then picks their ship
- Bot fill ensures a minimum of **7v7** in casual; no bots added beyond that
## Design Philosophy
+16 -39
View File
@@ -2,30 +2,21 @@
## Setting
Three factions fight inside the massive shielding, pipes, and superstructure of
Two factions fight inside the massive shielding, pipes, and superstructure of
refineries, shipyards, and mining stations — not open void. Grounded, blue-collar
sci-fi in the vein of *The Expanse* (corporate hegemony vs. disciplined inner-planet
military vs. gritty outer-belt miners), but built as a fast, arcade 2D tactical
arena shooter rather than a hard-sci-fi sim. Tight factory corridors and choke
points are the map language — see `multiplayer.md`.
sci-fi in the vein of *The Expanse* (disciplined inner-planet military vs. gritty
outer-belt miners), but built as a fast, arcade 2D tactical arena shooter rather
than a hard-sci-fi sim. Tight factory corridors and choke points are the map
language — see `multiplayer.md`.
> **Status:** This replaces the previous 10-alien-race concept pool and the
> Terran Republic / Mechanos Sovereignty / Vorg Swarm roster. Doc-only for now —
> game code (`team_select.gd` RACES data, `GameConfig`, existing
> `assets/images/ships/<race>/` art) still reflects the old races until that work
> is scheduled.
> Terran Republic / Mechanos Sovereignty / Vorg Swarm roster. A third faction,
> Apex Dynamics (The Corporate Syndicate), was cut entirely to simplify the art
> pipeline — no code or docs should reference it going forward.
---
## The 3 Factions
### Apex Dynamics — The Corporate Syndicate
**Weapon type:** High-tech energy (coherent light / plasma)
**Visual:** Sleek, pearlescent-white hulls with razor-sharp geometric lines and
glowing neon-blue engine trails — looks more like a high-end luxury smartphone
than a military weapon.
**Feel:** High-tech and precise. Wins by not being seen until it's too late.
**Tactical ability:** **Active Camouflage** — see [Faction Abilities](#faction-abilities-universal-system)
## The 2 Factions
### Inner Sphere Navy (ISN) — The Military
**Weapon type:** Standard-issue ballistics / ordnance
@@ -55,14 +46,6 @@ Every faction fields the same 3-ship structure, re-skinned to its own theme:
| **Gunner** | Rapid-fire spray/burst, more shots for less damage each |
| **Tank** | Bigger and slower; fires both bullets and missiles |
### Apex Dynamics
| Ship | Class | Weapon |
|------|-------|--------|
| **Lancet** | Fighter | A single, high-precision bolt of blue coherent light |
| **Pulsar** | Gunner | A wide, rapid-fire fan of low-damage green plasma pulses |
| **Sovereign** | Tank | Homing micro-missiles alongside dual heavy plasma batteries |
### Inner Sphere Navy (ISN)
| Ship | Class | Weapon |
@@ -85,7 +68,7 @@ Every faction fields the same 3-ship structure, re-skinned to its own theme:
Each faction has exactly one tactical ability. Every ship in that faction gets
it — what changes per class is scale, not kind, so the ability reads instantly
off a ship's faction regardless of which of the 3 hulls it's flying. Same energy
off a ship's faction regardless of which of the 2 hulls it's flying. Same energy
cost and cooldown across factions; duration/impact scales with the hull:
| Class | Scaling rule |
@@ -94,12 +77,6 @@ cost and cooldown across factions; duration/impact scales with the hull:
| Gunner | Baseline cooldown and effect |
| Tank | Long cooldown, largest/heaviest effect |
### Apex Dynamics — Active Camouflage
Ship turns 90% transparent and disappears from radar. Firing or taking damage
breaks it instantly. Fighter gets a quick, short slip; Tank's lasts longest but
is riskiest to commit a slow hull to.
**Use:** Slip past a defender in a narrow pipe, flank, or break a missile lock.
### Inner Sphere Navy — Overcharged Aegis
A frontal hard-light barrier absorbs 100% of incoming damage from the front for
a few seconds. Sides and rear stay exposed, turn rate drops, and the ship can't
@@ -117,15 +94,15 @@ larger blast radius; Fighter's arms faster but hits smaller.
**Use:** Cover a retreat down a corridor, or seed a choke point/objective before
a push.
### The Rock-Paper-Scissors Loop
### Faction Interaction
With only 2 factions, the abilities form a single counter rather than a loop:
- **ORC mines counter Apex cloak** — a cloaked ship blundering through a mined
corridor eats the blast, which also breaks the cloak.
- **ISN shield counters ORC mines** — the frontal barrier absorbs a mine
detonation, clearing the path for the team behind it.
- **Apex cloak counters ISN shield** — a slow, frontal-shielded push leaves the
ISN ship's flank and engines open for a cloaked ship to slip around and
punish.
- **ORC mines punish a shield push once it drops** — the shield can't fire and
loses turn rate while up, so a mine dropped in its path (or behind it, once
the barrier expires) still threatens the push.
No ability wins a fight by itself — it depends on the map and the moment it's
used, same as a smoke/flash/molotov in CS:GO.
+1 -1
View File
@@ -104,7 +104,7 @@ Player (CharacterBody2D) ← ship_movement.gd
```
main_menu.tscn
├── QUICK PLAY → matchmaking queue (casual) → world.tscn
│ ├── TeamSelect overlay: pick race (2 random of 3 offered)
│ ├── TeamSelect overlay: pick race (both offered every match)
│ ├── TeamSelect overlay: pick ship
│ └── Player spawns → game live
├── SERVER SELECT → server_select.tscn → pick a server → world.tscn (same TeamSelect flow)