No description
Find a file
2025-10-31 14:25:27 -05:00
.vscode more input configuration 2025-10-30 14:09:59 -05:00
assets/items okay 2025-06-09 21:05:37 -05:00
crates cursor moving through context dispatch 2025-10-31 14:25:27 -05:00
.gitignore Initial commit 2025-06-03 21:42:24 -05:00
Cargo.toml last original commit 2025-10-19 09:08:25 -05:00
LICENSE Initial commit 2025-06-03 21:42:24 -05:00
README.md okay 2025-10-29 21:02:19 -05:00

Residuum

SRPG Project Summary

Last updated: 2025-05-20


Project Structure

Engine architecture: Plugin-based Rust + Bevy game using a modular crates/ layout.

Key Crates

  • shared/: Pure Rust types and logic, Bevy-agnostic. Contains:
    • Agent, Roster, StatsBlock, Health, Inventory, etc.
    • Generic ID system: Id<T> to track unique entities.
    • Name with future localization support.
    • Tile grid system: TilePosition, TilePositionComponent for ECS.
  • client/: Bevy app logic — UI, scene, interaction, rendering.

Agents

Characters controlled by the player.

Fields:

  • Id<Agent>, Name, StatsBlock, Health, Skills, Inventory, Loadout

Integration:

  • AgentComponent wraps shared Agent in Bevy ECS.
  • Movement uses move_range() based on stats like Grace, via A* over TilePosition.neighbors().

Stats & Health

No Level or HP. Instead:

  • StatsBlock: Custom stats (Force, Grace, Will, etc.)
  • HealthSystem: Granular injuries and system damage (design not finalized).
  • Supports:
    • Diminishing returns
    • Willpower burnout
    • Avoiding grinding-heavy progression

Inventory System

Roster-wide Inventory

  • Unlimited capacity
  • Used for crafting and agent loadouts
  • Shared resource pool pre-mission

Agent Inventory

  • Persistent across missions
  • Limited by:
    • Weight or
    • Slot count
  • Auto-refill and underloaded notifications planned

Loadout

  • Inspired by Cataclysm:DDA
  • Equipment layering using:
    • BodyType
    • BodyPart
  • Support for multi-part equipment (e.g., gloves for both hands)
  • Extensible for animation/skeletal rigging

🎮 Battlefield Interaction

Tile System

  • TilePosition: Bevy-agnostic grid with neighbors and A*
  • TilePositionComponent: ECS wrapper

Selection & Movement

  • Uses Bevy Events:
    • Select agent under cursor
    • Compute and paint move range
    • Future: UI confirmation and path traversal

Design Philosophy

  • Avoids RPG clichés (Level, HP)
  • Deep systems simulation, but avoids tedium
  • Supports localization and modding
  • Architecture favors extensibility and iteration

Current Work in Progress

  • Bevy integration for shared types
  • Move range highlighting
  • Agent movement confirmation system
  • Equipment/loadout slot logic
  • Agent to TilePosition sync

Residuum Story and Worldbuilding Summary

Setting Overview

The game is set in an alternate version of the North American theater of the Seven Years' War. This version features the collision of Enlightenment empires, magic-infused frontier conflict, and a periphery that resists central control.

Key elements:

  • Periphery vs. Empire: Tensions between localized autonomy and imperial ideology drive much of the conflict.
  • Battlefield Magic: Magic is present but subtle—it's woven into tactics, logistics, and influence rather than high fantasy spectacle.
  • Historical Inspiration: Names, factions, and ideologies are drawn loosely from historical Enlightenment, but altered for thematic contrast and narrative strength.

Factions and Ideological Design

Inspired by Enlightenment political theory, factions emphasize their own distorted visions of “progress.”

  • The Concordat of Proven Reason: A militant-imperialist Enlightenment faction that treats reason as conquest. They deploy mechanized thought processes and utilitarian calculations in warfare.
  • The Sovereign Archive: An empire whose expansionist drive is cloaked in scholasticism and the "preservation" of lost knowledge. Their librarians are spies and enforcers.
  • The Inexorable Court: A hierarchic power governed by the calculus of divine order and obligation. Their magic stems from oaths and contracts, binding both the land and people.
  • The Kingdom of Ends: Originally discussed and rejected due to its Kantian implications of moral universality—it didn't suit imperial ambitions. However, its name inspired the tone for other faction concepts.

Tone and Themes

  • Tragic Irony: Each faction claims to improve humanity but undermines itself through its ideology.
  • Interrogating Progress: The narrative resists simple “civilization vs savagery” binaries.
  • Player as Intermediary: The player controls agents caught in these ideological crossfires, who are slowly shaping a new, unintended order on the periphery.

Narrative Hooks

  • Agents With Memory: Characters retain battle scars and psychological effects across missions.
  • Uncertainty and Loyalty: Some characters may refuse orders, struggle with morale, or refuse to heal. This ties back to Will and agency.
  • Rumors of the Residuum: A mystical substratum said to bind magic and memory to land and stone. Empires want it, but it resists mapping.

Influences

  • Dwarf Fortress: For its handling of health and emergent complexity.
  • Tactics Ogre / FFT: For party management, faction complexity, and battlefield intimacy.
  • The Enlightenment: For both its ideals and hypocrisies.

This foundation should allow for modular additions of both factions and subplots as the game evolves, without losing coherence.

UI Design

Sound Design

inspirations

  • returnal
  • subnautica
  • final fantasy

AI Units

Librarie

Plot Outline

Chapter 1: The Cry of the Loon

Chapter 2: First Fire

Chapter 3: What the Earth Remembers

Chapter 4: A Dazzling Light