Dynamic gamemode, should it be changed or remain the same?

Hello!
Dynamic is highly unblalanced.
I believe it should be changed.

I’ll explain how dynamics works, for people who are not familiar with it.

Most of the stuff written here is straight up ripped from the code (I tried removing all mentions of useless stuff, if you’re curious you can check in code/game/gamemodes/dynamic)

Dynamic initially rolls threat based on a special sauce formula:
“dynamic_curve_width * tan((3.1416 * (rand() - 0.5) * 57.2957795)) + dynamic_curve_centre”
Most rounds will have a threat level around ~50, but chaotic and tame rounds still exist for variety.

This threat is then split into two separate budgets: a round_start_budget and a mid_round_budget.
For example, a round with 50 threat might be split into a 30 roundstart budget, and a 20 midround budget.
The roundstart budget is used to apply antagonists applied on readied players.
The midround budget is used for two types of rulesets:

  • /datum/dynamic_ruleset/midround - Rulesets that apply to either existing alive players, or to ghosts. Think Blob or Space Ninja, which poll ghosts asking if they want to play as these roles.

  • /datum/dynamic_ruleset/latejoin - Rulesets that apply to the next player that joins. Think Syndicate Infiltrator, which converts a player just joining an existing round into traitor.

The gamemode will try to spend as many points as it can.

If the same threat is picked twice, it will “scale up”. The meaning of this depends on the ruleset itself, using the scaled_times variable; traitors for instance will create more the higher they scale.

Any leftover roundstart threat will be given to the existing midround budget

Latejoin and midround injection cooldowns are set using exponential distribution between:
5 minutes and 25 for latejoin
15 minutes and 35 for midround

these are some words that might be useful knowing when discussing dynamic:

  • required_candidates - The number of people that must be willing (in their preferences) to be an antagonist with this ruleset. If the candidates do not meet this requirement, then the ruleset will not bother to be drafted.

  • antag_cap - Judges the amount of antagonists to apply, for both solo and teams. Note that some antagonists (such as traitors, lings, heretics, etc) will add more based on how many times they’ve been scaled.

  • weight - How likely this ruleset is to be picked. A higher weight results in a higher chance of drafting.

  • cost - The initial cost of the ruleset.

  • scaling_cost - Cost for every additional application of this ruleset.

    • Suppose traitors has a cost of 8, and a scaling_cost of 5. This means that buying 1 application of the traitor ruleset costs 8 threat, but buying two costs 13 (8 + 5). Buying it a third time is 18 (8 + 5 + 5), etc.
  • requirements - A list that represents, per population range (see: pop_per_requirement), how much threat is required to consider this ruleset. This is independent of how much it’ll actually cost. This uses threat level, not the budget–meaning if a round has 50 threat level, but only 10 points of round start threat, a ruleset with a requirement of 40 can still be picked if it can be bought.

    • Suppose wizard has a requirements of list(90,90,70,40,30,20,10,10,10,10). This means that, at 0-5 and 6-11 players, A station must have 90 threat in order for a wizard to be possible. At 12-17, 70 threat is required instead, etc.
These are the values for roundstart:

ROUNDSTART

TRAITORS:
required_candidates = 1
weight = 5
cost = 8 // Avoid raising traitor threat above 10, as it is the default low cost ruleset.
scaling_cost = 9

BLOOD BROTHERS:
required_candidates = 2
weight = 4
cost = 15
scaling_cost = 15

CHANGELINGS:
required_candidates = 1
weight = 3
cost = 16
scaling_cost = 10

HERETICS:
required_candidates = 1
weight = 3
cost = 15
scaling_cost = 9

WIZARDS:
required_candidates = 1
weight = 2
cost = 20

BLOOD CULT:
required_candidates = 2
weight = 3
cost = 20

NUCLEAR OPERATIVES:
required_candidates = 5
weight = 3
cost = 20

REVS
required_candidates = 3
weight = 3
delay = 7 MINUTES
cost = 20
antag_cap = 3
minimum_players = 35

EXTENDED:
required_candidates = 0
weight = 3
cost = 0

CLOCKCULT:
required_candidates = 4
weight = 3
cost = 35

MIDROUNDS

TRAITORS:
required_candidates = 1
weight = 7
cost = 10

Malfunctioning AI:
required_candidates = 1
weight = 3
cost = 20

WIZARD:
required_candidates = 1
weight = 1
cost = 20

NUCLEAR OPERATIVES:
required_candidates = 5
weight = 5
cost = 20

BLOB:
required_candidates = 1
weight = 4
cost = 10

XENOMORPH:
required_candidates = 1
weight = 3
cost = 10

NIGHTMARE:
required_candidates = 1
weight = 3
cost = 10

ABDUCTORS:
required_candidates = 2
weight = 4
cost = 10

LATEJOINS

TRAITORS:
required_candidates = 1
weight = 7
cost = 5

REVS:
weight = 2
cost = 20
var/required_heads_of_staff = 3
/// How much threat should be injected when the revolution wins?
var/revs_win_threat_injection = 20

HERETIC:
required_candidates = 1
weight = 4
cost = 10

Some of these values (i’m looking at you xenos and blood brother) are not in what I’d call a balanced place.
What’s your opinion on this?
Are threat level and cost balanced?
Should the initial threat be higher? lower?


A bit related, do you prefer dynamic to normal rounds? Would you like it to see it (maybe? :person_shrugging:) replace all gamemodes?


I’ll add here a few polls (because they’re fun :triumph: :muscle:)

How many points should dynamic rounds usually have?
  • 50-ish is good
  • Lower than 50
  • Higher than 50

0 voters

Should dynamic replace all gamemodes?
  • Yes
  • No

0 voters

6 Likes

THIS IS NOT AN OFFICIAL POLL, i’m just interested in your opinions

I should have made it more clear :sweat_smile: :face_exhaling:

2 Likes

trough shared communal power… we will make it official

3 Likes

I firmly believe that dynamic, despite some of it’s flaws, would make 95% of the rounds more enjoyable for everybody. No more boring stealthling rounds, no more meta guessing ‘oh it’s lings therefore it can’t be cult’. It caters to bascially everyone on the server. Those that enjoy roleplay more than so called ‘clicking horizontal’, and otherwise. Rounds where nothing happens cater to nobody. Best roleplay experience is when you are put in bad situations and somehow manage to get out of them alive, not when you fart and shit for 90 minutes and leave on the shuttle.

9 Likes

I agree, dynamic rounds always end up exciting. There’s something there for everybody involved.

4 Likes

Does anyone disagree (like i do) with some of the threat point values (or weight)?
I would like to have some player feedback on that too.
Do the values feel off? Should xenos only be 10? should nukies be 20?
Should more gamemodes have a minimum players count?

1 Like

Kinda split on if it should run 24/7. Things like revs are actually dreadful on dynamic and should absolutely be their own gamemode. But for everything else? Yeah sure.

2 Likes

Dynamic is nice but some of the threat costs are fairly dubious.

Talking about Aliens/Wizard namely.

4 Likes

The issue in this case would be the cost, then. It should cost enough so that it would be the only threatening antag chosen for the round.

1 Like

Make it dynamic 24/7 and remove revs entirely.

3 Likes

Actually this is a good point, you can just have it so that revs and xenos stay as their own game modes by just having them consume all the threat, while retaining dynamic status.

1 Like

Dynamic should be the only game mode that runs because it completely stops players from making meta decisions after the round type has been determined and keeps things interesting and unpredictable.

However dynamic needs to follow a weighting system for which antags it picks in addition to having variable threat costs. Those threat costs probably need some readjustments as well - Overall the average dynamic round is way more active and hostile than an average round of any other type except loud conversion rounds (revs) and frequently spawns antagonist types that are supposed to be quite rare.

5 Likes

One of my favourite parts of dynamic. Also heretics and wizards can spawn during it!

1 Like

Dynamic is fun, there is no question in that. The majority of players find it more enjoyable.

So why not make it the prime mode selected?
Crossed, please make this happen.

Our current rotation is stale and boring. Very little drives and the story because the level of threat in other modes are typically insufficient to empower conflict.
It also gives round removed playersa reason to stick around

For revs, i would argue that revs as a mode is terrible.
No one wants a shift where they are setting up a project only for the shift to end just because of revheads/heads dying. The mode isnt being maintained to address that problem.
On dynamic theres a solution to that problem As the round keeps going(also one of the reliable ways to tell its dynamic). Also love that threat is injected after it.

Run dynamic 24/7 as a trial, after it do a poll and adjust threat from there. We should not change the weighing until we get a good sense of the weighing/cost’s place

That said i agree xenos need to be tuned down (we have exploration xeno morphs artificially increasing it).

3 Likes

5 Likes

From what i’ve seen on videos from /TG/ ss13 youtubers like Livrah and Melbert, their Dynamic is… quite different than ours, i’m not sure how different or outdated our Dynamic code is, but what /TG/ does with the influx of antags keeps the round momentum going, because yes, we’ve had rounds where we had the traitor caught three minutes into the shift and it becomes an Extended (if we also add to the formula that the midround doesn’t toggle), while i’m not against Extended, if this happens three rounds in a row well… there’s no momentum, no antagonist force driving the round, etcetera, i’ve also seen the other day a Dynameme that ONLY included a SINGLE regular traitor in a round that almost touched the 2 hours mark

So, Dynameme is fun when you get a good influx of antags spread through the duration of the round but nothing like FIVE WIZARD THREE BLOBS THREE NUKIES obviously (though having one every once in a while might be chaotic fun lmao)

Every video i’ve seen from those youtubers, their round end report is with multiple antags and they certainly drive the round as showcased of the multiple things that can happen

Of course the weights of the antags should be revaluated and tweaked properly, someone knowledgeable on coding could check our dynameme code and /TG/ so we can see what differences we have in values

2 Likes

we have the big one (dynamic 2021) but i believe they did another major revision since

3 Likes

XENOMORPH:
required_candidates = 1
weight = 3
cost = 10
NIGHTMARE:
required_candidates = 1
weight = 3
cost = 10

This two have the same cost, I think Xenos should be /more/ expensive, they are usually a round ending antagonist, and they are far too common!

5 Likes

Dynamic needs to be fully rewritten

5 Likes

It would be interesting to discuss how a new dynamic gamemode should work.
What percentage of rounds should be “low/high-threat”, should there be a ceiling/floor to the threat values, which antags should be the most common, should more threat be injected when an antag dies/gets arrested, etc.

I’ll look into what the TG counterpart did different

5 Likes