cyberpunkdreams, Software Systems Design, and Division of Labor

Or: Everything’s an Inventory Item? Why?

Or: Speculation on How a System was Designed to Allow Writers to Effectively Define Software Behavior

cyberpunkdreams is a free-to-play RPG with mechanics similar to Fallen London. I’m only a little ways into it, but I’m liking what I’m seeing so far.

But what I really want to talk about is the way there’s sort of like two levels of game mechanics here, one implemented on top of the other; I think it’s really neat! While Fallen London did something similar, I think cyberpunkdreams pushes the concept a bit further.

(I will note that I haven’t actually seen the code of this game, so what I’m going to talk about is 100% speculation based on the user interface and my own general knowledge, rather than any specific knowledge)

It seems that basically everything in this game is tracked as items in your inventory. You’re living your life in a city and things open and close at certain times, you need to be dressed for the temperature, you have relationships with various groups and people, you make progress in your quests, you can be in certain moods or have certain status effects, and all those things seem to be, at a basic level, considered to be items in your inventory.

A tooltip from the game:
Time of day
Requirement not met
You need to be outside a min of 2 and a max of 7. You have 5 (the time is roughly 5am, and it's a Friday).

“You have 5” meaning that the current time for your character is 5am is interesting wording, and definitely not intuitive on its own. But it’s very revealing when you start seeing this same sort of wording elsewhere. Of course, this is the same sort of wording you get when talking about how much money or other resource you have for an action that will spend it. It’s also the wording used when there are requirements in terms of a relationship, quest progress, or level of familiarity with the local area. Equipping certain items adds or subtracts certain values like “Outfitted/Work” or “Style/Cybergoth”, which seem to also be treated as their own inventory items (and act as modifiers on random checks or gates to certain actions)

So basically, there’s this one core mechanic: you have items in your inventory with certain quantities and these quantities can change. And it’s really quite impressive how much game has been built on top of that!

Now other RPGs are implemented in ways that are somewhat similar, of course. For instance, in Skyrim your quest status is tracked as a number, and the game looks up text to display in your quest log based on what status number is associated with that quest for that character. But still, in most RPGs, quests, items, and character status are just fundamentally different things. Meanwhile, in cyberpunkdreams, those all seem to be handled the same way, with similar UI elements for displaying progress towards increasing values and current values, and similar language for displaying required values for certain actions or the impact of these values on success chances.

The quests page in cyberpunkdreams. The quests are organized under various headers and are displayed with icons and names. For most quests, a brief description of the current status is also displayed, but a few just have a number in place of the description. In the top right there's a text box for entering a filter, labeled "Filter items".
The progress screen. This has the same layout as the quest screen, along with some values having quantities and others having descriptions. Again, the filter text box is in the upper-right.
The inventory screen. The sections look similar to the Quests and Progress screens, though the individual items only have their icons displayed, with a quantity in small text in the corner. The standard "Filter items" text box is there, along with a "filter by effect" text box and a few other buttons.

Now, aside from the minor detail of the inventory screen not displaying the item names, and all the values being numbers in the corner, the inventory screen is basically the same as the quests and progress screens (and other screens I didn’t show).

Besides just finding it striking how regular/consistent this mechanic is, it also, to me, implies a certain division of labor. Basically, this is on the simple side in terms of how the underlying software works; a character is a sequence of values, each value associated with a particular type of thing; that thing might be “Ohio Dollars” or “Lethargy” or “Time of day”, it’s all the same to the underlying system. Then, on top of that, there’s the system which builds a game and story on top of that. This action requires “Familiarity / Slums” to be at least 3 and “Time of day” to be between 9 and 17. That action requires “Outfitted/Party” of at least 5, “Under the influence/Alcohol” to be no more than 5, and “Ohio dollars” to be at least 10.

(Now here’s where I get really deep into somewhat-informed speculation)

Basically, somebody who may not be as proficient in writing actual software can still essentially program in quest requirements, checks, and effects given by events by interfacing with a fairly simple system. And I do find it pretty impressive how much game is able to be built on top of this system. Like, you would be mad to build a tabletop RPG like this, but this is perfect for a software system that supports a large amount of scripted content made by people who don’t need to know how the software system works.

The credits page for cyberpunkdreams. Most of the sections, particularly the technical and leadership ones, have just one name: "Rob Chant". The "Additional Writing" section has 5 names: "Ayrton Taylor, Chris Hall, Eduardo Carmo, Harry Black, Kati Ecker"

So I took a look at the credits, and yeah, that’s about what I thought. All of the technical work is credited to one person (holy shit that’s impressive, Rob Chant!). And there are 6 people credited for “Additional writing”. I’d bet that these writers do need to have some idea of how to think about concrete requirements (in terms of game actions), but I’d also be willing to bet that they don’t need to worry so much about the differences between looking up a character’s stats, looking up what’s in their inventory, or looking up quest progress. Or of modifying any of those things. Basically, the software development side seems to have created what is likely a rather simple core system and restricted set of operations that others can use in a flexible fashion to come up with a broad array of meanings. And I think that’s just really neat!

Anyway, if you want to check the game out (which I do recommend), it’s free on Steam. And if you’d like, you can add my referral code once you’ve made an account: Qol6D8vJ – I know you’ll get a choice of equipment once you do so, and I presume it’ll give me something too.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.