diff --git a/README.md b/README.md index 89307c3..9b49c26 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,9 @@ with [Bevy](https://bevy.org) in Rust. | `crates/game_server` | Authoritative simulation, Rune scripting, persistence, `game-server` binary | | `crates/game_client` | Rendering, UI and input (`game` binary); embeds the server for singleplayer/host | +See [SS13 feature gaps](docs/ss13-feature-gaps.md) for an inventory of major +systems and smaller features that are not yet implemented or are only partial. + The client never changes game state directly. It sends requests (`Login`, `SetMovement`, `Interact`, `Craft`, …) and the server replicates the resulting state back. In singleplayer the same server systems run inside the client process, so singleplayer and diff --git a/docs/ss13-feature-gaps.md b/docs/ss13-feature-gaps.md new file mode 100644 index 0000000..97957b8 --- /dev/null +++ b/docs/ss13-feature-gaps.md @@ -0,0 +1,142 @@ +# SS13 Feature Gaps + +This document is an inventory of major systems and smaller features that are +not present, or are only represented in a basic form, in Station. It is based +on the current source code and shipped content, not a promise or schedule for +implementation. Space Station 13 differs substantially between codebases and +servers, so this is a practical comparison with common SS13 gameplay rather +than an exhaustive specification. + +Station currently provides persistent worlds rather than rounds; free +movement; inventory and item use; crafting, construction and gathering; skills; +simple hunger and health; basic machines; chat; multiplayer; admin controls; +and world/character persistence. Those systems provide a foundation, but do +not yet form the crew-driven, round-based station simulation typical of SS13. + +## Major Systems + +These are large gameplay pillars. Many depend on several other systems and +would need coordinated data, server simulation, UI, networking and content. + +- [ ] **Round lifecycle and lobby:** Lobby, ready-up, round start and end, + round timers, end-of-round summary, and a clean reset or new-round flow. + - Not needed, as I want to go for long running servers instead of round based +- [ ] **Crew roles and departments:** Job selection or assignment, department + rosters, role-specific equipment and responsibilities, access levels, and + command structure. Current skills gate a few recipes; they are not jobs. +- [ ] **Antagonists, objectives and events:** Hidden roles, role objectives, + round-specific threats, dynamic events, and systems for declaring or resolving + round outcomes. + - Not needed for now +- [ ] **Combat and security:** Character-versus-character combat, weapons, + projectiles, armor, restraints, arrest and evidence workflows, and security + tools. Current damage is limited to basic survival/script effects rather than + a combat model. +- [ ] **Atmospherics and environmental simulation:** Gas mixtures, pressure, + oxygen and breathing, temperature, fire, vent/scrubber networks, and + environmental hazards. +- [ ] **Power and electrical engineering:** Power generation and distribution, + cables, breakers, consumers, power outages, and electrical hazards. +- [ ] **Medical simulation:** Damage types and body zones, injuries, surgery, + diseases, status effects, diagnosis, medical equipment, and treatment + workflows. Current health/nutrition and healing items are intentionally + simple. +- [ ] **Chemistry and reagents:** Reagent containers, mixtures, reactions, + chemical effects, toxins, and chemistry equipment. Current crafting consumes + discrete item ingredients rather than simulating reagents. +- [ ] **Research and technology progression:** Research points, unlock trees, + department research workflows, and fabrication tied to discovered technology. + Current crafting uses direct recipes and skill requirements. +- [ ] **Station infrastructure and machinery:** Interconnected machinery and + control systems, including powered/access-controlled airlocks, alarms, + cameras, consoles, telecoms, and other department-specific equipment. Current + doors are manually toggled and machines are generic timed processors. +- [ ] **Communications and evacuation:** Radio channels, headsets, intercoms, + station-wide alerts, emergency communications, shuttle request/control, + evacuation, and escape outcomes. Current player chat is global. + - Communication is needed, evacuation right now isn't +- [ ] **Character roles and species simulation:** Species traits, body structure, + species-specific needs, equipment restrictions, and distinctive capabilities. +- [ ] **NPCs and autonomous station systems:** NPC behavior, station AI, robots + or cyborgs, pets, and other non-player entities with useful behavior. +- [ ] **Station-scale content and workflows:** Full department layouts, + interactive props, specialized tools, jobs' equipment, and multi-step + objectives that give the above systems a playable station context. Current + map and item/building/recipe data are a small prototype set. + +## Minor Systems And Features + +These are smaller in scope than the pillars above, though some will rely on a +major system before they become useful. + +- [ ] **Roleplay interactions:** Emotes, visible speech bubbles, character + examine/look descriptions, and contextual examine text for items and + buildings. +- [ ] **Equipment and clothing:** Wearable slots, uniforms, storage containers, + backpacks, hand-held equipment, and item-specific interaction rules. Current + inventory is a simple slot list without equipment slots. +- [ ] **Richer status and damage feedback:** Temporary status effects, + damage indicators, incapacitation states, and clearer causes of health loss. +- [ ] **Access credentials:** ID cards, access levels, door authorization, + access-denied feedback, and role-based access management. +- [ ] **World interaction details:** Pulling and pushing objects, dragging + incapacitated characters, furniture placement, storage access, and more + contextual interactions. +- [ ] **Construction and repair details:** Building damage and repair, tools + with distinct uses, dismantling steps, and clearer construction feedback. +- [ ] **Item affordances:** Item examination, splitting and merging stacks, + container contents, transfer between containers, and item-specific + interactions. +- [ ] **Personal communication:** Local speech, radio device/channel selection, + department channels, and communication feedback. The current chat is global. +- [ ] **Character appearance and identity:** Configurable appearance, pronouns, + character descriptions, and richer identity/role presentation. +- [ ] **Sensory feedback:** Sound effects, ambient station audio, visual status + cues, and alerts for nearby events. +- [ ] **Player onboarding:** In-game controls and interaction hints, role/job + guidance, and contextual help for station equipment. +- [ ] **Administration and moderation tools:** In-game observation, teleport or + intervention tools, logs and audit trails, and richer player reports. The + server already has basic admin, ban, kick, whitelist, and configuration + controls. +- [ ] **Server discovery and reconnect experience:** Server browser, connection + recovery, and clearer handling of disconnects. Current play supports direct + address joining. + - Not needed for now +- [ ] **Content breadth and polish:** More items, recipes, machines, maps, + station props, sprite variety, animations, sound, and UI for the gameplay + systems added over time. + +## Existing Systems That Are Only Partial + +- **Survival:** Hunger and health exist, but there is no breathing, fatigue, + temperature, toxin, or broad status-effect simulation. +- **Medicine:** Healing exists, but there is no diagnosis, body-part treatment, + surgery, disease, or reagent-based care. +- **Engineering:** Construction and deconstruction exist, but there is no power, + atmospherics, object damage/repair loop, or linked engineering machinery. +- **Machines:** Input/output slots and timed recipes exist, but machines are not + connected to power, research, access control, or station-wide networks. +- **Social play:** Multiplayer and global chat exist, but there are no local + speech, radios, role channels, or round objectives to structure crew play. +- **Scripting and modding:** Data files and Rune hooks support content + customization, but the current hooks do not provide a broad event, AI, or + multi-entity simulation framework. + +## Suggested Development Order + +This is a dependency-oriented sequence, not a commitment: + +1. Decide whether Station remains a persistent-world sandbox or moves toward a + round-based loop; that choice affects persistence, roles, objectives and + server lifecycle. + - I want to stay persistent world sandbox style. The community should be able to build custom maps (scenarios) that can have goals +2. Establish character state and interaction foundations: damage/status model, + equipment, access, and robust item/container interactions. +3. Add station infrastructure primitives such as power, atmospherics and + machinery networks before building complex department equipment on top. +4. Build role workflows and communications, then round objectives, antagonists, + emergencies and evacuation around those foundations. +5. Expand departments, content, audiovisual feedback and administration tools + alongside playtesting and balancing. + - There should also be tools to generate and modify content, so that communities can make custom content in a simple way \ No newline at end of file