Skip to content

Conversation

@FairlySadPanda
Copy link
Contributor

Space stations are both big floating metal structures which you can stand on ("grids") and places of habitation with hallways, maintenance tunnels, departments, offices, and so on.

In Engineering, it's useful to think about a station, be it a static one or a shuttle, as "zones" - an area provided atmosphere that is airtight is one zone, or maybe an area serviced by one substation is one zone. Security and Command can think about the station as being broken up into areas based on access. But every department and every agent on the station can agree that the station is definitely broken up into rooms.

This document discusses how to define rooms, what their impact on parts of the game are, and how they can be modelled to build features on. It'll explore some ideas for features that could use rooms.

@github-actions github-actions bot added Design Related to design documentation for Space Station 14. English labels Nov 10, 2025
@Hanzdegloker
Copy link

I can imagine uses for crew objectives like "Keep medical 90% clean" for a janitor or "Keep station integrity above 75%" for engineers using whats discussed here as a framework. ALSO, I know skeletons spawning anywhere is funny but stowaways, paradox clones for sure and other roles/antags could really use something to fine tune their spawn locations. Allot of stuff can be built, ontop of this. Very good stuff.

Copy link
Member

@slarticodefast slarticodefast left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Worth mentioning the core design pillar of the dynamic environment - which is why pre-mapped game areas are not a thing at the moment. Players should be able to transform the station over the course of the round.

And another system that would benefit from this is ambient music. If you have a look at the current track selection algorithm you can see that it checks a bunch of conditions in a fixed order, for example:

  • Is the player near a morge, altar or fog?
  • What is the nearest door access?
  • What tile is the player standing on?
    And so on. This is currently not ideal, since the ambient music for maints is often not playing because you almost always have a substation room or a firelock with engineering access close to you - turning all of maints into an engineering area.

In general I think the room system should be something that is only subtly communicated (like antag spawn locations or ambient sound rather than a room type UI) to the player to prevent them from minmaxing or exploiting the system. Room types should feel like they organically adjust to the players' actions and be used to improve the roundflow and ambience rather than be a direct game mechanic.


As such, we need a premade room model of the station, set at round start. If the station's walls and structure change, rooms should be marked as invalid in the model, and those rooms require maintenance. The game internally keeps a track of what rooms exist on the station, but converting those rooms into the model is first done by the mapper, and then left up to the station's crew to maintain.

This is a job that feels appropriate for the Station AI to keep on top of. Keeping an eye on new rooms bolted onto the hull and adding them to the room model, and fixing the model when the bar is remodelled, are tasks which can't, and shouldn't, be left to an automatic system running on some update loop. It would be always broken in annoying ways.
Copy link
Member

@slarticodefast slarticodefast Nov 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure if the room declaration should be something that can directly be selected by players, especially if it has an impact on the round - like antag spawns. Instead I would prefer it as a Rimworld/ONI style point system that automatically adjust to the structures inside a room.
Medical machines give points towards a medbay. Lots of closets and catwalks - this is maints. Hydroponic trays - Botany. And so on. The players can still inderectly influence this system, but they will have to entirely refunction the room for it.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can see this point. This document "we should have a dynamic room system in code, here's some ideas of things that could be built off of it to demonstrate why".

Will let this sit for a bit so that others can put in ideas and thoughts, then I can trim back any proposals folks are not keen on or regard as bloat.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Design Related to design documentation for Space Station 14. English

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants