Add capital ships, and settings screen with smooth-motion fixes

Capital ships & support art:
- New Flagship capital ships (world/flagship.gd) spawn a small
  point-defense formation at each team's spawn marker, independently
  targeting the nearest enemy in range with a slow unmissable-looking
  missile and a faster bullet stream -- keeps a team from parking on
  the enemy spawn and farming respawns.
- Per-race/role bullet sprites for turret fire (assets/images/effects/
  bullets/), flagship art for both factions, minimap now draws
  flagship blips, bot_ai awareness tuned to notice them.

Settings screen (items 20-21 in CLAUDE.md) -- was a stub, now five
real sections shared between the main menu and the in-game pause menu:
- Diagnosed and fixed a "movement looks blurry/laggy" report down to
  three independent causes: physics-tick vs. display-refresh judder
  (fixed via Godot's built-in physics interpolation, plus a
  frame-rate-cap + VSync dropdown so each player can match their own
  monitor), missing mipmaps on every minified ship texture (real GPU
  sampling shimmer, unrelated to frame timing), and a periodic hitch
  from the matchmaking heartbeat spinning up a new HTTPRequest thread
  every 8 seconds instead of reusing one.
- Nameplates get their own manual per-frame interpolation, since
  Godot's physics interpolation only covers Node2D/Node3D, not the
  Control-based Label they're built from.
- Audio: Master/Music/SFX volume sliders backed by a real bus layout
  (default_bus_layout.tres) -- the project had no volume control at
  all before this.
- Window mode (Fullscreen/Exclusive Fullscreen/Windowed), a
  colorblind-friendly enemy-color toggle (also fixes the minimap's own
  separate, inconsistent yellow enemy color), and keyboard rebinding
  for every action with a live capture UI.
- New GameConfig.settings_focused flag (same pattern as chat_focused/
  team_select_focused) so a key-rebind capture can't also move the
  ship or toggle the pause menu underneath the panel.

Spawn intro: a ship's first-ever appearance now eases in from a
random direction (fast off the start, decelerating into its landing
spot) instead of popping into place -- purely a cosmetic sprite
offset, so collision/camera/networking are untouched and every peer
(including bots) sees the same warp-in.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-17 20:02:31 -04:00
parent 1ebcca3807
commit a94bccc57b
66 changed files with 1998 additions and 65 deletions
+41
View File
@@ -0,0 +1,41 @@
# Sprite & Tileset Creation Brief
For briefing other AI tools/artists on ship and tileset art needs. Not a design doc of record — see `racesclasses.md` for the authoritative faction/ship spec this is derived from.
## Project Summary
Fast-paced top-down arena shooter inspired by *Subspace Continuum*, built in Godot 4.7, targeting Steam Deck + PC. Set inside the tight corridors of factories, refineries, mining stations, and shipyards — not open void. Tone: grounded blue-collar sci-fi (think *The Expanse*), arcade-fast rather than hard-sci-fi sim.
## Factions (2 total)
A third faction, "Apex Dynamics," was cut to simplify the art pipeline — don't reference it.
- **Inner Sphere Navy (ISN)** — disciplined military. Gunmetal-gray, wedge-shaped hulls, hard militaristic angles, dense armor plating, prominent forward-facing gun turrets. Wins fights by tanking a choke point.
- **Outer Rim Collective (ORC)** — scrappy belters/miners. Blocky patchwork of mismatched metal plating, exposed hydraulic wiring, external fuel tanks, bolted-on industrial hardware. Wins by controlling terrain and denying space.
## Ships
Top-down; each faction fields the same 3-role structure, re-skinned to its own theme.
| Class | Role | On-screen height target |
|---|---|---|
| Fighter | single, high-precision/high-damage shot | ~52px |
| Gunner | rapid-fire spray/burst, low damage per shot | ~58px |
| Tank | bigger, slower, fires bullets + missiles | ~82px |
- **ISN roster:** Patriot (Fighter), Barrage (Gunner), Behemoth (Tank)
- **ORC roster:** Rail-Jack (Fighter), Scrap-Spitter (Gunner), Iron-Clad (Tank)
## What already exists
An idle sprite + a thrust/flame-sprite swap for all 6 ships. Scrap-Spitter and Iron-Clad's flame art is currently just a placeholder copy of their idle sprite — real thrust poses for those two are an open gap. Ships rotate freely at runtime from one nose-up sprite (no per-frame rotation animation used), so multi-angle rotation frames aren't required, just nice-to-have.
## New / open needs
- Real flame/thrust frames for Scrap-Spitter and Iron-Clad
- Asteroid / environmental hazard sprites (next on the roadmap, currently unbuilt)
- Factory/shipyard arena tilesets — pipes, turbines, catwalks, industrial hazards, tight choke-point corridors (CSGO-tight map philosophy, not sprawling)
- Faction docking/hub tilesets (ISN naval station vs. ORC scrap/asteroid base) — speculative, not yet greenlit
- Top-down 4-direction walking character sprites for hub areas — only needed if hubs get built
Keep pixel art style consistent across everything; ships need to read as instantly distinct by faction even mid-fight in tight corridors.