-
Notifications
You must be signed in to change notification settings - Fork 108
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Design doc for multi character slot system #177
base: master
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
# Multiple Character Slots | ||
|
||
| Designers | Implemented | GitHub Links | | ||
|---|---|---| | ||
| PJB3005 | :x: No | TBD | | ||
|
||
## Background | ||
|
||
Currently, a player can have one character slot selected. This controls their character's appearance, name, job preferences, and antag preferences. This is relatively restrictive, as people may want to have different settings per job. For example: | ||
|
||
* Some people prefer having different characters per job or department, for roleplay reasons. | ||
* The work on [loadouts](https://github.com/space-wizards/space-station-14/pull/25715) makes it so that loadouts are assigned per-job, which is kind of clunky. | ||
* Some "jobs" like clown or borg shouldn't use your normal character name. In SS14 this is currently suffering, in SS13 there's either a popup box when you spawn to pick your name OR multiple extra fields in the character info for "character name as clown" and such. Both suck. | ||
|
||
## Proposal | ||
|
||
It should be possible to have multiple character slots active at once. When selecting jobs, a job is picked for all your characters at once, after which the actual character slot is picked. | ||
|
||
All the regular properties of a character slot apply. You can have separate names, appearances, and with the loadouts PR separate loadouts too. | ||
|
||
As an example: if you have two character slots, one engineer, one medical doctor, the game will try to give you a job for either. The actual character slot then gets picked based on what job you got. | ||
|
||
### UI | ||
|
||
Most of the UI would remain mostly the same. | ||
|
||
The character customization screen currently lists all your characters in a column on the left. With this change, it'd create two separate headings: one for "active" and one for "inactive". There would be buttons to activate/deactivate character slots. | ||
|
||
The lobby currently shows your active character in the menu. With this change, that would instead show all your character slots lined up horizontally. This is also nice because if you do take advantage of multiple character slots this allows you to easily tell "I have engie, med and sec selected". | ||
|
||
We will probably need a "duplicate" button to allow you to clone a character slot, if you want to make a character slot with the same appearance but a different job easily. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is also really clunky. If a player makes changes to one character they then need to mirror all those changes to the copies which is a pain in the ass. |
||
|
||
### Job/character selection | ||
|
||
The game would run job selection first, with your apparent job preferences selected as the union of the preferences of all your characters. Then when a job has been picked for you, your character slot is picked based on what jobs are selected on your characters. If more than one character has the job selected, it'd just be picked randomely between them. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is very complicated and would be confusing un-explained behavior to a player. Job preferences should not be tracked on a per character basis, they are something that a player has. Job preferences should reflect those of the player themselves since they are effectively a consent system for the type of gameplay that a player wishes to engage in during that session. A better solution would be to have a system for managing Job Preference presets, aka the ability to save/select saved preferences. |
||
|
||
#### High Priority selection | ||
|
||
Currently you can only have one "high" job preference. I'm not sure how this proposal would play in with that, as you'd obviously be able to have multiple characters each with their own high preference set. I can think of two solutions: | ||
|
||
* Just allow this. This means people can have multiple "high" job preferences in practice. I'm not sure it's a big deal? | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This would allow crafty players to give themselves priority over everyone else for a job or set of jobs using duplicate slots to influence the odds, the second proposal (a high priority slot) is better. High priority means they get picked before medium or low priority players, so being able to have more than one high priority selection effectively just lets players use slots to give themselves higher job odds. |
||
* Have the ability to select a character slot as "high" as well, and then ONLY that character slot gets high preferences, all the other character slots will have their "high" set to "medium". | ||
|
||
### Alternative character types | ||
|
||
This approach also opens up the way for "alternative" character slot types. Right now all character slots are "humanoid", which makes little sense for roles like borgs. Instead of selecting borg / AI as regular jobs, we may instead want to make a wholly new character slot type instead. May also make sense for antags like nukies. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I like this as a solution for borgs, antags or other unusual crew |
||
|
||
To make this not confusing for existing players, we probably want to make the jobs and such still available through the regular selector, with a hint that's like "if you want to customize the borg name, make a new character slot!" or something. | ||
|
||
### Character Slot count | ||
|
||
Especially if we make dedicated character slot types for silicons/antags, we'll probably need to increase the max character slot count a bit. | ||
|
||
### DB changes | ||
|
||
Changes to the database would be minimal. Instead of having an "active character slot" index we'd just change each character slot to have a bool. | ||
|
||
### Late Joins | ||
|
||
In the late join menu, selecting a job would not immediately spawn you in. Instead you'll get an option for which character slot you want to spawn as. If any character slot has the job preference set they'll be somehow highlit to make it easier to select them. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is a really clunky solution that isn't very clear to the player how it works.