Two weeks ago we looked at MÖRK BORG combat:
This week we’ll take a look at character creation in CY_BORG.
MÖRK BORG hacked
CY_BORG is a “rules-light, rage-heavy” cyberpunk tabletop role-playing game.
CY_BORG is a game about climate collapse, out-of-control consumerism, the commodification of personal data, late-stage capitalism, transhumanism and senseless violence. A fever-dream of tech, punk and fury. Of fighting a failed future. A deck-hacking, brick-throwing upheaval of a game. The game casts the players as cybernetic punks and misfits raging against a relentless corporate system, corrupt police forces, and alien/nano-worshipping cults. The setting is the dystopian metropolis Cy, the only city that matters.
It’s a spin-off of MÖRK BORG, hacking the original from “a doom metal album of a game” into a “nano-infested doomsday RPG about cybernetic misfits and punks raging against a relentless corporate hell.”
Creating a punk
Just like MÖRK BORG, character creation is fairly simple and relies on dice rolls. There’s even a one-click character generator to get you started.
After rolling for some credits, cheap clothes, Retinal Com Device, and some starting gear, you roll for your five abilities: Agility, Knowledge, Presence, Strength, and Toughness:
Roll 3d6 and use the table to generate ability scores from −3 to +3. Classless Punks roll 4d6 and drop the lowest for two abilities of their choice. Punks with a class follow their classes' instructions and roll 3d6 on the rest of their abilities.
There are six classes included in the CY_BORG rulebook, each with their own starting ability modifiers. For example, the Burned Hacker is “Cutting Edge” and rolls 3d6+2 for Knowledge, but also “Unhealthy Living” and therefore rolls 3d6-1 for Strength.
Here’s the full list of stock classes and ability roll modifiers (i.e. 3d6+X):
All of them appear to net zero (i.e. -2 + 2 = 0, and 2 + -1 + -1 = 0) to keep them balanced. It’s a little odd that none of the classes get an ability adjustment, but that appears to be handled other ways. For example the Forsaken Gang-Goon is “Stealthy” that makes all Agility tests -2DR.
You then convert each roll into an ability score using the reference table:
At the end, all of your abilities get a score ranging from -3 to +3. There are used to test (i.e. skill checks) versus a Difficulty Rating (DR). You need to roll 1d20 + Ability with a result equal to or higher than the DR. Simple tasks might have a DR of 6, while an almost impossible task might have a DR of 18.
So you have the choice of (A) using a “drop the lowest” advantage system (similar to last week’s Fallen skill check post) for two abilities, or (B) using the normal 3d6 roll but with class bonuses to specific abilities.
Question: What are the typical final ability scores (-3 … +3) for each of the six CY_BORG classes?
It’s Python time!
The Simulation
While not as easy as last week’s skill check simulator, this one shouldn’t be too complex.
As always, let’s start with stating some assumptions:
Only core classes. Thanks to the generous third-party license, there’s already a ton of content for CY_BORG, including classes. We are just looking at the stock ones.
Ignoring special abilities. Characters are far more than the sum of their ability scores, and each class usually has a special ability or two. These add flavor and interest to the game, but will be skipped for the simulation.
The first thing we need is to be able to convert ability score rolls into actual ability scores:
# Convert total -> ability score
def cb_score(total):
if total >= 1 and total <=4:
s = -3
elif total >=5 and total <=6:
s = -2
elif total >= 7 and total <= 8:
s = -1
elif total >= 9 and total <=12:
s = 0
elif total >=13 and total <=14:
s = 1
elif total >=15 and total <= 16:
s = 2
elif total >=17 and total <= 20:
s = 3
else:
print("Something went wrong.")
return s
Totals in the range of 1-8 will give a negative score, 9-12 will be neutral and 13-20 will be positive. If we had a flat distribution of totals from 1-20, the resulting scores would be 40% negative, 20% neutral, and 40% positive.
Comparing ability roll methods
Before we generate some class stats, let’s first take a look at the rolling methods:
3d6 + class modifier
3d6 with no modifier
4d6 drop the lowest (advantage)
The “drop lowest” method (i.e. advantage) should look familiar from last week:
# 4d6 drop lowest
pool = sorted([randint(1,6), randint(1,6), randint(1,6), randint(1,6)])
pool = sorted([ pool[-1], pool[-2], pool[-3] ])
total = sum(pool)
score = cb_score(total)
For each one we’ll roll that method 100,000 times and then take a look at the distribution of results. In each case, we’ll keep track of the resulting ability score as either negative (Score < 0), neutral (Score = 0), or positive (Score > 0).
Here’s the smoothed KDE plot of the totals:
You can see that the 3d6 method (orange) has an average of 10.5 and a median of 10. The 3d6+1 and 4d6-drop method are both shifted to the right (i.e. better), but in different ways. After the roll totals are converted to scores, the difference is clear:
No surprise that 3d6-2 and 3d6-1 are the worst (9 - 16% negative). The basic 3d6 roll isn’t too bad (26% negative and 26% positive), but 3d6+1 is only partially better (16% negative and 37% positive).
With flat modifiers usually being better than advantage, 4d6 advantage (11% negative and 49% positive) loses out to 3d6+2 (9% negative and 50% positive).
What is a little surprising to me is that even with either 4d6 Advantage or 3d6+2, you still have around a 10% chance of ending up with a negative ability score! That can happen, for example, if you were to roll any combination totaling six or less. Even with your +2, you’d only get to 8 total which would still be a -1 ability score. Granted, you effectively have zero chance of getting a -3, but in the simulation 1,853 times out of 100,000 was a -2 (~2%).
Either way, that would be pretty rough, considering you already (probably) took some negatives in other places.
We can break that down into actual final ability scores:
Or to look at that same data another way:
My main takeaway is that the ability score methods really push toward the center and +/-0 scores, but the chance for a really high (+3) or low (-3) score is almost always present.
Character class abilities
Now that we know how each type of roll behaves, we can run the same simulation but for each character class.
Let’s make a hundred thousand Shunned Nanomancers!
In this box and whisker plot you can see the impact of the skill ability modifiers. The vertical axis is final ability score.
The Shunned Nanomancer is “Weird” for 3d6+2 Presence and “Ill” for 3d6-2 Toughness, and the rest are straight 3d6 rolls. Converting to ability scores, you get the chart above with boosted Presence and reduced Toughness, but who need toughness when you are wielding nano powers?
Let’s run the same thing for every character class:
Nothing too surprising here, given that we already looked at how each roll method works.
If you wanted to min-max for ability scores (ignoring special abilities), you’d pick no class and go with the 4d6 advantage method for two abilities. In practice, however, that would be (1) maybe less fun, and (2) probably not as good because you are missing out on special abilities like having a “a semi-autonomous quad-bot with tools including a heath scanner and torch.”
Conclusion
We simulated a tiny part of the overall game. In an actual game, the fun comes from failed rolls and exceptions, by way of guidance from the GM.
Every time I do one of these simulations, I think of the E.B. White quote:
“Explaining a joke is like dissecting a frog. You understand it better, but the frog dies in the process.” — E.B. White
Much like we discussed last week, I’m not sure knowing the chances and stats ahead of making your character increases the fun. In fact, I’m pretty certain it would do the opposite.
As always, however, there might be some game design thoughts we can pull out of this:
Consider if complex character creation is necessary. The character creation methods in MÖRK BORG and CY_BORG are already streamlined, and serve as an example. When designing a new system, it might be worth thinking about if you need a mixture of dice rolls, modifiers, advantage/disadvantage, tables and more. If the stats all work out roughly the same, there might be an opportunity to streamline.
Be careful about edge cases. I was surprised to learn how there’s a 9-10% chance of getting a negative modifier even with a 3d6+2 class method. That fits the CY_BORG world perfectly, so I don’t see an issue in this context, but it’s worth thinking about when designing other games. Simulations can help with this.
Classes can be more than the sum of their stats. The six CY_BORG classes are oozing with theme and style, using minimal flavor text and glitched art. If they were reduced to just a table of stats, it would lose the magic and would be considerably harder to role-play. Whether it’s a TTRPG or a board game, if theme matters, then those bits of flavor and style are critical.
Free CY_BORG heist download
I was inspired by the title of this post to make a CY_BORG heist trifold pamphlet called A Hundred Thousand Burned Hackers. You can get a copy at the Exeunt Press Itch.io store.
As a way of saying thanks for subscribing to Skeleton Code Machine, here’s a code to download it for free: B7C6Q87TV5.
You must use that link to claim, and it’s only valid today (March 7, 2023).
I hope you enjoy it!
See you next week!
— E.P. 💀
Excellent breakdown of the relevant stats. For someone as math illiterate as me, this is really nice to see visualized!
For a second time, thanks to this newsletter I have learned more about a Borg system than I previously managed to absorb by reading the manual.
PHENOMENAL read as always.