Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
This section covers the basic mechanics of the game like UI, controls, etc..
Space Station 3D is a game about a research station in space that is constantly wrought with misfortune; hostile chest-bursting aliens, traitorous vandals, cultists and wizards, mutiny, abductors, malfunctioning AI, meteors, solar flares, black holes, and, of course, the incompetence of the very crewmembers who work tirelessly to keep the whole thing from flying apart.
The overarching goal of SS3D is to recreate Space Station 13 and replace its dated engine, BYOND. To accomplish this, the currently seated development team has chosen to pursue this goal using Unity as the base engine. The first step to achieving this goal may be to implement platform architecture similar to BYOND, using Unity as a springboard.
The number of players on a given station is generally dependent on the capabilities and/or limits set by the server’s owner. Given the player counts of the predecessor game, Space Station 13, general player counts may range between 5 and 100 or more, but will likely depend on the capabilities of the servers in SS3D.
The owner of the server may also manually set limits for the number of players in certain on-station jobs based on the server’s general player count. For example, clowns may be less important than engineers, so the server owner may want to introduce caps to the number of players playing clowns. Since games can potentially last for hours, players may also leave and join games (if they haven’t already left the current game) at will. Players may also spectate if they have died, or if they just don’t feel like playing the current round.
When first launching SS3D, the player will be greeted with a list of stations (Server Hub). These stations may or may not be distinctly different from each other by means of different assets and gameplay, each entry on the list complete with a name, player count, and short description to let players know what they’re getting into. Upon choosing a station, the player will soon discover what would probably remain common between all servers; the Server Lobby.
The Server Lobby is populated with a list of options, which allow the player some control of how they experience the game. It’s on this menu where the player will set up their custom character, choose their occupation, and finally, join an already occurring game, or queue up for the next upcoming game.
Upon joining a game, the player will be spawned somewhere on a community-created station likely in their respective department; engineers in engineering, medics in the medbay, janitors in a dingy closet, and so on.
Should they arrive late, players may find themselves flying in on a shuttle to the station. From the point of arriving, the player is at the mercy of whatever circumstances the station may find itself in…
On board the station, the player will come to discover a unique cast of characters composed mostly of other online players, each who have a job on the station (probably).
A first-time player would be well-suited to fiddle with the controls: throughout the game, the player’s character will be taking on their tasks one hand at a time, toggling their active hand depending on the desired effect. Clicking an item with an empty active hand may pick up the item, while clicking a vending machine with a screwdriver in your active hand may open the maintenance panel – the player will quickly learn that the whole station is full of such interactions, whether that means they are skillfully lighting a cigarette in another player’s mouth, or clumsily bashing oneself in the skull with a toolbox.
After the player is accustomed to controlling their character, it’s time to start doing one’s job – unfortunately for the rest of the station, players are probably going to learn on the fly. Here lies the bulk of the game’s appeal and difficulty: each occupation on the station is intertwined with the others, each player handling a surprisingly deep system of mechanics that fall in line with their regular duties. Are you a botanist? Better make sure the chef has a steady supply of wheat. Are you an engineer? Better make sure the engine doesn’t explode. Are you a security guard? Better make sure the clown is behaving today.
Seems simple enough, right? Unfortunately, doing your job is only half the job.
A player’s overall goal is to keep their department running for as long as they can, while the station falls into turmoil. The trouble might start in their department when they find a dead body, or it could manifest in the form of an explosion in the far-off reaches of the maintenance tunnels. But no matter where it starts, a crew member’s objective is to survive and do their job. Once the commanders of the station decide the station can’t take anymore, they’ll call the escape shuttle. If the crew can survive the trip from the station to central command, they can consider themselves lucky – this is the crew’s primary goal. However, not every player is a part of the crew…
Recall those threats from before? The traitors, the abductors, the cultists? Those are players too! And, of course, they have goals of their own, given to them at the beginning of the round. It may be a heist, human experimentation, a ritual sacrifice, or the destruction of the station itself. It all depends on who, or what, you are.
If an antagonist player accomplishes their goals before the commanders of the station escape with the crew, they can claim victory as well.
Some rounds end via the victory conditions depending on the gamemode's objectives. But many rounds will end via an escape shuttle being called via the station's command staff at the discretion of the crew.
After arriving, the escape shuttle will stay docked for a few short minutes, hopefully allowing enough time for everyone to get aboard.
Other means of escape may be available like individual escape pods.
In SS3D, round-end results may contain many different aspects of the match, including who was an antagonist, what the antagonists’ goals were and whether they were achieved, who was the first to die (along with their last words), the players performance that round, and perhaps more.
When the round ends, all players will be brought back to the pre-game menu, where they can customize their characters once again, choose their jobs, and so on. SS3D server maintainers may also like to hold polls during this time, which may give valuable player data to the game developers.
The Server Hub is the first real UI the user will experience. It comes before the Server Lobby and its sub-menus, which comes before the Game and its sub-menus.
The server hub is a 3 page menu with the primary purpose of displaying a list of servers for a user to browse and join through.
The window title bar is pretty self explanatory; there's an icon and title of the left, and a minimize, maximize, and exit button on the right.
Then below that, we have 3 buttons on the left and 3 on the right. The 3 on the left are for the 3 pages as mentioned above; Home, Servers, Settings (the Servers button is highlighted in the above image because that page is the active one). The 3 buttons on the right are SS3D links; Website, Discord, & GitHub.
The Home page is the first page and mostly provides information.
(There should also be scroll bars on this page but did not get included in the image.)
The changelog provides a feed of recent changes in the game.
This will be connected to either our GitHub releases or the devblogs from our website.
A description of the game. Maybe a brief history, or witting quote, or welcome message.
Some links to our official platforms.
Maybe an official game trailer.
A small bulletin of current/upcoming events on official ss3d servers.
A feed connected to our various social media accounts; like YouTube and Twitter.
The Servers page is the primary page users will spend time on, as they browse and read about servers.
The server list is the large window on the left. Not only server name, but the list provides server info on; crew count, map, round time, roleplay level, language, ping, and favorite star. The list can be sorted by any of these sections.
In the image above the server list is currently sorted by server name (hence the little arrow beneath "Space Station"), so the list has the names sorted alphabetically top-to-bottom... but the Favorite Star has higher priority over the sorting arrow so both favored servers are forced to the top. Though both sections (favored & unfavored) are still being sorted alphabetically, just separately.
When hovering over or selecting a server it will turn color.
(There should also be scroll bars on this page but did not get included in the image.)
Server names may get long, if so they will be cut off after a certain point with "..." and will begin to scroll from right-to-left when hovering over it.
One thing to note is that if the server's population (crew count) is 0, the number will turn another color (grey). Also, if a server has set a max population in their server settings, and that max has been reached, the color of the number will change (black maybe?).
Was thinking these could be color-coded in some way.... or not...
When the round is not started (00:00) the time turns grey.
Self explanatory.
Self explanatory. (Yes, I realize "BR" - Brazilian is really a language but it was late when I was making this.)
Color-coded.
<100 = green, 100-199 = yellow, 200-299 = orange, >299 = red
Overrides the Server List sorting arrow (forces favored servers to the top). Favored servers basically become a second list that abides by the sorting arrow as well, but simply exists the non-favored server list.
At the bottom of the Server List, exists some additional buttons and tools.
The search bar works like any other. The grey text vanishes when you start typing in the box. The magnifying glass is the send button. The revolving arrows on the far right refresh the Server List above. Next to it is the Server List Filter (see below). And on the far left is the Advanced Server Options (see below).
The Server List Filter pops up a tab of options by which the user can filter the Server List by. The options stack together.
The Advanced Server Options button also pops up a tab. This one has 2 sub-tabs; on the left (top image) is the Host tab, on the right (bottom image) is the Join tab.
The Host tab is used for hosting your own game. You can give your game (server) a name and a password. You then can select from 1 of 3 options: Local; keeps your game local and does not connect it to the web in any way. Public; connects your game to the web & hosts your game publicly on the SS3D Server Hub. Private; connects your game to the web but does NOT get shown on the Server Hub. Only way to connect to a private server is to join manually by inputting their IP (see below).
The Join tab is used for manually joining a server. This is used for joining to servers that are private (not listed in the Server List). You must know their IP and if they have one, their password.
The Server Info section will be filled with content/info provided from the servers themselves. First their server name., then an image, and finally some information about the server.
This section isn't concrete in design, and possibly the layout of this section could simply be in the hands of the servers themselves.
Server Info Extended refers to the dark bar at the bottom of the the Server Info section. The left side displays the current gamemode set by the server. The middle is the obvious connect button. And the right side has 3 weblink buttons, similar to those in the Head of the Station Hub, but these are for the server's links rather than SS3D links. They are for website, discord, & github.
The Settings page is the final page on the Server Hub. It's pretty self explanatory and the above image is filled with example settings. Though one of those examples is the idea of color themes for the hub...
As seen in the example above, blue and grey options seem like they would fit well...
And maybe it would be nice to have something for the dark theme addicts... (ignore the poor photoshop color change on this one... though one thing about the below example that is really nice is the additional shadow/border on the header text).
Imo, it would be cool to have red, blue, & grey themes AND dark red, dark blue, & dark grey themes in the end.
Design documents for Space Station 3D!
This is our Game Design Document (GDD) and outlines what is to be expected in Space Station 3D and how to play it.
Some of these designs are still a WIP and will see changes as we progress and update this GitBook.
This space is for design documents only, for technical documentation see the Systems page, linked below.
Something to remember: Although SS3D is a goofy, quirky, cartoony game... it is also a detailed, complex, simulator that "attempts" to be fairly realistic. There is a fine balance here.
Retro Futuristic - advanced technology since it's in the future but older technologies aren't often replaces (so you will still see CDs, cassettes, laptops, etc.).
For specifics on our art style see our artist guides.
Work In Progress.
Also see
This page is for the design of the User Interface overall. For info on designing art assets for UI elements, see . For info on the implementation of the UI, see .
User Interface is broken up into 3 sections; the , the , and the itself.
Text elements should be white as a general rule, and always be incased into a block of semi-transparent dark background with rounded edges. When colored (in chat or in case of warnings) text should be bright enough to be readable on the dark background, distinct enough from white text and slightly desaturated.
Fonts used are available in the project’s art GitHub repo.
The follow pages use concept images and ideas; please ignore wrong backgrounds, fonts, and/or icons...
This menu is for customizing the player's character. This requires several other systems, like shape keys, clothing and jobs.
The character appearance is the menu where the player decides the character's shape, mass, height, hair, skin color, special features and other things:
Character loadout is the menu where equipment like clothes, tools and cosmetics are assigned to the character:
Job selection screen is where the player sets their preferences for their role on the station:
The game itself has many different UI components and systems that interact with it. This section will be broken up into these different components.
Other interfaces may also exist for more specific use cases, like using station consoles, changing settings on a pressure valve, or interacting with a player’s PDA. These exist in the form of windows that can be dragged around the screen for convenience, and often share similar design elements with each other.
Most of those might be achieved by implementing proper windows. Windows are UI elements opened when interacting with certain environment items, like accessing the terminal or a piece of tech that is not detailed enough on the level of its model/texture. Most windows should be interactable, movable and closable.
For a set of design guidelines one should take a look at .
Some UI elements can have variants to be switched for one another in case of different circumstances. In that case the variant switch needs to be seamless, meaning that the images for those elements need to be of the same size and with the same base position.
Note the bar, it is missing from the variant files themselves, but can be added within unity and be programmably extended or shrunk from the bottom of the thermometer.
UI elements can also consist of several parts to be layered on top of each other and programmed to be moved, colored or otherwise changed separately.
As an example, the atmospheric pressure meter consists of 3 parts: the base with a dial, the arrow to rotate and indicate the overall pressure on the base’s dial and an exclamation mark, to be colored and/or flashing in case of dangerous atmospheric conditions. The text for the exact atm amounts is added within Unity, using accepted project fonts, so it can also be changed programmably.
Same principle applies to the target dummy, surgery dummy and other complex UI elements.
The Server Lobby is the menu for the individual server after you have chosen to connect to one via the Server Hub. From here you can join the round (if in progress) or spectate it.
It also serves several other purposes:
Provides server information/images custom to each server.
Includes a lobby chat to talk in OOC with the other people in the server. (needs image)
Provides a list of players and possibly occupied roles.
Allows changing the game settings (video, audio, UI, etc.. as in #in-game-settings):
Allows editing/saving character presets at any point prior to embarking. (needs image)
Grants server settings to admins so they change aspects of the round and start/stop rounds. (needs image)
For technical documentation see Game Controls page linked below.
Almost all currently implemented controls can be seen and edited in Content/Input/Controls.InputAction.
Specific buttons are bolded. Tapping a button is colored green. Holding a button is colored blue.
Ideas and discussions for future game controls have been consolidated on our Trello page. See below.
How does the character do stuff
This is the page for interactions design in terms of how a non-programmer can understand. Interaction in that sense is a way for player to use the objects around them.
The station is filled with objects that are complicated and have several functions, and yet we aim for a fluid and streamlined gameplay process. In other words, doing stuff should not be hard for players and they still should be able to do everything developed for an object.
Overall, interactions should be simple: click on thing - use the thing IF character has an empty hand.
So. How do we do it?
In essence, all objects should have a Primary interaction. Something that should be done with that object by default: light switch should be clicked to be switched, a tool should be picked up on click, a fridge should be opened or closed on click.
And not only that can be different things for each object, some objects might (and will) have multiple functions. That raises the question "how do we deal with things that have several possible actions"? For example, a blender can be opened/closed, turned on/off and picked up/placed down.
For that we have an interaction wheel.
Still, some things have few interactions in them, their main one and a secondary one or two. For example, most people wouldn't want to open a wheel every time they'd like to pick up something. So, that also needs a faster way of doing.
So far, a LOT of stuff can be just picked up, a LOT of stuff can be opened (as a container) and a LOT of stuff have some sort of main singular function. So, it boils down to 3 most common interaction types:
CTRL + LMB = Move
Shift + LMB = Activate
ALT + LMB = Access
A simple LMB click on something still would do the interaction that is considered Primary, while the rest would still be available in the interaction wheel, but if someone wants to access those interactions immediately, they can do it right away.
If the character is holding something in a hand, then if player clicks on any object, the character should try applying the item in hand to the object in a way that would make sense.
And then some things have a Primary interaction they do regardless of where the player clicked. Horns always honk (activate), jukeboxes always blast music (activate), lighters always burn (activate), guns always shoot (activate).
However some of the items have a Secondary interaction in them as well. Guns need to be unloaded, jukeboxes need to change songs, etc. And those actions are guaranteed to be needed urgently.
Dropping an item will also have a hotkey (likely Q).
Now, in question of how to place the item in the world with precision and not just drop it, there are several suggestions:
Drag-and-drop from hand slot to the particular place in the world. It does not require an extra hotkey and is fast enough.
Hold+Click for those players that place a lot of things manually.
When the animation system is done, both options should allow for such things as "Procedural animation that plays where player starts placing object and blends their hand position to where the mouse is going until it eventually lets go, placing the object."
Interaction wheel is able to contain up to 8 interactions options at the moment. Most objects have less, and those that have more would probably have it's own UI, like the door wires or a computer console (see for window UI info).
- Change it's location if you can. Pick it up if and item or grab it to pull/push if furniture/entity.
- Make it do what it's made to. Access it's UI, turn it on, open it's valve, make it do a thing.
- If it's a container, you should be able to attempt to open/close it and see the inventory.
We will use modifier keys for these to override the primary interaction (examples below but otherwise see the ).
Some things are obvious. A pistol mag inserts into an emptied pistol (move). A disk fits into a console (move). Welder should weld/un-weld the locker if applied to it (special). The whole system of crafting relies on this kind of interaction: applying an item to another item to make a new item (see ).
Moving an object implies different things depending on the object you're trying to move.
Pick Up - the character takes the object with their hand, picking it up, and carries it with them.
Grab - the character grabs hold of the object with 1 or more hands, to pull/push or even strangle.
More accurately it depends on the size of the object you're trying to move.
So how do we decide when to pick up and when to drag? We check the number of available hands..
small objects - always pick up
medium objects + one free hand - drag
medium objects + two free hands - pick up
large objects - always drag
Rounds are a core mechanic in this game as most games you played. They simply represent a single "match". Matches will vary from individual to individual.
First a round needs to know what gamemode it will run. From here the round pulls some RNG parameter to run from the gamemode settings. This decides the RNG preset for all sorts of round attributes.
These attributes include things such as; map, player cap, role availability/rates, objectives, item spawn rates, etc. An admin can override the default settings for each of these for an given round prior to start.
Players should be able ready up for an unstarted game, so they will automatically join when the game starts and will go through the RNG process for their roles, or join a started game mid-round.
Players should only see what their characters reasonable can see.
That means not being able to see through walls and some other large opaque objects, but being able to see through windows or other large objects with transparent materials.
Additionally, the color and transparency of the FOV itself can be adjusted. This could be used for a variety of things.
It could turn green and grainy when the character's eyes are exposed to radiation. It could turn 90% transparent to simulate x-ray vision. Etc...
The player hud is dependent on a few factors, with differences in the UI elements based on those factors.
Admin: has special UI elements for special functions.
Player: the most common user.
Species: refers to what kind of character the player is controlling which determines the UI appearance and layout (e.g. a ghost wont have clothing, hands, etc. but a human will).
Role: some roles may have unique abilities or inventories thus having some UI differences (e.g. a changeling scientist will have more abilities and UI options than a regular scientist).
Human HUD example below:
The player’s interface will likely be the most important part of the average game. The following is a breakdown of what is seen above, starting in the bottom center of the screen:
Hands: These icons represent what is currently in the player’s hand. The active hand is lit up, while the inactive hand is dimmed. When a player picks up an item in the active hand, an icon should appear in the players’ hand representing said item.
Pockets: To the right of the players’ hands are their pockets, which are concealable storage for small items that can fit in the players’ clothes. If the player doesn’t have clothes with pockets, these slots wont appear.
Storage: To the left of the players’ hands is storage. This is where the player will be keeping their ID, tool belt, and backpack. Items of the respective types can be put into these slots for easy access. The player’s ID determines their level of access across the station, whereas tool belts and bags can store objects within them.
Hover Text: This is part of the Examine system and displays the name of the object the player’s mouse is hovering over.
Clothes: On the bottom left of the screen, the player can see what they are currently equipped with. Here, there are slots for shoes, jumpsuits, gloves, overcoats, ear-wear, masks, glasses, helmets, and one slot of suit storage for larger objects like rifles or oxygen tanks. A toggle also exists at the bottom left, for collapsing this menu.
Intent: Near the bottom right of the screen, the intent indicator is a toggleable button which shows the player how they will be using their active hand. For example, if the player has a screwdriver in their hand in “help” intent, clicking a vending machine may open a maintenance panel. But, if the player has the screwdriver in “harm” intent, the player may do damage to it.
Targeting Doll: To the direct northeast of the intent indicator is the targeting doll. The player can click various parts of the doll to indicate what part of a humanoid the active hand will be targeting. For instance: should the player find themselves in a fight, stabbing a player in the eyes would be strategically different than stabbing their feet.
Chat: The chat is at the top left, and is arguably one of the key points of the game. In-game, this window can be dragged around the screen to suit the players’ needs. The chat contains all manner of information about the world around them, including player dialog and emotes, a log of actions, and even what your character may be thinking. On the station, different methods of communication exist between different departments. A medical officer probably doesn’t want to hear about the delayed shipments in the cargo bay, so different communication channels exist. For this reason, the player may create custom tabs that isolate specific communications for easy readability.
The text in this game is rich. For example, text outputted by a robot is highly likely to be different than text outputted by a clown. Or, text by someone who is g-g-gg-ett-t-in-ng el-e-ect-tro-c-cute-ed may read differently than someone who is ssslightly more ssscaly than others.
A person may have “said'' something, but a spider may have “chittered” something, and so on.
Toggle UI: Should a player wish to have a little less clutter on the screen, at the bottom right there are toggles for displaying the chat and targeting doll windows.
Announcements: Announcements are located to the right edge of the screen, and are messages that the station commanders feel are necessary to deliver to the entire station. They will remain on-screen, unless the player clicks the megaphone button, which should hide the message.
Warnings: The station is a dangerous place. At the top right of the screen, a list of warnings may be present for the player, that may influence how they choose to play. For instance, pictured in the image above: the air pressure in here is way too high, and it’s way too cold! While most warnings exist to indicate hazardous conditions, it may also indicate other features regarding the status of the player character, such as whether or not they’re buckled into their shuttle seat, whether they are hungry, or whether they’re unconscious.
Windows are UI elements opened when interacting with certain environment items, like accessing the terminal or a piece of tech that is not detailed enough with model & texture alone.
Most windows should be interactable, movable and closable. I suggest the design that retains the dark and semi-transparent work area, but has a distinct header with a recognizable close button and a readable name. This header should be wide enough to click on to drag the whole window through the screen.
The text within should be bright and active elements/buttons highlighted. Said color should be brighter then the work area of the window, yet overall diluted to not distract the player too much and spare their eyes.
The window can also have interactable elements within. They should be bright and readable enough on the window's background and, preferably, should retain some vector style. See an airlock control panel from SS14, for example:
It’s planned to be made out of several individual interactive parts: light bulbs and wires, with several versions of each (uncut, cut or fixed wire, lit or unlit light bulb).
Where it all happens
Space Station 3D takes place several centuries in the future on a research station owned by the megacorporation known as Nanotrasen. The station deals in genetics, virology, cybernetics, xenobiology, research of exotic materials (like 'plasma' or 'bluespace' minerals), mining, scavenging or general space exploration. Most of the time this station is floating through space, but it is not unheard of having a research station on land of some planet.
While Nanotrasen's influence and power have effectively made them a government entity, they are a force that is generally far away from the station itself, leaving it's residents to deal with their everyday challenges on their own. Station's general task is to stay operational, generally intact, and do the tasks NT gives them.
Because the stations in SS3D are user-created, they may be highly diverse in their shapes, sizes, and arrangement. Despite this, stations will likely share many similarities.
The first and most important thing to note about stations is that they truly are surrounded by the void of space. Therefore, stations must be equipped with facilities that allow the station to be inhabited by human life, such as:
Atmospheric supply system (network of pipes & machines).
Facilities for growing & cooking food.
Places for crew members to eat and sleep.
Places for emergency and medical treatment of the crew.
Ports for cargo & arrival/departure shuttles + emergency pods.
Sustainable electricity & gravity generators.
Work stations to perform tasks for NT (?)
Station designers may take great liberties in designing the placement of these systems, but they almost certainly must be present.
Additionally to the life-sustaining aspects of the station, it’s important to remember that the station is filled with work environments, where specific sectors have restricted access to specific crew members. Medical doctors probably don’t need to be in the hydroponics basin; cargo workers probably shouldn’t be dwelling in the armory.
Because of these factors, all crew members are equipped with an ID, which almost all airlocks in the station should be programmed to respond to.
A crew member without an ID may be heavily restricted by where he can go, as doors will simply refuse to open unless they can prove they has access. IDs may also serve the purpose of locking specific equipment, such as lockers & briefcases, to prevent other crew members stealing one’s equipment.
Unfortunately, most things on the station are breakable. This includes the structure of the station like airlocks, walls, floors, and windows. These can all be broken with possible devastating effects to the station's ability to sustain life, like sucking out the atmosphere if an external wall is broken.
However, all elements of the station can also be rebuilt or added upon, using a wide range of raw materials and fabrication technology. And as long as you have the gases to do so, you can repressurize the station if needed.
Players should be able to examine the things that are being visually displayed to them. This is vital due to simplistic art style of the game and the amount of unique qualities of many objects.
AKA "Hover Examine", this basic form of examine happens continuously to display the name of the object your cursor is hovering over.
Detailed examining is self explanatory in that it not only displays the object's name but also more details about the object like a description, inventory, custom ui, etc. (if it has those). It has to be activated by the player via holding a key (see Controls).
We can also add more detail to the description of an item the longer someone is examining it (while close). So if you examine someone running past you just get their skin, hair color, and some clothing yet miss their name for example.
The custom UIs on certain objects can provide more information than to the player than just a name and description. Below you can see a character's ID card with his name, age, occupation, and even a photo.
Custom examine UIs are distance-sensitive though. Meaning they only show up if you are within a certain distance, otherwise you will only see a basic name & description or even just a name.
Some objects may show their inventory contents even, like characters for example.
The Atmospherics system (atmos).
Gasses must be able to be transferred through a complex network of pipes, and must regulate pressure between rooms. For example, if a low pressure room is adjacent to a high pressure room, and the door between them is open, air should flow from the high pressure room into the low pressure room, until pressure is equalized. Ideally, this should cause wind that, if strong enough, should blow anything not buckled down in the direction of the airflow.
The gas in the atmosphere may not be a singular gas, actually that will rarely be the case. Most atmosphere will be made up of a mix of gases. Gases naturally mix together and equalize over time, much in the way pressure equalizes overtime.
It is important to manage both the pressure and gas mixture of the atmosphere in your work station.
Airlocks are currently simply acting as doors that open when a player gets near and close a few moments later only if a player is not blocking it.
This automatic behavior will be used on some common area airlocks, but secured airlocks should require an interaction to open. Clicking on them with an open hand (if your ID has access and is in your ID slot OR in your PDA which is in your ID slot) or a hand occupied with your ID that has access OR PDA that has ID in it.
Upon opening, green lights illuminate.
Upon opening, red lights illuminate.
When idle (either opened or closed), the lights turn black.
Airlocks make some sound when opening and closing.
Basic connections use the “Basic Adjacency Connector” script and are ultimately the simplest connection type.
These basic shapes are defined below:
O - A variant with no connections.
U - A variant with 1 connection, to the north.
I - A variant with 2 connections opposite of each other, 1 to the north and 1 to the south.
L - A variant with 2 connections adjacent to each other, 1 to the north, and 1 to the east.
T - A variant shaped like a “T”, with 3 connections, 1 to the south, east, and west.
X - A variant shaped like a “+”, with 4 connections, 1 to the north, east, south, & west.
These pieces can be rotated to create many various shapes. This works fine for objects that do not have corner connections (pipes, cables, etc.), but this won’t suffice for objects that do (tables, walls, etc.) because it will leave gaps where the corners meet.
Cables
These heavy-duty high-voltage cables are only used between station engines and related machinery.
Two “I” shapes can cross each other while maintaining separate circuits; they do not have a junction box like the similar “X” shape.
Though similar to wires, wires are more complex (see the “Wire Adjacency Connection” section for more details).
Conveyor Belts
Currently, these do not use a “T” or “X” shape so we can either add those or resolve how a straight piece may connect in such a situation as seen in the image (these may need to get their own unique adjacency connector in the future).
HE Pipes
Heat Exchange Pipes don’t require an “O” shape.
They do however have an special “I” shaped called a “Junction” which connects between the HE pipes and regular pipes on the 4th layer (see the pipe adjacency connections section for more info).
What's this place made of?
For technical documentation on maps, see the Tilemap System document linked below.
Maps will come in a variety in Space Station 3D but can be categorized into 2 main types; station-like and planet-like.
Station-like maps ("Stations") are any map that is mostly made up of artificial structures and is NOT anchored to any larger cosmic body like an asteroid, moon, or planet. The only thing immediately outside of the artificial structure is the vacuum of space.
This includes, regular space stations, derelict/destroyed space stations, satellites, shuttles, or other ships.
Planet-like maps ("Planets") are any map that is anchored to a larger cosmic body like an asteroid, moon, or planet. These maps have walkable 'land' outside of the artificial structures and sometimes even an atmosphere.
This includes most of the typically mining locations, like lavaland, asteroid, or even
Radial Menu: Sometimes, just clicking is not enough to specify how you wish to react with a particular object; if a player wants to change the radio station on a boombox, how does the game know not to pick it up instead? This is the purpose of the radial menu. When holding right click on an item, the radial menu appears with a list of possible interactions.
In the case of a boombox, the player may see the option to pick it up, turn it on/off, or change the song. From this point, all the player needs to do is move their mouse in the direction of the desired option to interact accordingly.
Fill the inner circle with a generic/common interaction like Point or Pick Up. Alternatively and inner ring could be added that has a different type of interaction, like emotes.
Planets work on the same principle as stations, with a few differences.
The first one is that the map structure is no longer completely surrounded by a vacuum. There could be atmosphere on the planet itself, though it might still not be exactly breathable. For example, a planet completely covered in CO2.
The second one is that there is no longer a need for an artificial gravity generators. The gravity outside of the station might still be lower (or higher) then what the crew might find comfortable, but it's probably not going to be zero.
Next is power generation. Some power generators like solar panels may be less efficient in general and have less workable hours at all due to day/night cycle on the planet.
Finally, the station is going to be in a middle of some environment, be it a sea of lava, a blasted desert, a rocky mine or something else.
Tile Objects are what they sound like, objects on the tilemap. Most (if not all) objects are actually tile objects since they exist on the tilemap and are saved by it. The page specifies the details of some of the special Tile Objects.
The word Substance refers to a homogeneous chemical composition. This may be an element (e.g. Nitrogen, Oxygen), a compound (e.g. Nitrogen Dioxide, Benzene) or a complex mix of different compounds (Vodka, Blood). Substances are not directly interacted with by players during the game - they are simply a data template. A Substance is specific to its state - for example: Water and Ice are considered different substances.
This is mostly relevant the most to Chemistry, but in terms of atmos we can see part of this system as a combination of gasses flowing and mixing in the atmosphere of the station, as they might have reactions with each other.
As the name implies, window divider connections are specific to creating seamless windows and use the “Window Divider Adjacency Connector”.
The window divider adjacency connector is not meant to be used with the window models themselves, it is meant to be used with the “window dividers” component that overlays the windows. The reason for this is explained when we look at the sheer number of possible connection variations a single window tile can have. Initially there may not seem like many, but it becomes apparent when looking at the more complex shapes (“T” & “X”).
After carefully considering all possibilities, we reduced the total number of possible variations by counting any corner connection as a wall (regardless if it is a wall or window) if at least one of its adjacent connections is a wall (these specific corners are marked with purple in the image linked below). Next we discarded any shapes that would be a duplicate of another shape when rotated. After these reductions we are still left with ~170 possible connection variations between our metal walls and windows. This would also mean that there would be another ~170 possible models for EACH type of window (window, reinforced window, plasma window, etc.).
Using separated components, we are able to use just 23 window divider models with the 15 window models (using the advanced adjacency connector). Reinforced windows can use the same dividers, so they simply only require 15 models themselves. Adding a new exotic type of window (ex. gold) would require 15 gold window models as well as 23 gold window dividers for a total of 38 models, far less than 170.
The wall dividers are named based on how many sides they overlay. They are defined below:
A - A variant that overlays 0 sides but does overlay 1 corner (NE).
B1 - Overlays 1 side (N), both edges are flat.
B2 - Overlays 1 side (N), both edges are angled.
B3 - Overlays 1 side (N), both edges are full.
B4 - Overlays 1 side (N), left edge is flat & right edge is angled.
B5 - Overlays 1 side (N), left edge is angled & right edge is flat.
B6 - Overlays 1 side (N), left edge is flat & right edge is full.
B7 - Overlays 1 side (N), left edge is full & right edge is flat.
B8 - Overlays 1 side (N), left edge is angled & right edge is full.
B9 - Overlays 1 side (N), left edge is full & right edge is angled.
C1 - Overlays 2 sides (N & E) and their joining corners, both edges are flat.
C2 - Overlays 2 sides (N & E) and their joining corners, both edges are angled.
C3 - Overlays 2 sides (N & E) and their joining corners, both edges are full.
C4 - Overlays 2 sides (N & E) and their joining corners, left edge is flat & right edge is angled.
C5 - Overlays 2 sides (N & E) and their joining corners, left edge is angled & right edge is flat.
C6 - Overlays 2 sides (N & E) and their joining corners, left edge is flat & right edge is full.
C7 - Overlays 2 sides (N & E) and their joining corners, left edge is full & right edge is flat.
C8 - Overlays 2 sides (N & E) and their joining corners, left edge is angled & right edge is full.
C9 - Overlays 2 sides (N & E) and their joining corners, left edge is full & right edge is angled.
D1 - Overlays 3 sides (W, N, & E) and their joining corners, both edges are flat.
D2 - Overlays 3 sides (W, N, & E) and their joining corners, both edges are angled.
D3 - Overlays 3 sides (W, N, & E) and their joining corners, both edges are full.
D4 - Overlays 3 sides (W, N, & E) and their joining corners, left edge is angled & right edge is full.
D5 - Overlays 3 sides (W, N, & E) and their joining corners, left edge is full & right edge is angled.
E - Overlays all sides (N, E, S, & W) and all corners except SE.
The window dividers could be made even even more modular but work on this has been put on hold while we further discuss quartering tilemap tiles.
The edges are pretty self explanatory, “flat” are used on flat walls, “angled” are used on corner windows, “full” are used to extend the divider to the next tile (basically no edge).
Directional connections use the “Directional Adjacency Connector” script. Directional connectables, unlike most connectables, have a distinct front side and back side (ex. modular seats). They can be manually rotated in the editor and game due to this directional nature. Their default rotations are set to ‘north’. These directional shapes are defined below:
O - A variant with no connections.
Lin - An “L” type variant which, according to its design, bends inward.
Lout - An “L” type variant which, according to its design, bends outward.
I - A variant shaped like an “I” but rotated 90°, with 2 connections, 1 to the east and 1 to the west.
Uright - A variant shaped like a “U” but rotated so the only connection is to the east.
Uleft - A variant shaped like a “U” but rotated so the only connection is to the west.
Chapel Pews are the basic version of directional connectables as they do not have any corner (“L” shaped) pieces, in theory they could be added though.
The Diner Booth is an example of a more typical use of a directional connectable for modular seating as they include corner (“L” shaped) pieces.
The Sofa is very similar to the Diner Booth, but it’s also a good example of adding style variants.
Style variants are simply a variant with an alternate art style. The Sofa’s example is the addition of armrests.
The armrests by their nature are only required on the end shapes of the sofa (“Uleft” and “Uright”) and on the singular sofa shape (“O”).
Other examples of directional connectables that are not fully realized yet may include things like railings and fences...
Directionals can't connect to more than two neighbors. Once they are connected, putting any new directionals near them won't update them, unless a neighbor is disconnected.
When removing a neighbor, a connection is free, and the directional will look for other adjacent directional to form an eventual second connection and change shape.
When a directional has to change shape and has multiple options (LIn, LOut, I), the directional will choose shape in the following order:
I shape
Lin shape
Lout shape
This order is arbitrary, but it's necessary to define one as some cases are not well defined without it.
Advanced connections use the “Advanced Adjacency Connector” script. They are a direct extension to the ‘basic connections’, intended to solve the issue of gaps where the corners meet. This works by using the same shapes as the ‘basic connections’ in addition to some new variants for all shapes with possible corner connections (“L”, “T”, and “X”). These advanced corner shapes are defined below:
L2 - An “L” type variant with a connection in its corner, to the north east.
T2 - A “T” type variant with a connection in its southwest corner.
T3 - A “T” type variant with a connection in its southeast corner.
T4 - A “T” type variant with a connection in both corners, southeast and southwest.
X2 - An “X” type variant with a connection in its north east corner.
X3 - An “X” type variant with 2 adjacent corner connections, 1 north east and 1 north west.
X4 - An “X” type variant with 2 opposite corner connections, 1 north east and 1 south west.
X5 - An “X” type variant with 3 corner connections, north east, north west, and south west.
X6 - An “X” type variant with a connection in all 4 corners.
Plenum covers are part of the same prefab as the plenums. They cover the plenums and connect them together.
Carpets are a great example of a type of floor tile that can be stylized and designed to be connectable.
Carpets come in a variety of colors, all of which can connect to create some creative patterns.
Other floor types that may possibly connect are lava, grass, dirt, etc.
Tables are the iconic connectable that everyone loves from SS13. The ability to build an infinite number of possible shapes of tables is a truly satisfying feeling.
Tables also come in a variety of material-based types (wood, metal, etc.) and use unique specific types to prevent connections between these different material-based types.
Girders are basically unfinished walls so it seems fitting their generic type would be “wall” (see the ‘Walls & Windows’ section below for more details).
Girders come in a variety of material-based types similar to the tables, but unlike the tables, different girder types CAN connect to each other.
Walls and windows are very similar to girders, which makes sense as they are all “wall” by generic type. All 3 can have additional components (supports, struts, sheets, etc.) overlapping the primary model to give the effect of adding/removing parts via construction (more info can be found in the construction documentation).
In most cases, these additional components will inherit the same adjacency connector as the primary model (advanced) due to the fact that most of the components are the same complexity or simpler.
One notable exception would be the ”window dividers” component. This component is a bit more complex in order to get window dividers to connect properly (see the Window Divider Adjacency Connections for more details).
Another exception is the “door frames” component. This component bridges the gap between walls and airlocks, smoothing the transition and giving the appearance of something for the airlock to reside within (see the Airlock Tile Adjacency Connections for more details).
Disposal connections use the “Disposal Adjacency Connector” script. Disposal connections are based on the basic connections and are similar to the other pipe connections. The disposal models themselves actually reside beneath the floor that the player walks on.
There is no need for the traditional “O” or “U” shapes but there are some unique “U” type shapes (see below). The “I” and “L” shapes act the same as they do in the basic connections.
The “T” shape acts the same in principle as well but is accompanied by arrow overlays. Due to the nature of disposals (objects travel through them), “T” shapes have a designated ‘exit’ connection side to determine which direction the object paths join into. This direction is represented by the arrow overlays (more info in the disposals documentation).
There isn’t a significant need for the “X” shape either but we do have one modeled and in theory the same directional arrows could be made for it to work the same as the “T” shape.
The unique disposal shapes are defined below:
Vertical - A special “U” type variant which connects to the north as well as turning upward and connects vertically to above-ground disposal machines. Pipes & wires cannot exist on a tile with a vertical disposal due to major clipping.
Vertical pipes only connect to pipes directly in front of them.
Broken - A special “U” type variant which replaces a variant when it gets abruptly destroyed (more about this below).
When a disposal pipe variant gets destroyed, instead of alerting nearby connections that there is no longer a connection at this location and to update their own shape as a result; we maintain connections to this tile and replace it with 1 broken variant per undestroyed connection.
Another interesting trait about disposals is that they can overlap each other in one specific situation.
This works easily in 2D but in 3D we do not have the additional space to actually have one disposal pipe go beneath the other.
Because we don’t have the extra space in 3D, our plan, as goofy as it may look, is to simply resort to allowing the disposal pipes to overlap and clip through each other in this specific situation.
You’ll notice the difference between the overlapping pipes and a true junction is that the overlapping pipes are missing the support rings near the intersection. (Alternatively we could design a new model for this overlap).
Work In Progress
This is the menu to change the setting in the middle of the round.
It has the regular settings one would expect form the 3D game, such as graphical tweaks:
Sound volume levels and sound-related settings:
Another, slightly more styled design:
And another but for the controls page:
Wire connections use the “Wire Adjacency Connector” script and, like the name implies, are unique to just wires. Wire connections are some of the most unique types of connectables. Wire connections can have several variants on a single tile, can cross over each other, and even have diagonal variants.
The “O”, “U1”, “I1”, and “L1” shapes here are the same as the basic connectables but the rest are unique and defined below:
U2 - An odd “U” type variant which has its connection to the northeast instead of to the north.
Broken1 - A special “U” type variant. Simply a broken version of “U1”.
Broken2 - A special “U” type variant. Simply a broken version of “U2”.
V - An odd variant which has 2 connections, at adjacent corners, by default the northeast and northwest respectively.
I2 - An odd “I” type variant which has 2 connections at opposite corners, by default the northeast & southwest respectively.
L2 - An odd “L” type variant which has 2 connections, 1 to a side and 1 to an adjacent corner, by default the north and northeast respectively.
L3 - An odd “L” type variant which has 2 connections, 1 to a side and 1 to an adjacent corner, by default the north and northwest respectively.
L4 - An odd “L” type variant which has 2 connections, 1 to a side and 1 to an opposite corner, by default the north and southeast respectively.
L5 - An odd “L” type variant which has 2 connections, 1 to a side and 1 to an opposite corner, by default the north and southwest respectively.
Wire connections do not have “T” or “X” shapes, but instead they create these shapes by using multiple “L” shapes that are on the same tile that are rotated accordingly.
Wires can cross over each other similar to pipes, but wires can do so in many configurations.
A cross over is anywhere wires clip through each other in the middle of a tile. They are technically still isolated circuits until properly connected.
Properly connecting wires is done by having 2 (or more) wires connect at the same connection point. With 8 connection points (4 corners & 4 edges), there can be up to 7 wires connecting to the same point on a single tile.
Wires also come in a variety of color variants. Different colors can connect and cross, the only real issue with this is that the clipping of models is more noticeable when using multiple colors.
Wires, like pipes, can also be destroyed and will leave behind broken ends in any direction there is a connection.
The system for connectable tilemap objects.
For technical documentation on this system use the link below.
Connectables are a sub-system of Tilemaps which use adjacency connection scripts to replace models depending on the status of neighboring tiles.
This works by using several differently shaped models and replacing them depending on any adjacent tiles with the same type of connectable (see the Tilemap document for more details).
Different types of connectables have different ways they allow or don’t allow connections.
As a result, we use several unique mathematical scripts known as “adjacency connectors” to handle the connection logistics.
Types of connectables are manually defined by an ID known as a “generic type” (ex. wall, table, wire, cable, etc.). When properly assigned, this ID makes sure different types of connectables properly connect to themselves but not other types of connectables.
In addition to generic types, some connectables may even have a “specific type” ID. The specific type is used to distinguish different variants of the same type of connectable. The best example is having multiple material-based table variants (wood & metal), the specific type could be used to prevent connections between different variant types while maintaining connections between the same variant types.
It should also be noted that objects will only connect if they are connected to the tilemap, removing them from the tilemap will disconnect any connections to it. Some objects can be bolted to / unbolted from the tilemap (tables, girders, sofa, etc.), while others also have ways to be attached / detached to the tilemap.
Counter connections use the “Counter Adjacency Connector” script. This script is very similar to the basic adjacency connections but has a couple of unique shapes that are specific to counters. The basic shapes “O”, “U”, “I”, “L”, “T”, and “X” are all the same from the basic connector. The unique counter shapes are defined below:
U2 - A “U” type variant that is shortened. The reason for this is it can be used to connect Counters to Walls.
Door - A special “I” type variant that can be rotated to allow it to open.
Door Frame - A special “I” type variant that is used with the Door variant (on the same tile).
The combination of wires’ unique properties allows for some really creative combinations which is infamously known as “wire art” in ss13 (the images below are great examples).
How things are built, specifically.
Even within the sections below, the construction processes may vary depending on the object type. For example the construction recipes for a metal wall will be different from a wood wall or rock wall.
Current recipes may not be final.
Have a material and a tool in hands
Apply tool to material
Select an option in the menu
Wait for build to complete
Drag the frame of the object to the desired place (optional)
Attach the object to the grid by applying a tool to it
Apply materials and tools to complete the object
For furniture building it's even more simple, as most furniture works even without being fastened or bolted to a tile, not to mention that some furniture is built right away, without the need to make a frame for it first.
Airlocks are built like most machines, starting with a frame which is bolted to the ground, then materials and components are added.
Airlocks can be merged together up to 3 tiles long. They need to merge in the construction phase. Once the door is completed it wont be able to merge with others and will prevent other door skeletons from being bolted next to it.
Example: To build a 2 tile door, you'll need to build 2 door skeletons side by side, wrench them both and they will connect, then you can finish building the airlock.
Disposal furnitures don't change meshes when they connect to a disposal pipe, however, they should signal to disposal pipe just below them, when they have a single connection, that they need to update and become a vertical pipe.
Upon removal, they should signal to the disposal pipe that they can update their mesh to an horizontal one.
Activating an object implies different things depending on the object you're trying to activate.
(add more here)
(examples)
In many cases in SS13, when a machine is destroyed it reverts back to being a machine frame and drops all its components. In other cases the machine vanishes entirely, this is a not consistent and not acceptable for us. We need something more immersive and I'm going to take some inspiration from CDDA.
In CCDA when an object is destroyed it checks the list of items used to construct it and drops a % (with some rng) of these items. So if a wall was built with 6 wood planks and 12 nails, it may drop 2-4 planks of wood and 4-10 nails when destroyed.
I think in most cases we should NOT revert back to the previous construction state for destruction (except for like walls), we should instead use damage states and then finally destroy the primary object and leave behind some components like CDDA. To expand on the idea I think we should also drop physical debris relating to a % of the missing (destroyed) components. So in SS3D if we have something built with 4 pieces of sheet glass, when destroyed it may drop 1-2 glass sheets, and 1-2 glass shards. We can add-in particle effects when the object changes states to destroyed and then again when it gets destroyed.
In SS13 (TG) there are glass shard objects. These are dropped when a window or other glass object is broken. I want to expand this trait to all materials, so there is a damaged/broken variant of steel, wood, cloth, cardboard, uranium, diamond (maybe not this one), etc.
Yes, these objects will just be tossed down the disposals by the janitor most of the time, but they also may have more uses based on these ideas: - Trash PilesITEMS - Makeshift Tools/WeaponsITEMS (NEW) (glass shards are already used in some makeshift recipes, why not other damaged material variants like a 'metal chunk') - Actual Recycling?OTHER
Using tools (like a welder/screwdriver) to fix objects back from a damaged state. Also ghetto repairs like using tape/glue to cover a cracked vending machine. If that stage of damage accounts for 20% of the vending machine's health, then doing a ghetto repair on this stage would only attribute half of that (10%) but would still make the machine functional.
Blueprint idea (not the same blueprints that the CE has): select an area and all the tiles/fixtures in the area will be saved to a file on your real-world computer.
You can load that file into a blueprint projector, which will make a hologram of the saved tiles/pipes/wires/machines/etc.
'Smart RCD' will automatically deploy the correct floor/wall/pipe/wire when used on a hologram, provided it has the materials. This way you can save builds you spend a while on and deploy them more rapidly in other rounds Furniture and machines still have to be built by hand though Maybe the chief engineer's office has a premade blueprint for each department, to make rebuilding easier Admemes could have a special blueprint projector that autobuilds the whole blueprint.
Requires:
Pipe connections use the “Pipe Adjacency Connector” script. Pipe connections are based on the basic connections and are also similar to the disposal connections.
Pipes have 4 layers, the first 3 layers reside in the plenum below the floor with the disposals, while the final layer rests just above the floor.
You’ll quickly notice that pipe layers 2 & 4 are centered, while layers 1 & 3 are offset. Due to the offset nature of layers 1 & 3 they require additional model shapes and use a more complex connector script (see the “Offset Pipe Adjacency Connections” section below).
Pipe Layers 2 & 4 work just like basic connections (“U”, “I”, “L”, “T”, and “X”) with one exception. This exception is defined below:
Broken - A special “U” type variant which replaces a variant when it gets abruptly destroyed.
Similar to disposals, 2 “I” shaped pipes can cross each other perpendicularly. Although they are clipping through each other, they are not joined like an “X” shape.
Unlike disposals, pipes have another overlapping property. 2 “L” shaped pipes can coexist on the same tile as long as they are oriented opposite of each other. (In SS13 the pipes clip in this situation but we designed our models to prevent clipping here.)
Offset pipe connections use the “Offset Pipe Adjacency Connector” script. Offset pipe connections are based on the regular pipe connections and exist on pipe layers 1 & 3.
The primary difference between the pipe and offset pipe connections is what the name implies, the offset pipes are offset. Due to them being offset, they cannot simply be rotated for different orientations. To solve this, we use additional models for the different orientations. These offset shapes are defined below:
U1 - A “U” type variant which connects to the north OR west (rotate 90°).
U2 - A “U” type variant which connects to the south OR east (rotate 90°).
Broken1 - A special “U” type variant which connects to the north OR west (rotate 90°).
Broken2 - A special “U” type variant which connects to the south OR east (rotate 90°).
I - A regular “I” type variant which connects to the north and south OR east and west (rotate 90°).
L1 - A “L” type variant which connects to the north and east (not meant to be rotated).
L2 - A “L” type variant which connects to the north and west (not meant to be rotated).
L3 - A “L” type variant which connects to the south and east (not meant to be rotated).
L4 - A “L” type variant which connects to the south and west (not meant to be rotated).
T1 - A “T” type variant which connects to the south, east, and west (not meant to be rotated).
T2 - A “T” type variant which connects to the north, east, and west (not meant to be rotated).
T3 - A “T” type variant which connects to the north, west, and south (not meant to be rotated).
T4 - A “T” type variant which connects to the north, east, and south (not meant to be rotated).
X - A regular “X” type variant which connects to all 4 cardinal directions (not meant to be rotated).
What's also to be considered:
Pipe Machinery Adjacency Connections
Transit Tube Adjacency Connections
People need to communicate with each other, the station needs to have a way to request supplies, security needs to share security info quickly but securely, AI and cyborgs have a unique way of communicating, and of course the spies and traitors are always on the lookout for some juicy rumors and corporate secrets. This just asks for an advanced communication systems with several points of failure.
The ideas of localized relays were proposed, where player could disrupt comms in one area of the station and it would take a while before people outside realize..
The construction process for walls/windows may vary depending on their type. And these current recipes may not be final.
In any case, the wall starts with a metal wall girder. It's like a frame for a wall to be filled with metal or glass to be completed. It can be made on a spot, if player character has metal rods or what have they in one hand and a tool for connecting them in the other. Applying a tool to the materials (dictated by the crafting recipe or a choice in the opened menu for building) results in creating a physical, always upright metal girder in front of the player.
It can be dragged or pushed to be relocated to a different location. It is even connectable, meaning it can attach to nearby objects of the same type (other walls). In order to be connected to the other walls, it needs to be bolted to a tile, adjacent to the other object of the same type. Player just needs to drag the girder to the nearest wall, place it near the center of the needed tile and bolt it using a wrench.
From that point onward it can be upgraded to an actual wall or window. This is recommended because a girder isn't pressurized and wont hold in your atmosphere, or stop fire from spreading, etc.
Reinforcement and other forms of modifications should also be built on the same principle.
Like all objects in this game, many walls have unique properties. Natural rocks walls are easily destroyed via many tools in the game, yet cannot be built rebuilt.
Accessing an object implies different things depending on the object you're trying to access.
Does it?
(add more here)
(examples)
Circuits allow objects to be logically connected together, a circuit does not necessarily need to be powered, it’s main function is connecting objects together across the station. For example a circuit could connect a collection of solar panels together to a Solar Panel Controller (SPC), the solar panels themselves do not actually generate watts, however by being connected to the SPC via a circuit the SPC can then itself output watts onto another circuit.
Circuits will be physically connected together via wires, however they can also be connected together logically if it’s required, for example the lights in a room might be apart of a circuit in the room but do not have literal wires reaching to them, and are instead connected “through the air” to a junction box which is physically connected to wires. (The actual implementation of deciding what objects should connect to what APCs, and how it should interact with the player is not a part of the immediate scope of this proposal, only the immediate functionality of the APC is being considered here.)
Switches are one example of an object which can be used to separate two circuits, the object itself only allows each circuit to be connected to one another when it is engaged. For this reason it must be easy to logically connect circuits together via links such as switches.
A producer is responsible for putting some wattage of power onto the circuit it is directly connected to, an example of a producer is a Solar Panel Controller (SPC), which itself will be connected to multiple solar panels. However in the actual implementation the solar panels themselves will be the energy producers. But for the sake of the example the SPC could produce a different wattage depending on how many solar panels it is connected to, and the direction of the solar panels.
Objects will be able to quickly and easily query information about its circuit, such as the amount of connected solar panels through a function such as: connectedCircuit.GetAllOfType<SolarPanel>()
A consumer will have some wattage of power it requires to operate, for example a light might need 10W of power to operate, and if it doesn’t receive more than 10J/s of energy it will fail and start flickering, then after a moment it will turn off completely until it receives power again.
Consumers on a circuit share the energy on the circuit, if a circuit has 100W of power available, each object on that circuit will reduce the available watts, if the circuit has two lights which each consume 10W then the energy available decreases to 80W (80J/s).
A battery is a special object, it is both a consumer and a producer in one. When the battery's connected circuit has excess power, for example a 100W circuit with 80W free, it will consume the excess power up to its wattage intake. A battery for example may be able to consume 200W of energy, but in this case it only has 80W available. Unlike other consumers the battery does not fail when its actual energy intake is under its required intake (200W). (In this case it's less of a required intake and more of a maximum intake.) The battery then converts the watts into energy which is stored internally, for example a battery might store 10kJ of energy.
When the intake wattage becomes negative, for example maybe the power goes off and our two lights are now on a circuit with -20W, the battery switches from a consumer to a producer, it uses its internally stored 10kJ of energy and puts it onto the circuit. The battery will output as much power per second as is required to keep all the components on the circuit powered, if the circuit requires 20W the battery will output 20W, at this rate the battery is consuming 20J/s of its stored energy and will use its entire 10kJ of storage in 1000 seconds.
Add something later
There is a variety of things one can make with a welder and some metal rods. From floor girders to wall girders to a machine frame. So, when the materials and tools allow for several options of constructions, the player must be presented with choice. This will be done via construction menu:
This menu should include a list of possible structures according to the materials/tools available. The list should include a name and picture of each object.
Clicking on an object in the list should provide more information on the object like description, required materials and tools for construction as well as deconstruction.
Also, the structure's model with applied holographic shader will be displayed, attached to the closest adjacent tile to where player is standing and facing. Green shader for when the tile is free and red if it's not. Player character should be able to move while choosing the construction tile and the shadered model location should be updated according to the rules above. Player should also be able to rotate the structure if necessary, and also to quickly disable construction mode in case of an emergency. And, obviously, when location is available, player should be able to confirm the chosen location.
Once the location is chosen, the character should play a crafting animation, resources should be expanded and a bunch of smoke and particles should be played to obscure the change from empty space to the freshly built structure.
Player roles.
For technical documentation on this system, use the link below.
SS3D focuses on a dynamic that is primarily between players. Aside from a few basic mobs, this game features very few NPC’s. Instead, the well-being of the station hinges completely on the competence of the crew members, and the antagonists who put it in danger.
Victory for each player can mean something completely different depending on who – or what – you are. This is because each player occupies a specific role that contributes in some way to the environment around them. In this section, we focus on the types of roles the players will be occupying.
Airlock connections use the "Airlock Adjacency Connector" script. Airlocks are a (special) type of wall and thus connect to all types of walls and other airlocks based on requirements.
Airlocks connect to walls on either SIDE of them. Airlocks ignore connections in the front, back, and corners. If both sides ARE connected, the airlock becomes operational. If a wall on either side is destroyed or severely damaged, the airlock stops being operational.
Door frames are a required component when an airlock connects to a wall. Sometimes referred to as "wall caps". It is a small piece of wall that covers the connecting "gap" of the wall because the airlock does not have the same dimensions as the gap to cover it itself.
Door frames themselves come in different material types based on the types of walls. The type of door frame used is dependent on the wall type it is connecting (metal door frame for metal walls, wood door frame for wood walls, etc.).
This sub-section may not be final.
Door caps are similar to that of door frames because they also are meant to fill the gaps left by doors. Door caps fill the gap between the top of the door, and the ceiling.
Door caps will likely be based on the connected wall type (not sure how to decide what type if the 2 airlocks on either side are different types) or airlock type. While some special airlock types may not require a door cap.
The example above is a static option but some people are not fond of it because it blocks the view of the airlock itself a bit and if you are a player and you open the door and stand in the open doorway, the door cap will obscure you or items behind it. One way to prevent this would be to use a cutout-shader on walls and also door caps, but another way is to simply make a retractable door cap like the example below. The difficulty here is making something to blend with the wall type and the airlock.
This section may not be final.
Same as when connecting to walls, airlocks can only connect to other airlocks at their sides. This means that you must ensure both airlocks are rotated correctly for them to connect. Additionally, airlocks can only connect if they are the same base type.
Actually, airlocks don't "connect" to each other per se, rather once these conditions are met, they instead join as one object (in-game this will require the user to weld two airlock frames together to construct). They become a multi-tile airlock, and because of this are limited to 2-3 airlocks "connected" at time (based on airlock type).
Airlocks because of their nature of being doors between different rooms, may be bridging two rooms with different floor tiles. Due to this, it is hard to determine what floor tile a airlock should have beneath the airlock itself.
To resolve this we use a special floor tile for airlocks. It consists of two half tiles split with a metal track that the airlock slides on. The half tiles will use the texture based on the adjacent floor tile to blend the floors together at the doorway.
The only issue with this is that certain textures will break (wont tile properly) if you rotate the floor tile due to its custom UV. To prevent this we actually will use 2 airlock floors tiles, 1 for airlocks facing east/west and 1 for airlocks facing north/south.
Crew members should have the ability to alter, fix and or dismantle the structure of the station, that's where the Construction system comes in.
Which means that any person should be able to create or interact with walls and floor and ceiling of the station, should they have right materials and tools. The mane philosophy is allowing the player to affect the structure with a simple click of a mouse.
Rules of connectables apply.
Stations are like onions. They have layers.
The bottom layer is Plenum; the base structural layer. All the other layers are built upon this one. The plenum layer can have a few different models here like lattice and catwalk, but the main one is the plenum. This main model much like the layer it shares a name with is the core of the station's structure. Many things can be built on top and within the plenum.
The plenum has room for 3 layers of atmos pipes and 1 layer for the large disposal pipe.
Immediately on top of the plenum layer is the wires layer (this may get lowered slightly down into the plenum)((we may triple this up at some point like /tg/). There's 2 main types of wires at the moment. Wires and Cables. Cables are basically the heavy duty wires.
Above cables there is 1 layer for floor tile, 1 for atmos pipes, a couple for furniture, a few for floor overlays, and 1 for walls. On wall, there are 3 layers of wallmounts (times 4, 1 for each cardinal direction). [[[add more recent image below]]]
Floors are a layer made to support furniture, walls, and even the captain's fat ass.
Walls are pretty self-explanatory: it limits the room, seals and insulates the rooms from the sides and supports ceiling:
NOT IN THE CURRENT ROADMAP but it's fun to conceptualize the idea of possible z-layers for the station itself.
The power system is the system that connects and grants functionality through electricity to all aspect of the station.
It’s primary purpose is to be a link between objects which produce power and objects which consume power. It is additionally be responsible for the events related to power, such as when a component's power is lost or when it is reconnected. At any time a power consuming or producing object will be able to easily access the electrical information such as available watt’s (or joules per second).
The physics implementation has been partially inspired by a popular simulation game, Oxygen Not Included (ONI). You can find a brief description of the power system in ONI here.
The power system will be described electrically with two components, Watts and Joules. The relationship between them is:
In other words, 60W = 60J/s. Watts and joules are different physically speaking, a joule is a measure of energy (or work) used when doing something, and a watt is a measure of how many joules you are using over time (Joules / s). If your microwave says it uses 900 watts then it is consuming 900 joules per second to heat up your microwave dinner. Therefore we can describe electrical relationships really simply and effectively, for example a 60 watt light bulb operated for an hour will use 60J * 3600s = 360kJof energy.
The power system will consist of any amount of circuits which allow the connection of producers and consumers, the circuit will be made up of continuous wires and likely Area Power Controllers (APC’s), an APC is a special object which connects to a wire on one side and allows for the wireless connection of energy consuming components to the electrical circuit.
The electrical wires will be able to be damaged, repaired, cut, and reconnected. If a wire is damaged too much it will become cut, a player or script can also cut wires. When a wire is cut or reconnected the circuit/s will be updated and refreshed. All objects on a circuit are instantaneously and logically connected to one another, the entire circuit is one logical object and has some given wattage based on its producers and consumers.
The station will be made of several circuits which logically separate objects based on geography and power consumption, circuits can be subdivided through objects such as transformers or other objects. A transformer will allow for a high wattage circuit to be subdivided to a low wattage circuit (i.e. a 2000W circuit connected to several 500W circuits)
Being a being.
Mobs, beings, entities, whatever you want to call them. The entities in Space Station 3D come in many different character types and roles, both which help to make the environment feel more full and diverse.
Crew roles are the "Jobs" on the station, these roles sometimes vary greatly and specialize in different things. They are categorized into departments in the subpages.
To keep the station orderly and running coherently, you can expect that any station, no matter how different from another, will have a chain of command.
The chain of command is issued by rank, with every crewmember given a rank depending on their status. Ranks are ordered so that the lowest number is the highest rank and vice versa.
Rank # | Rank Name | Roles |
---|---|---|
0
Executives
NT Administrators
1
Commander
Captain
2
Skipper
Head of Personnel
3
Department Heads
Department Heads
4
NT Staff
NT Staff
5
Station Staff
All general staff
6
Station Assistants
Assistants
7
Non-Staff
Tourists & such
8
AI(s)
AI(s)
9
Sub-Silicons
Cyborgs, drones, etc.
-
Prisoners
Prisoners
The command department is a leadership department which consists of 1 leader from each department. These department leaders have special permissions and access. They can access the command bridge and use various command-only equipment. They also have their own private offices tucked inside of their respective departments.
As a compliment to any good protagonist, antagonist roles also exist on the station. Many antagonists are capable of existing at the start of rounds, or can appear in the middle of the round as well.
Antagonists (aka Antags) are categorized into 2 main categories; primary and secondary.
Primary Antagonists - usually more detailed with more complex abilities and goals. They are designed to have a large impact on the round, and as such, they are usually only spawned at the start of a round.
Secondary Antagonists - usually more basic with less unique abilities and goals. They are designed to have little impact on the round, and as such, they are usually only spawned in the middle of the round.
That being said, primary antags can be spawned mid-round and secondary antags can be spawned at round-start if the admins choose to do so.
Nanotrasen (NT) is the corporation that owns the space stations and others like it.
Although all crewmembers are technically employees of the Nanotrasen, most work for a specific station rather than directly for the corporation's headquarters.
Quantity for these roles is likely just 1 unless stated otherwise.
Since NT Administrators work directly for Nanotrasen and have high authority in the company, their authority supersedes all crewmembers of the station, including the captain. It is unlikely they will do so though, unless the captain in being unreasonable.
Nanotrasen Representitive
Nanotrasen Death Squad - (quantity 3-5)
These roles can be more flexible according to the roleplay of that round, being made up on the spot even.
Some ideas:
Nanotrasen Law Enforcer - op security officer
Nanotrasen Medical Technician - op medical doctor
Nanotrasen Civil Engineer - op engineer
Nanotrasen Safety Officer - makes sure the station is clear of common dangers and hazardous work environments (lol)
Nanotrasen Health Inspector - checks to makes sure the food is grown, cooked, & served in a sterile environment and is poison free (lol)
Nanotrasen Lawyer - a lawyer with a nicer suit. for when the station needs a lawyer for a court case but doesn't have one, or some rare instance of diplomacy between space factions.
Nanotrasen Magician - or some other kind of entertainment role similar to that of clowns or mimes, with a few basic special abilities (built into their gear). They may come with a "Magician's Assistant" role as well (to play along with the allusions).
Secondary antagonists are usually more basic with less unique abilities and goals. They are designed to have little impact on the round, and as such, they are usually only spawned in the middle of the round.
Blobs are a station-eating blobulous mass that intends on feasting on the station everyone inhabits. The goal for the blob is simple: consume. As a blob, the player must choose a location for the core of their body to spawn, from which point the blob will begin to spread.
Spreading into occupied tiles will destroy the tile. Performing actions as a blob costs resource points, which generate over time. The player can choose to allocate resource points to lay down specialized blob tiles, as well as production of smaller allies that can travel and deal damage.
For a comprehensive list of the blob’s abilities, see here. Biologically, not all blobs are alike, and each blob may have different attributes depending on its strain. For a list of blob strains and how they react, see here.
Victory for the blob occurs when the blob reaches its goal for the number of tiles occupied.
We will write up more details about some of these or just link to SS13 wikis about them later. Not crucial right now.
Gray aliens who abduct crew members for experimentation.
Chest-bursting aliens who serve the queen.
Giant spiders who want to turn the station into a nest.
Self-replicating robots that eat all the station’s resources.
Phantoms who aim to exact vengeance on the station.
Morphs, creatures that can look like anything, and just desire to eat.
Shadow creatures who aim to destroy all lights on the station.
Space ninjas which utilize stealth and deadly force to fulfill objectives.
Slaughter demons, which simply aim to kill everybody.
Pirates that strive to steal any and all things valuable.
Sentient diseases which aim to find a way to spread off-station.
Fugitives which use the station as their refuge from…
Hunters which storm the station to find fugitives.
Space dragons which aim to fill the station with space carp.
Sentient slimes who may or may not be aggressive.
Rat kings, who want an army of rats. And cheese.
When your character dies, the soul of your character lives on in the spirit realm. You can move around as the soul (ghost) of your character and chat with other ghosts while spectating the round.
If you are lucky that your character's body may be revived then you can always re-enter your body and live as that character again/still.
If you do not believe that your character has any hope of living again, you can choose a ghost-role if there are any available.
Ghost roles refers to roles that are made available mid-game. Obviously players who already have a role and are still alive in the game have no reason to become a new roles. Only players who have died and become a ghost (or decided to spectate for other reasons) will be granted the option for these mid-game roles, hence their name "Ghost Roles".
Ghost roles can be any typical role like a crewmember, but they can also be antagonists or even simple characters like animals.
Characters are the different types of entities. Basically all forms of life, both organic and artificial. This includes:
Humanoids
Animals/Creatures
Cyborgs/Robots
AI/blob
Vehicles (yes even vehicles are considered entities because they are driven by humanoids the way the brain/soul "drives" a humanoid body. vehicles can also be autonomous)
Players can control essentially any entity in the game, to different extents. But most of the time, most players will be playing as a humanoid, while the others are less common for various reasons.
NPCs can also control essentially any entity in the game given we are able to program some decent AI for it.
Though the traditional game flow of SS13 doesn't require NPCs for humanoids, cyborgs, AI, or blob; because these roles are able to be filled by players.
Based on the traditional game flow, we only need NPCs for animals/creatures and robots.
Later in development it would be nice to have AI for the others though as to expand gameplay options or even able to player solo/small stations.
Let’s get one thing straight: space is dangerous.
The depth of the health system will vary depending on the species of the character. Simpler entities may not have all of the following systems, for example it would be a waste of resources to simulate organs or blood for something tiny like insects.
The health system documented here assumes we are referring to the primary character type, humanoids, unless otherwise stated.
Add info about how different types of NPCs are expected to behave.
animals/creatures
robots
humanoids?
cyborgs?
AI/blob?
Primary antagonists are usually more detailed with more complex abilities and goals. They are designed to have a large impact on the round, and as such, they are usually only spawned at the start of a round.
Traitors are the most basic and classic of all antagonists, but by no means is it easy. You secretly work for your station's rival corporation, the Syndicate. It is your goal to complete whatever objectives they have requested of you.
At the beginning of your job, you are given objectives you must fulfill, and an uplink you can use to spawn illicit items using a limited number of points. Traitor objectives can be anything from theft to murder. Traitors on the station are not only just traitors, but also whatever job they picked at the start of the round.
A scientist traitor will have a completely different set of tools at their disposal compared to a janitor traitor, putting victory at higher or lower difficulties depending on who you are, what your objective is, and how resourceful you can be.
In order to claim victory as a traitor, you must fulfill your objective, and survive until the end of the round, outside of captivity (ie. you cannot be in jail, and you cannot be turned into a cyborg.) That is, unless one of your objectives is to die a glorious death…
Nuclear operatives are composed of a number of individuals whose main goal is to blow up the entire station using, you guessed it, a nuke. There’s only one problem; they must first locate the nuclear activation disk, which lies in the hands of the station's captain.
Similarly to traitors, nuclear operatives are also employed by the Syndicate corporation and thus have access to the same set of syndicate tools and weaponry. Usually syndicate get many more points and equipment options to use though.
Also, these antagonists work together as a squad, and will often create plans with a lot of high-octane action that usually ends in a bloodbath. Nuclear operatives are arguably the most dangerous thing that can happen on board the station.
We will write up more details about some of these or just link to SS13 wikis about them later. Not crucial right now.
Changelings who can alter their appearance to achieve their goals.
Malfunctioning AI with altered laws.
Cultists who aim to summon an ancient deity.
Revolutionaries who aim to drive a mutiny to overthrow the department heads.
Renegade wizards without a cause.
Gangsters who pit the crew against each other.
The messy inner workings of man.
Humanoids with organs can also suffer damage to specific organs, separate but still connected to the other damage types. To analyze organ damage, you need a health analyzer equipped with an organ scan upgrade, which will assess damage in these relative terms:
1-9: "Minor"
10-29: "Moderate"
30-64: "Significant"
65-99: "Critical"
100 and above: "Dead"
Usually, "Significant" and "Critical" are the most important ratings, for some organs cause extra problems upon reaching the "Critical" damage threshold.
If left untreated, these problems can cause the organ to fail completely and die, resulting in the same effects as lacking one. Dead organs cannot be healed back to full health and thus require transplants.
Below is a breakdown of players’ organs, and what they do.
While it may seem like a lot, the majority of the organs perform their functions by simply existing. It’s when the organs fail, die, or go missing, is when the effects kick in.
Organ failure occurs when an organ sustains 65% damage. Upon failing, the organ will slowly deteriorate, and eventually die, at which point a transplant is needed.
Organs | Function | Injury/Failure |
---|---|---|
Brain
Controls all motor functions – speech, movement, and consciousness.
Reduces functions. Kills the player if the brain is dead.
Eyes
Allows the player to see.
Various degrees of visual impairments. Blurriness, blindness, etc.
Ears
Allows the player to hear.
Tinnitus, deafness.
Tongue
Allows the player to speak and taste.
Mute and loss of taste.
Lungs
Heals oxygen damage, as long as it's intaking enough O2.
Lung failure or removal deals oxygen damage over time.
Stomach
Allows players to eat.
Failure or death prevents the player from eating.
Intestines
Allows players to digest foods and absorb reagents.
Failure removes the player’s ability to absorb sustenance from food or reagents.
Liver
Depletes chemicals in the body, occasionally soaks up 1/12 of sustained toxin damage.
Liver failure or death causes fainting, halves the rate of chemical depletion, and deals toxin damage over time.
Kidneys
Having kidneys prevents not having kidneys.
Kidney failure or death deals toxin damage over time. Both kidneys dead or missing reduces chemical depletion by 50%.
Appendix
Small chance of causing appendicitis.
Failure may cause the appendix to explode, causing disease or major toxin damage.
Spleen
Regenerates blood.
Failure or death prevents the body from regenerating blood.
Pancreas
Depletes sugar in the body by producing insulin.
Failure or death stops pancreas from producing insulin. (Sugar in the body exceeding 200 units may cause a diabetic coma.)
Lungs are the organs interfacing between the atmospherics and circulatory systems. They intake gases, including oxygen, and transfer a part of it into the circulatory system.
Lungs have a specific rate at which they do this intake. If the equilibrium between amount of oxygen needed by body parts and amount of oxygen available gets negative (e.g when too much blood is lost or when oxygen in air is low), then the intake rate may increase.
Lungs are working independently from each other, meaning a human can survive with only one lung left, even though it will be able to intake only half the amount of oxygen it needs, and so will have to breath two times faster.
Humans are made of a lot of stuff.
The health system is composed of many different and optional complex systems, which we will divide into Body Layers and Body Parts from now on.
One of the main systems of any biological character is the system of their tissue layers. Humans are generally made of muscle, connective, neural, bone and other types of tissues, each providing different functions and having different ways of being affected by the outside world.
Body Layer | Descryption | Function | Injury/Failure |
---|---|---|---|
The circulatory system makes the heart pump the blood through the organism; blood goes through various organs in the torso and distributes oxygen and nutrients to other body parts, so the root of the system should be located in the Torso and depend on the heart.
This also means, that if the intermediate link in this hierarchy is damaged, the child link should have less blood delivered as well as the damaged part itself. The easiest way to imagine it is to think of it as a number of interconnected containers.
The nervous system is also connects all over the body, but the hierarchy is different:
Which also means that if the intermediate link in this hierarchy is damaged, the child link should have worse chance to provide sensory information or receive a brain's command to function as well as the damaged part itself. That means that if the NERVES are severed in some body part, it’s connection to the brain is lost along with the parts that are lower on the hierarchy. If NERVES for the body parts are damaged, the character’s ability to make precise movements is damaged as well, to a point of losing control of the body part completely, depending on the severity of the damage.
Below is a breakdown of players’ body parts, and what they do.
Body Part | Function | Injury/Failure |
---|---|---|
Hands
Allows players to interact with most of the world.
Loses their function.
Arms
Connects the body to the hands.
Loses their function & connected hand's function.
Feet
Allows the player to walk and run.
Loses their function
Legs
Connects the body to the feet.
Loses their function & connected foot's function.
Head
Contains several organs including the brain, eyes, ears, & tongue.
Injury may damage the organs. Severing will kill the organs.
Torso
Contains several organs including the lungs, stomach, intestines, liver, kidneys, spleen, appendix, & pancreas.
Injury may deal damage to contained organs.
Tail
Provides balance.
Causes genetically-tailed creatures to occasionally fall over & struggle running if severed.
MUSCULAR
Layer of skin, fat and muscle. Easiest to get to through surgical access.
Provides motoric function and registers sensory information.
Damaged body part and it's organs lose function.
SKELETAL
Layer of bones and gristle. Deepest to get to through surgical access.
Holds body together, prevents mutilation, generates small quantity of blood.
Enables mutilation.
CIRCULATORY
Layer of blood vessels. Connects to all layers and organs. Source: Heart (Head).
Provides all layers, body parts and organs with oxygen and nutrients.
Enables bleeding (see Blood (add link later)).
NERVOUS
Layer of neural tissue. Connects to all layers and organs. Source: Brain (Torso).
Provides player control and receives sensory information.
Removes sensory information and function of affected part.
Humanoids on the station are varied, and make use of a flexible character customization system. The vast majority of humanoid characters are actually player-created, and each player can save and load characters to play throughout different rounds of the game. Players may also opt to go for randomly generated characters, if they don’t wish to spend time creating their own.
When creating a custom character, players have access to a range of customization options, including sex, hair style, hair color, skin color, eye color, facial hair style, eyebrow style, jaw width, height, and other bodily proportions.
In some cases, the player may also change their species from human to lizardman, or moth person, and so on. (Implementation of non-humanoid species are not out of the question, but have developmental hurdles that may need to be crossed in order to make them function, such as new sets of animations or custom-fitted clothing.)
In regards to clothing, players will often be swapping between various articles depending on the circumstances that arise on the station. Clothes can give different abilities and perks, depending on the clothing.
A space suit influences the player’s ability to survive a vacuum, whereas insulated gloves may be needed to handle electrical elements. A hardsuit may be more protective against hazards than your undies, but you’re definitely able to run faster in your undies. And when players aren’t dressing for the job, they can simply dress for fashion instead.
Death in SS3D is certainly an affair, but not a permanent one. Whether a player has died from gunshot or disease, all players will leave their bodies in the form of ghosts, which vaguely resemble their past selves.
Ghosts are the spectators of the round – but that doesn’t mean they are not from participating; there does exist a chance the player’s body is resurrected by medical staff, or by other odd circumstances.
However, if the player has given up hope that their body can be found, or is even salvageable, the player may simply float around the station, seeing what everyone else is up to.
Alternatively, if that isn’t enough for the player, they may also participate in the form of ghost roles, which allows their soul to enter a new entity (becoming a new character). For a better picture of what these ghost roles entail, see the section Ghost Roles under the In-Game Roles heading. Ghost roles may include lesser entities like animals, insects, or creatures due to the limit of humanoid roles available in a round.
Alternatively, ghosted players may be given a point system so they might be able to affect the station in other ways, such as placing cobwebs, or nudging objects with their ghostly powers.
Heart is pumping blood and oxygen into body parts. One of its main role is actually to send oxygen contained in the circulatory system into each body parts reserve connected to it.
On each pulse, heart send oxygen to each connected body parts. Connected body parts are all parts linked to heart through a chain of circulatory layers present in adjacent body parts, including internal ones.
Heart uses the body part parent hierarchy to decide what is connected to it.
Indeed, on human, the torso is the root of the body part parent hierarchy.
Heart should check then what are the children of the torso to know which body parts are connected to it.
At rest a human consumes about 250 ml of oxygen each minute, 4.16 mL per second, so approximately 4.16/22.4 = 0.18 mmol per second (22.4 is the molar volume of oxygen under 1 atm and 25 degree celsius). https://www.britannica.com/science/human-respiratory-system/Interplay-of-respiration-circulation-and-metabolism
Average volume of a human body : 65 L https://bionumbers.hms.harvard.edu/bionumber.aspx?s=n&v=3&id=109718
One milliliter of body then consume 0.18/65/1000 = approximately 2.77*10^-6 millimoles per second. We'll call that MilliMolesOfOxygenPerMillilitersOfBody.
A body part might, or might not, need oxygen. At the basis, it's the layers composing it that needs oxygen. Generally, the formula will be very simple, let's call L a single layer and O() the function for the needed oxygen. O(L) is expressed in millimoles, Vol(L) in milliliters and MilliMolesOfOxygenPerMillilitersOfBody is the constant above (unit in the name). The volume of a layer is currently simply the volume of its body part.
Now for each layers present in the body part, we just compute the average of their need in oxygen to get the need of the bodypart itself.
The amount of oxygen a single body part can hold will rely on its volume and on a factor that user can pass in parameter.
The reserve factor is here to allow the user to set different amount of oxygen reserves for body parts, thus making some dying faster than others.
The maximum volume of oxygen which the blood can carry when fully saturated is termed the oxygen carrying capacity, which, with a normal haemoglobin concentration, is approximately 20 mL oxygen per 100 mL blood.
Of course, oxygen doesn't circulate in the body like in the air. In blood, it is densely packed into haemoglobin. We can safely consider that haemoglobin makes up 2% of blood volume, so oxygen is packed by a factor ten compared to normal atmospheric conditions.
Upon being taken in atmos by lungs, oxygen should turn into haemoglobin, so that there's no actualy oxygen into blood.
Ouch.
Damage, in general, measures how much health character can lose before dying or being rendered inoperable.
Historically, within SS13, a player’s overall damage is composed of 4 primary types: brute, burn, toxin, and oxygen.
Proposition: expanding on the damage types by adding subtypes of damage might make more sense in the context of medical experience and in other spheres:
BRUTE: Brute damage is the most common: it's caused by being hit with physical weapons, pressure, explosion blasts, surgery, and so on. Subtypes:
CRUSH: Damage for being hit with a blunt object (fists, toolbox, hammer)
SLASH: Damage of being cut with a blade (sword, saw, cleaver)
PUNCTURE: Damage if being pierced with a bullet or a stab with a blade (bullets, drill, spear)
PRESSURE: Atmospheric pressure or lack thereof (depressurization, overpressurization)
ENERGY: Previously known as a burn damage type. The second most common damage, is usually dealt by lasers, hot weapons like welding tools, electric shocks, explosion heat waves, fire and cold. Subtypes:
HEAT: Damage of being exposed to dangerously high temperatures (fire, laser burn, welding tool)
COLD: Damage of being exposed to dangerously low temperatures (being stranded in space without env suit, being stuffed in the fridge, contact with liquid nitrogen)
SHOCK: Damage of being exposed to electricity (taser, hacking failure, stun baton)
RAD: Damage of being exposed to radioactivity (uranium, refined plasma, space exposure)
CHEMICAL: Previously known as a toxin damage type. The least common (normal) damage, it's caused mainly by, obviously, toxins, acid and miscellaneous poisoning. Subtypes:
TOXIC: Damage of being exposed to viruses, poisons, bacteria or viruses, oxygen poisoning (too much O2 in the air) also counts as such (self-explanatory)
ACID: Damage of being exposed to corrosive materials (acid, being devoured by slimes)
OXYGEN: Also known as suffocation, this damage is taken when not breathing
Сlarification: doctors don’t heal the damage subtype itself, but it’s effect on different organs/parts. Any damage taken will add to its corresponding category and subtract from part's health.
Subtypes exist mainly to calculate what's going to hurt more - bones, muscles, circulatory vesicles, nerves or organs. For example, no matter if the bone is shattered by puncture or slash, the treatment should be for a physically (BRUTE) damaged bone. For more info, check out Body Systems.
Also, this way the damage from the toolbox (CRUSH) and the knife (SLASH) would be different (because it logically should be), without directly manipulating the chances of causing bleeding, concussions and other effects for every weapon and item.
Damages are shared between the different body part layers on a body part. Getting a strong hit in the head will damage mainly the head's bone structure, but also its circulatory system. If the hit is strong enough, it can even affect the brain.
Certain types of damage, like burn and brute damage, may have a direct effect on specific areas of the body; different body parts may be damaged individually. For example, if your liver dies, you may start fainting and sustain toxin damage over time.
Damages can affect many things, from your ability to talk and walk to your ability to feel pain.
The red stuff swelling inside.
Blood is circulating through the body, carrying oxygen, it's necessary for body parts that require oxygen.
The hazard players are most likely to face, likely result in some form of bleeding.
Many creatures you’ll encounter also rely on their blood levels to survive. In the average human’s body, all players start with around five liters of blood. Any attack with a sharp object, like a broken bottle, or a kinetic firearm, may form an open wound that causes blood loss relative to the severity of the wound.
Luckily, most living things (humans especially) are equipped with processes that slowly reduce the severity of most wounds, meaning blood loss will slow down and eventually stop. However, some wounds may be too severe, and cause fatal blood loss faster than the wounds can be naturally healed. A little blood loss is one thing, but a lot of blood loss is another thing.
A human with an average body contains around 5 liters of blood, so if a human has an approximate volume of 65L, we have a ratio of approximately 0.077, blood on total volume. Applying this ratio to individual body parts we can deduce their blood volume (always assuming that blood is spreaded homogeneously in the body). Let's call B a body part and BV its blood volume, then :
The blood a human can contain can be should then have a maximum volume capacity roughly equal to the sum of individual body parts blood volume. let's call this substance container volume $Vol(S_c)$, then
This simple formula will be used to always determinated the maximum amount of blood a human can contain, depending on what limb they have left.
This quantity will change if the player lost a limb, or any other parts. It is important because it can help to define the right amount of blood the player needs to have in its circulatory system, and it's drastically different if it's a whole healthy human or just a living head.
Below is a chart of blood levels, and how they affect the player.
As a player can lost limbs, or even just be a brain, the player does not need the same amount of blood depending on its total volume.
Keep in mind the percentage below is expressing the amount of blood in the body, over the maximum amount of blood that could be in it.
Other effects, such as vision reduction may apply.
Blood is essential to convey oxygen. If blood lacks too much, then oxygen starts to be difficult to conveys to organs and other body parts. This inexorably lead to oxygen damages.
Oxygen damage can eventually lead to body parts failing and dying, see more in :
Open wounds may be treated using medicines, just like most other injuries. Cauterization is also a potential solution, as well as bandages and sutures.
Because the amount of blood loss from open wounds needs to be tracked, each limb may need to track their own contained blood and wounds.
That said, bleeding damage shouldn’t be counted toward the total damage taken by a player, and instead should simply be an indicator of how much blood is being lost over time.
Blood can be drawn and injected with syringes and IV drips, can be lost from wounds and regenerated through chemicals. Blood regenerates slowly over time, and regenerates faster the better fed the character is.
There are also blood types, which follow the general real world rules. Lizardpeople have a special bloodtype, marked L, which can only receive from and donate to the L blood type. See
Units of Blood | Effect |
---|---|
100%
No ill effects.
80-100%
Low chance of dizziness.
60-80%
High chance of dizziness.
40-60%
High chance of dizziness, slowed movement speed, player may randomly be stunned or pass out.
20-40%
High chance for dizziness, slowed movement speed, player may frequently be stunned or pass out.
0-20%
High chance for dizziness, slowed movement speed, frequent stuns and passing out.
The strength to go on.
Stamina system is responsible for managing the player’s ability to run around. It is a single value which initially depends on character’s species and can be modified in the round by doing exercise (or reduced by getting fat, contracting an illness or getting injured). The amount of stamina available is reduced with running, fighting, carrying heavy objects or doing any other physical activity that can make people tired IRL, but is recovered over time to the maximum stamina amount.
Improving stamina is done by doing said physical activity, the max amount of stamina is increasing with every N spent stamina.
Stamina can be recovered quickly in a variety of ways as shown below, ordered from slow to fast recovery.
Walking (instead of running)
Staying still
Sitting
Lying
There’s a variety of ways the Max amount of stamina or it’s regeneration speed can be reduced. For example, the Max amount of stamina is reduced by (100-x)/2 where x = health of both lungs, and regeneration of the stamina is reduced by total OXY damage. (all numbers are placeholders, here and below)
For a healthy character stamina should regenerate fast enough to not matter much, and for combating, injured or tired character it can serve as a more flexible cooldown system. At least, that's the idea of how it should be balanced.
The taste of things to come.
Pain is a (normally) unpleasant feeling often caused by intense or damaging stimuli. It's a transitory symptom of an underlying condition or problem in the life form’s body.
It triggers as a burst of pain, then it slowly fades away, causing varying effects depending on the level of pain and its localization. Pain is transferred over the Nervous system layer and is delivered into the brain (so there’s no need for several pain meters for each body part). There is the natural pain resistance every creature has, as a threshold the pain level must cross before causing any effect. Pain resistance is also the factor by which pain is reduced over time.
Pain can manifest in several ways, beside the action message, depending on the level of pain the life form is feeling. Some of those effects are:
Mechanics: Temporarily disabling a body part, which can cause dropping things (in case of pain in arms) or inability to run (in case of pain in legs)
Mechanics: Dizziness, Passing out (heavy stamina damage?)
Mechanics: Vomiting
Visual effects: Sudden red flashes on screen so show damage occurring
Text: RP automated messages like *Twitches*, *Goes Pale*
Sound: Involuntary vocal screaming, moaning, groaning or whimpering.
Animation: Involuntary movement (spasms, twitching), momentarily violent muscle contraction (think of tasers)
Pain can be controlled in several ways. First and most effective way is to fix the issue that is causing pain - take care of the wound, for example.
Drugs such as morphine can also relieve pain momentarily as the needed drug is delivered to the Nervous system via the Circulatory system, without fixing the underlying issue. And lastly there is intervention on the nervous system, affecting Nervous system directly through surgery or other means.
End of the line.
Death is a (semi)permanent disability, suffered by biological characters. Character is counted as Dead upon death of a brain (or an alternative organ/device responsible for higher neural/computational functions). The general order of a natural death of the body (or brain removal) is as follows:
Neural activity stops, the body is unable to move. Remedied by brain reconnection or implantation with an AI tech.
Heart stops, blood flow stops. Remedied by Torso surgery to connect the Circulatory system to the medical blood pump.
Organs and all other layers stop receiving O2 and nutrients. Remedied by surgical removal of the organs prior to their death and connecting them to life support containers. (Organs not connected to the Circulatory system start taking oxygen damage)
Organs and all other layers take oxygen damage. Systems that require nutrients to sustain regenerative functions stop doing that. Blood starts being replaced with a substance “Stale blood”, that cannot be used for transfusions. Blood staleness is prevented by pumping it out of the body and storing it in a cold place.
Organs’ health lowers. Organs that deplete their health die and cannot be used as functional transplantation organs. Not remedied
The Muscular, Circulatory, and Nervous systems continue taking damage as they rot. At the point of 0 health they cannot be used as a transplant (limb transplant, for example). Not remedied unless transplanted before death of a layer or removed from the body and stored in a life support container.
The Muscular system continues to lose health down to -100, at which point the muscles cannot be harvested as human meat and cooked. Remedied by storing the body in a cold storage prior to this point or harvesting meat immediately.
As stated, the death of the brain is the death of the character. But it might not be the end! Possible options to continue the game are becoming a ghost to fly freely over the station in spectator mode or taking a role for a ghost, such as an AI for a personal PDA, little robots or possible poltergeist antagonist. See Ghosts in Roles section for more info.
Players can also be cloned/resurrected/regenerated. The brain (or the body with one) can be thrown into a cloning vat to be rebuilt and restored. For balancing, this process might require a lot of energy or nutrients to do its magic. For RP balancing, the lore of the game claims a short term amnesia is a constant side-effect of the revival, so players can’t just wait for someone to clone their character back and use their knowledge prior to their death to point at the antagonist who (most likely) killed them.
This data is useful as it gives us some rough rough idea about things such as the volume of blood in a given body part, if we make the simple approximation that blood quantity is homogeneous in the body (obviously untrue, but good enough for SS3D).
Average volume of a human body : 65 L https://bionumbers.hms.harvard.edu/bionumber.aspx?s=n&v=3&id=109718
Volume of intestines : https://bionumbers.hms.harvard.edu/bionumber.aspx?s=n&v=2&id=111759
Volume of Heart, lungs and liver : https://bionumbers.hms.harvard.edu/files/Mass%20and%20volume%20of%20the%20organs%20of%20the%20human%20body.pdf
Volume of stomach : https://en.wikipedia.org/wiki/Stomach
Volume of limbs :
Using those sources, we can approximate the volume for each body part :
For the torso and its organs :
Total Torso = 50 % of 65L = 32.5L
Heart = 0.3 L
Lower and upper Intestines = 1 L each
Liver = 1.5L
Lungs = 0.7L each
Stomach = 2L
Total volume of Torso without organs = 32.5 - 0.3 - 1 - 1 - 1.5 - 0.7*2 - 2 = 25.3 L
For the limbs :
left/right arm = 4% of 65 L = 2.6L
left/right hand = 1% of 65 L = 0.65L
left/right leg = 14% of 65 L = 9.1L
left/right foot = 2% of 65 L = 1.3L
For the head and its organs :
total head = 8% of 65L = 5.2L
Brain = 1.3L
Eyes = 0.03 L each
head without organs = 5.2 -1.3 - 0.06 = 3.8L
Several problems require immediate surgery to save the patient, some of which concern their extremities or internal organs, in which case the patient must be "opened" in order to directly interact with the part that needs doctor's attention. The overall organ access order (by body parts) should look as such:
That means, while Eyes, Ears and Speech organs (Tongue) can be directly accessed and treated without surgical intervention, to treat the brain the doctor should first cut through the skin of the patient’s head and through the skull bone. Or, in other words, they should cut through the MUSCLES and BONES layers of the Head body part.
The dotted line means that there’s no need in any sort of incisions to access the needed organ, the parent organ just should be moved (Made for simplicity and cartoonish style, don’t try this at home, author knows nothing of real anatomy or surgery or medicine in general. Applicable to the whole document, actually.)\
In order to be removed, the organs should be surgically accessed and disconnected from MUSCLES, CIRCULATORY and NERVES of their body part.
Example: In order to extract the brain, the doctor should first cut off the top of the head, open the skull, cut the nerve endings, cut off (and cauterize, depending on the situation) the blood vessels and extract the brain. In order to install a different brain in it’s place, the doctor should basically perform the procedure in reverse: place the brain in the head, reconnect blood vessels of the new brain and the body, reconnect the nerves, close the skull and staple the head back.
Surgeon uses a variety of tools
Tools for incisions (TI) - the tools to cut through the soft tissues of the organism, used primarily on MUSCLES, CIRCULATORY, NERVES and ORGANS. The most convenient one is Scalpel, but any item/weapon that can do slash damage might work (the more the characteristics of the item differ from the scalpel, the worse it is as a tool for surgery, i.e. being too heavy, making too much/not enough slash damage, etc.).
Tools for bone cutting (TBC) - tools to cut BONES. Bone-saw is an obvious choice, but other types of slash damage items might work (but even worse than the incision tools).
Tools for retraction (TR) - opens the incisions wide, holds the skin and MUSCLES in place and doesn't allow it to close on the doctor while they operate. Surgical retractors are made for this purpose, but wire-cutters or wrench can be used in case of emergencies.
Tools for cauterizing (TC) - burns the CIRCULATORY to stop blood loss from a specific vessel, for example, after ORGAN removal. Cautery is the choice for this job, but any item that can provide a similar HEAT damage can possibly work.
Tools for manipulation (TM) - for moving organs tissues and bones around without harm for the patient. Might also be used to close the CIRCULATORY vessels (to be reconnected later). Hemostat is the intended tool, but wire-cutters can be used to achieve the same effect with a certain chance of failure.
Tools for bone merging (TBM) - for setting BONES back together after fracture of surgical procedures. Bone gel can make bone tissue ductile, after which the bone parts can be mended back together with TM, but it can be partially substituted with surgical tape or a regular adhesive material for worse results.
Tools for wound closing (TWC) - for sawing MUSCLES wounds back together or bandaging the wound. Depending on the severity of the wound/incision, medical gauze or surgical tape might be enough, but the wound might reopen if the application is removed too early. Surgical suture is more time consuming and works only for incisions, but needs no removal. There are ghetto versions for both, being adhesive tape and cloth for the first option and regular sewing thread or wire for the second.
Tools for drilling (TD) - for making holes in BONES or teeth to insert pills/patches into a resulting cavity. The medical drill can be used for it, but the cavity can also be dug with other drills like mining one (why) or meticulously scratched using needles or scalpel.
Surgical operations should be described in the same way as basic crafting recipes (see Crafting Design Document (WIP)), in a sense that every interaction of the tool with a certain layer or organ should describe the target, the tool and the result of the basic interaction.
This “recipe” describes that if a circular saw is used on a patient head’s skull when the skin in the head is already cut, then after this interaction 10 seconds (of animation) should pass and the skull would also be opened.
Combat is a character-on-character interaction system that mainly focuses on keeping player character and allied characters alive/functional and rendering hostile characters not-alive/functional.
The main tools of character-on-character interaction are clicking on the character and the body part selection dummy:
Clicking on a target dummy’s body part would select it and highlight it for the player. It would be used for context related character-on-character interactions, such as aiming or disarming. Same dummy is used for medical purposes.
It is used for the most common type of characters: anthropomorphic ones, such as humans, abductors, plasmamen or podpeople. For lizardmen, felinids, mothmen or xenomorph-expy creatures additional features can be added, such as tails, wings or antennae.
hit/punch people with or without an item in one's hands
disarm the target
shove the target
grab and pull the target
throw the target
Fireman carry target
throw things at the target
shoot the target
taze/inject/forcefeed the target
There should be a battle mode (harm) and a non-battle mode (help), that should affect the effect of the click on the other character. There should be an ability to:
Body parts can also be selected via hotkeys, native for experienced SS13 players.
Creatures like goats, cows, dogs or space carp would need their own target dummies. If a player clicks on a non-standard creature, the target dummy would change from standard to edited one. If the changed one is still anthropomorphic, the original selected body part would remain. Otherwise, the torso or a center of mass would be automatically selected.
Ways to remedy the damage.
Every damage type has a way to be treated with professional help. Most of the damage can be negated or remedied by providing the damaged part with a substance designed to deal with it.
Reagents should be introduced into the bloodstream at various rates depending on the type of 'exposure'.
Injecting: would instantly introduce reagents to the bloodstream. Requires IV stand, syringe or hypo applied to the bodypart (+ CIRCULATORY connected to it).
Inhaling: introduces reagents fast, but not instantly. Requires at least one working lung (+ CIRCULATORY connected to it) and either breathing mask connected to a source of gas/dispersed reagent or said reagent introduced to the station’s atmosphere.
Digesting: slowly extracts reagents located in intestines. Requires working intestines (+ CIRCULATORY connected to it).
Topical: skin absorbs reagents very slowly. Requires a reagent or a patch/bandage/dandaid containing it applied to a bodypart with a not-dead MUSCLE layer (+ CIRCULATORY connected to it).
This way, for example, a combat stim patch would be good for negating the effect of a wound temporarily, a pill would be perfect for long engagements with a very low overdose risk and an autoinjector would be an ace up your sleeve at the risk of an overdose if the dosage is too high.
Do good.
If the Combat mode is disabled, most of the actions performed on the characters are supposed to be non-harmful (at least, not directly, see details below):
LEFT_CLICK on an active target character, while having an empty hand and Combat mode is disabled, will result in giving the target a hug. (This action also pets animals)
LEFT_CLICK on a knocked down target character, while having an empty hand and Combat mode is disabled, will result in an attempt to help the target back up on their feet.
LEFT_CLICK on a target character in a critical condition, while having an empty hand and Combat mode is disabled, will result in an attempt to perform CPR and revive the target.
Direct stuff where it needs to be.
TOSS/THROW
Holding CTRL+RIGHT_CLICK while having an item in hand or holding a target character in a grab, will result in the player character preparing a throw. An arch-like trajectory indicator should appear and follow the cursor, indicating the supposed trajectory of the thrown object, where landing point ending where cursor points. (Works regardless of the player's current combat mode.)
Warning: might be too OP. In that case, the trajectory trail should be either disabled or become more transparent the greater the distance to the intended target.
Suggestion: trajectory indicator should fade away the longer distance a thrown object should travel if thrown, as bounce prediction over long distances might be too OP. Alternatively, it can be only visible with an item perk, like AR glasses (if anybody would use them)
While aiming at the active target character, while having an item in hand and if Combat mode is enabled, trajectory indicator should “stick” to the bodypart of the target, selected in the UI dummy.
(If Combat mode is disabled, indicator should treat other characters no different from other environment entities (no “auto aim” at the characters))
LEFT_CLICK while aiming on an active target character, while having an item in hand and Combat mode is enabled, will result in throwing the item in the active hand at the target character.
The damage of the item, shall it hit the target, should be calculated from the weight of the item + it’s perks (to decide the damage type, for example *sharp* should result in dealing a certain amount of SLASH damage) + health and stamina conditions, as stated in the HARM section. If Combat mode is disabled, LEFT_CLICK will result in tossing the item in the active hand, dealing no damage (or less damage then when throwing)
LEFT_CLICK while aiming anywhere in the gameworld while holding an item, will result in throwing the item at the cursor.
(Works regardless of the player's current mode.) (Holding a target character in a grab should throw the target character’s ragdoll in the general direction of the cursor) (Can be used to toss grenades: activate the grenade and toss it in the direction of the target.)
The Combat Mode switch was designed to rework the intent selector, traditional to the 2D Space Station 13 for 3D environment. The intent selector allowed you to choose how you're going to interact with the items and the environment around you, utilizing four modes: Help, Disarm, Grab, and Harm. Now they are reworked to allow more actions:
Clear your personal space.
RIGHT_CLICK on an active target character, while having an empty hand, will result in an attempt to push the target.
(IK-rig needed. Target character should be pushed in the direction of the push and slowed down very slightly for 3 seconds, unless they collide with any other objects. In case of said collision, the target character should become a ragdoll for 3 more seconds starting from the collision time.)
RIGHT_CLICK on a target character that grabbed the player's character, should result in an attempt to push away the target and disable the grab (with a certain chance).
Seize what you need.
CTRL+LEFT_CLICK on an active target character, while having an empty hand and Combat mode is disabled, will result in grabbing the target.
If used on humanoids, the grab on the torso allows the player character to pull or push the target with it.
Grabbing the hand of an active target character while Combat mode is disabled will result in an attempt to extend own hand to the target character.
If the player character’s arm is not empty, target character has an option to take the item, as long as they have an empty hand.
If the player character’s arm is empty, target character has an option to put their own item into the extended hand, as long as they have an item in hand OR to shake hands, if both characters have an empty hand.
Grabbing the hand of an active target character while Combat mode is enabled will result in an attempt to DISARM: take an item from their hand or make target drop it from the said arm (if it’s not empty), or prevent the target from using their arms to fight and/or grab (if it’s empty).
Grabbing the leg substantially slows the target’s movement. (if too complicated to implement or confusing in gameplay, might be worth automatically switching to the arms or body)
Grabbing the inactive target by any bodypart should result in an animation of the player character dragging the ragdoll (or IK-rigged) target by the selected bodypart. (Also works for inanimate objects)
Do bad.
LEFT_CLICK on an active target character, while having an empty hand and Combat mode is enabled, will result in an attempt to punch the target in the selected bodypart.
(On standing targets player character will attempt to punch the target, which deals 1.5-15 stamina and 1-10 brute (CRUSH subtype) damage. The chance to miss a punch increases the more stamina and brute damage player character has. Punching has a chance to knockdown the target for at least 4 seconds. The more brute and stamina damage the target has, the longer the target will be knocked down.) For more info on Stamina and Damage types, visit Health design document: Health/Medical design document
Suggestion: longer LEFT_CLICK should result in a stronger, slower attack.
LEFT_CLICK on a knocked down target character, while having an empty hand and Combat mode is enabled, will result in a kick of the target in the selected bodypart. (The kick deals 1.5-15 brute (CRUSH subtype) damage and has no chance to miss.)
The damage of any attack that is made using character's muscles should also depend on the
Overall health condition of the attacker
Health of the limb used to attack
Stamina amount (debatable)
One of those factors (chosen by the worst condition) should reduce character's damage with melee fights.
There are several options proposed on how to deal with item interactions when tied to the intents, but one overall rule remains: items that are made to be used on a character should be easily used on them if needed. In other words:
LEFT_CLICK on an active target character, while having an item that's marked as "helpful" in hand, will result in the primary interaction of the item applied on the target character. (Works regardless of the player's current mode.)
(For example, clicking on another character with a syringe or food in your hand will make you attempt to inject or force feed them)
LEFT_CLICK on an active target character, while having an item that's marked as "harmful", either "melee" or "ranged", in hand, will result in an attempt to use the item on the target character accordingly (see section WEAPONS). (Works regardless of the player's current mode, but this action automatically enables Combat mode)
The rest is divisive. The items that were not made to be used on humans, ideally, should still be used on them in some way. For example, the toolbox.
Option true to the SS13: LEFT_CLICK on an active target character, while having an item that's not marked as "helpful" or "harmful" in hand will result in an attempt to bash the target character with this item. (Works regardless of the player's current mode.)
This, however, has a problem of player/character disconnect (RP stuff) and it generally wouldn’t make sense hurting someone with the HELP intent. For this purpose, another set of options was suggested:
LEFT_CLICK on an active target character, while having an item that's not marked as "helpful" or "harmful" in hand, will result in:
a message "You can't help this person with your hands full" (Works regardless of the player's current mode.)
an attempt to bash the target character with this item. In HARM mode, the rules for improvised melee weapons apply. In HELP mode, the damage is reduced to ⅓ or less, depending on the traits of the item, such as "sharp" or "chemical" or "breakable"
an attempt to bash the target character with this item. In HARM mode, the rules for improvised melee weapons apply. In HELP mode, the damage is reduced 0, so only the effect of the hit (such as the animation and the sound) remains
an attempt to bash the target character with this item (In HARM mode) or an attempt to drop the item and help the target character with a freed hand (In HELP mode)
an attempt to bash the target character with this item (In HARM mode) or an attempt to offer the said item to the target character (In HELP mode)
MELEE
LEFT_CLICK on an active target character (any part of it), while having a melee weapon (or basically any item that can be used as one) in an active hand, will result in an attempt to make a fast hit (punch with something blunt or jab with something sharp) in the selected bodypart.
Suggestion: longer LEFT_CLICK should result in a slash attack for blade melee weapons (like swords),
longer hits with contact-type weapons (like stun-batons)
or stronger, slower heavy attack for weapons that rely on brute force (like hammers)
where the longer the time of holding the LEFT_CLICK, the wider the swing (or the longer the contact with the contact-type weapons, like stun baton or soldering iron).
The choice of the attack type might depend on the weapon’s primary (biggest) damage type or might be a completely separate thing, specifically programmed for melee.
Reference for how the melee fight should look/feel like pace-wise:
Reason for this is that in Space Station 13 the fights mostly consist of attacks that occur on click on the opponent, which means the fights are made with fast hits and instant attack startups in mind.
Keep it close and personal.
LEFT_CLICK on a grabbed (lvl1) target character while Combat mode is disabled will result in careful Fireman-carrying the target (Should prevent the target’s body from collisions with objects on the floor). Attempt to grab the already dragged inactive targets/inanimate objects of comparable size should result in the same type of animation. The action itself needs 2 empty hands, and the same amount to safely put the body down. While Fireman-carrying the target, one hand is permanently unavailable.
Grabbing an already grabbed (lvl1) target character will result in grabbing the target stronger.
(This action automatically enables Combat mode) (The resulting aggressive grab (lvl 2) would be N% harder for the target character to break from. Disabling Combat mode would make lvl2 and higher grabs become lvl1 grab again. All grab moves from lvl 2 and higher require Combat mode enabled)
LEFT_CLICK+CTRL on an active target character, while having an empty hand and Combat mode is enabled, will result in grabbing the target in the aggressive grab (lvl 2) right away.
Grabbing an aggressively grabbed (lvl2) target character, while having two empty hands, will result in automatically switching to the neck (or head, depending on the UI detail) on the UI dummy and grabbing the target even stronger.
(The resulting neck grab (lvl 3) would be M% (where N<M) harder for the target character to break from.)
These levels serve a purpose of the preparation to choking someone and giving plenty of opportunities to back down, just in case.
Grabbing a target character already grabbed by the neck (lvl3) will result in an attempt to strangle the target.
(The resulting strangling grab (lvl 4) would be L% (where M<L) harder for the target character to break from. Target in the strangling grab would be dealt suffocation damage over time. Target character may attempt to resist being grabbed with a certain chance of success.)
Different melee weapons have a different range and arc of reachable targets. A spear can reach far, but with a very narrow angle. A hammer has low range but with a wider arc of reachable target.
Below is a picture of a stun baton and a bat, and their respective arc and range.
Aiming in SS3D implies two things :
Selecting a target entity.
Selecting a body part on this entity.
Attacking a player happens when left clicking, therefore, click position matters to determine which entity to target.
First, an entity must be reachable to be targeted, meaning it must be in the area determined by Range and arc of the melee weapon.
This one is simple, if the target is reachable and the click is on the entity, the entity is selected.
If the click occurs outside of arc and range of the weapon, the selected entity will be one that :
Is reachable.
Is the closest from the player.
If the click occurs inside arc and range, even with a reachable entity, the target will be whatever was clicked on. This allow to smash an item (or just the ground) in close proximity of another player.
Out of combat mode, selecting a target relies solely on the interaction system, it therefore implies clicking on the target, and some checks are done to verify if the hitting interaction can occur.
Here's a drawing to sum it up : (This one assumes direction of aim is following player's rotation, look at the aiming's direction part for more details on this particular point)
The consensus is that it's simpler for now to simply use the targeting doll to select the body part one's want to hit.
The targeting doll allows one in the UI to select any given body part on a humanoid character. In case where one of those body part would be missing, the next closest body part would be selected (missing right hand and right hand selected -> hit right arm).
In combat mode, the direction of hitting should follow the mouse, it's independent from character's body rotation (note that in this mode the character is strafing).
Timing refers here to the time it takes between choosing a hit interaction, and landing the hit.
A simple solution could be first to reduce this time to zero. However, we might note that it'd be hard to make sense of animations if a player takes a hit before the swinging animation of the weapon even started. This is a point to consider, ongoing discussion.
In combat mode, strafing will be the main way of moving around, with the player's torso direction following the mouse cursor.
Lil objects.
Items in Space Station 3D is probably no different than any other game you've played. The term refers to basically anything the player can pick up by conventional means.
Hold Positions are the position on an item that a character holds it by. They are empty objects used to simply set a location and rotation. Link below is a video showing them in use on items in-game.
https://ss3d.space/assets/img/posts/20.05.01/ItemOrientations.mp4
Some items may have more than one Hold Position. Different variables like object's shape, object's type, object's state, character's intent, character's species, character's hand, character's pose etc.. may effect how a item is held. This will be managed via different Hold Positions.
This page describes food interactions and cooking
Food is designed to be eaten. That means that the food's Primary interaction is allways to consume it yourself. Bite-by-bite or, if not aplicable, until the dish eventually ends.
Player should also be able to stop eating at any time. It the food is bite-sized and every interaction is one bite after another, then there's not even an issue. If the food is eaten continuously (drinking a bowl of soup, eating spaghetti or salad) then at any point the player should be able to stop the eating process.
Most of our food is bite-able, as in it can be eaten with several sequentia bites: cake, pie, pizza, toast, steak, kebab. So it should be bitten by the character (if the food is small enough - manually, if it's big enough - automatically) and the model of the food should change to different stages of being eaten.
Then some of our food is packaged, and character just puts a hand into the package, retrieves a piece and eats it. It should require only package in different stages of being emptied and at least one piece of the food within.
And then there's food that needs utensils, like salad, spaghetti, soup, icecream bowl. Those are usually served in a dish of some sort, with the contents being on top of it, visible to the player. To simulate eating it, the contents of the dish should flatten or shrink with consuming of the said food.
Applying fork to food should result in character using said fork to consume the food. Same with other utensils and other types of food. We would need to make some generic food chunk and alter the size and color of it depending on the food it came from, to put it in a fork/spoon/shopsticks when those are used to consume the food.
We can disregard the types of food and their accordance to the silverware usually used for those foods, or even use that as a comedic releaf of sorts. For example, eating a soup with a fork would take x5 the time to finish the meal.
We can certainly allow players to eat without utensils, "animal-style", but have a chance of spilling the food (adds splatter decals onto character's clothes). And it's generally good for RP anyway, so having both options seems like the best choice.
RANGED
Holding RIGHT_CLICK, while having a ranged weapon in an active hand, will make player character to aim at the cursor.
The character should follow their aim at the location cursor points at freely, until it points at the target (human or other living being that has individual parts that can be aimed at).
If cursor overlapses with the target, the aim of the character must automatically lock on and aim at the middle of the bodypart of the target, that was selected on the UI dummy.
Aim (and the animation of the aim via IK, probably) should change if the targeted bodypart on the dummy was changed via hotkeys.
In case the part of the character that is currently aimed at is obstructed, the aim on the UI dummy should be disregarded and the aim should remain “free” as in unlocked from the target and should simply follow the cursor.
If the said part of the character is no longer obstructed while the “free aim” is still on the targeted character, it should remain that way to prevent aim jumping. To re-aim and lock onto the targeted bodypart, cursor must be moved from the target character and then moved onto it again.
LEFT_CLICK while having a ranged weapon in an active hand AND aiming (holding RIGHT_CLICK) should make the gun shoot in the direction of the current aim, free or not.
There should also be a chance to miss the body part that is aimed at within a certain radius (represented by the transparent red circle on the image below) or even miss the character entirely.
This error radius should depend on:
· type and integrity of the weapon
· condition of the aiming character’s body (especially the arm holding the weapon)
· other effects on the aiming character, such as medication, drugs, alcohol or other
- Distance between characters
Once the point of the shot is established aiming should be locked (player should still be able to move the cursor), the animation of the fired shot should play for the character, damage and force of the shot should apply to the target. After that, the aiming process should continue as normal.
In case of the automatic weapons or other weapons that fire continuously, established aiming should not be locked, but should remain “free” from the point of starting fire (both time and aim coordinates). For example, longer LEFT_CLICK while aiming at target’s chest with a flamethrower should result in continuous fire in the general direction of the target’s chest, but
LEFT_CLICK while having a ranged weapon in an active hand will make player character shoot from-the-hip style, aiming rules above applied.
LEFT_CLICK on an active target character, while having a ranged weapon in an active hand AND aiming (holding RIGHT_CLICK), will make the player character shoot, aiming at the targeted area.