-
Notifications
You must be signed in to change notification settings - Fork 474
Port Game Director from Goobstation #3148
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
base: master
Are you sure you want to change the base?
Port Game Director from Goobstation #3148
Conversation
tom-leys is the actual author of it on the closed pr upstream also this has only been on goob for 11 hours wait for the bugs to be found... |
Durk said it was good smh |
Direction is standing up a test server to run this on, and figure out what's cooking |
9154922
to
bb2fe2b
Compare
b883e6e
to
4a9c698
Compare
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
About the PR
This ports the Game Director from Goobstation.
Why / Balance
As it is, our current ways of scheduling events are purely random, only using shift time and player population with no regard for what came previously or where we'd like to be. This frequently leads to unsatisfying event scheduling. Goob Station's Game Director is a new event scheduler that fixes all of these problems in one fell swoop.
The way it works is that each Game Director has a set of stories that it can choose from, for example, a calm story may start at a peaceful station, work its way towards a minorly scuffed station, and then finish up with power issues. A difficult story may start at a peaceful station, scuff up the station, queue power issues, severely fuck with the station, try and get the security team back on its feet, try and get engineering back on its feat, followed up by a peaceful ending.
These story beats don't call for any specific events, but rather, direct the Game Director to head towards a specific metric goal: the
Attackers
beat directs the Game Director to attempt to queue events to get towards a Hostile rating of 100, but to bail out early if the Atmos, Power, Medical, or Death metrics get severely out of control.Events themselves have estimated effects on these metrics, for example, a Revenant will be estimated to cause a lot of Medical and Death chaos, and thus, makes a viable choice if the story beat calls for those two factors. However, the Game Director is able to measure the station itself to determine where the station actually is in terms of these metrics, instead of assuming that every event has the same impact on the story. For example, if a Ninja gets taken out early, the Game Director will observe that the metrics haven't progressed much towards the goals of the story, and will choose another event towards this direction in due time.
Technical details
StationEventComponent
has aChaos
property that measures its estimated impact on the storyMedia
Requirements
Changelog
🆑 tom-leys, gusxyz, sowelipililimute