Spice it up with X0-1V1
By now you may know that I just did a surprise release of Beta 17. It's out there, public, without any prereleases... surprise :D
For years I've wanted to find an opportunity to do at least one more release that goes back to the early days of no one knowing it was coming, or even what was in it. There haven't been any good opportunities to do that given the design schedule, or as releases got more complex and required longer more thorough testing periods, plus of course patrons want to be a part of that process where possible. So it would have to be something unique to fit the bill, and what's in Beta 17 certainly qualifies.
The bigger part of the surprise is that it is not at all what was originally advertised as the goal of "Beta 17" (which has just been moved back as a result). No Hexidium yet, but it's equally Unchained-related in a huge way given that it introduces X0-1V1, and does them justice by giving them power akin to the DCSS god after which they take their cues. (Where this power comes from is a lore story for another day, though there are a few more hints hidden out there now.)
As mentioned in the release announcement, this content was going to be put out as 16.2 in order to maintain the existing roadmap numbering, but it got big enough to deserve to be its own thing rather than what I had hoped to release as an AFD build (just without the whole separate mode thing).
In this article I'll be giving you additional background info about the development and X0-1V1's mechanics (there's a reminder further below before I get into spoiler territory, in case you want to pause there).
Who is X0-1V1?
For those of you who aren't familiar with the origins of this whole concept, "Xom" (converted to "X0-1V1" for Cogmind naming purposes) is a god in the roguelike DCSS (Dungeon Crawl Stone Soup). Specifically a capricious unpredictable god of chaos who may be nice or mean to "its" followers, its mood changing on a whim.
If you're on Discord, you've probably seen us (or partaken in) throwing the Xom tile around on a daily basis, which is actually the DCSS tile of the altar at which you worship to become a follower of Xom (who has no other in-game representation, so this is it):
I even have one on Twitch, and also made a modified version for the sever which is appropriate at times:
The main point of Xom is to introduce more craziness into a run, for better or worse. Embrace the good (which may be very good!), deal with the bad (which may be--you guessed it, very bad!).
Xom, and X0-1V1, can do all sorts of things. ALL SORTS.
More on that later.
Alignment Outside Alignments
X0-1V1 in effect is kinda like a whole new alignment, though unlike most alignments that tend to lock you out of some or all others, the unpredictable nature of X0-1V1's behavior being self-balancing allows it to be fully compatible with all other alignments (also working okay from a lore perspective). This significantly increases the variety of possible run combinations.
The sheer scope of work required to realize this, and do it well, was also unprecedented. This is not a mere set of character-focused effects like for example RPGLIKE, which while not fully developed is very high-impact for the amount of work that went into it (just two weeks!). X0-1V1 is similarly high-impact, but many parts of it are handled from the other side of things, tying effects into so so many other mechanics and content throughout the game. (Xom in DCSS is similarly more involved than the other gods insofar as development and variety of experiences.)
We actually already have a similar analogy in the form of CY-PHR, who was a lot of work due to the many systems that ties into, but at least it was limited mostly to the world of machine hacking and some mechanics that touches, which is decided smaller than "entire game!" If cogmind were a smaller, simpler game this would not have been such a big deal, but as you know we've been expanding on this world for over a decade, so... yeah, I should probably be wary of doing this type of thing in the future xD. The extra work is essential though, for consistency--we don't want X0-1V1 just manifesting in certain specific (predictable) subsections of the game; also for variety, because that's the foundation for roguelikes given that it is responsible for both replayability and unique challenges.
Data-wise it's always at least a little instructive to count lines of code to compare just how involved some new feature was to implement, something I previously shared for other Unchained given how complex they've been. X0-1V1 turned out to be 7,849 LoC, or a whopping 2.9% of Cogmind source... As a reminder, CY-PHR was 2,632, a respectable chunk in its own right, and third-place 1B-0RG was 1,677.
Development was slowed a bit by the aforementioned personal issues, but also (when I could work on it) due to the repeated contextual shifts required throughout the development process. By comparison working on Borg mechanics, for example, is a more isolated affair centered around a specific subset of content, where progress is fairly smooth while dealing with an uninterrupted few sections of mostly new code. But when building something like X0-1V1 you have to keep jumping from existing system to system to integrate additional features, all while trying to make sure there are no new bugs.
Due to this reach I went down a few architectural rabbit holes, some over a decade in the making because this really exposed some fundamental issues. Gamedev is all about taking reasonable shortcuts where you can, so of course I've done that in places, but if you work on something long enough, eventually you might run into the associated technical debt. For one, it turns out that knowing precisely how many enemies are in your view at once is rather important for X0-1V1's consideration, but it also turns out that Cogmind has not always calculated this correctly, and it took forever to uncover the full extent of this problem and how to resolve it in the edge cases where it failed.
Overall I did a lot of testing, including even some actual runs of my own, though I imagine that without the normal prerelease process there'll be some new emergent bugs to fix, which I'll be patching ASAP if they're serious, or hold onto them for a bit if not. Either way, I foresee at least a patch or two over the next week. (At least to re-enable wizard mode and other similar external features, which are currently temporarily deactivated.)
Good thing is, it seems to be working okay! And it's neat! But I won't say anything more for now, and won't be streaming Beta 17 in the near term, either, to let others try it out first.
So You Want To Be Pious
Okay, NOW come the spoilers, and this is where I will be saying more that you may not want to read just yet if you'd like to play completely unspoiled. (But if you haven't done so yet, consider actually checking out the announcement because there's general information over there which is not included in this article!)
STOP NOW OR THE SPOILERS SHALL FLOW FREELY. (Though I should point out that I'm still not spoiling everything here, and what lies below is mostly a description of the new UI features and an introduction to how X0-1V1's general mechanics work, without much in the way of specific content spoilers. So it's not that spoilery--depends on how much knowledge you want to start with.)
.
.
.
.
.
.
.
.
.
If you're still here, or come back later: Let's dive into the mechanics of how X0-1V1 works!
A great starting point for understanding X0-1V1 is of course... Xom. DCSS Xom has its own page on their wiki, which gives you a pretty good summary of how everything works, because that was also my starting point with X0-1V1.
Here's an even shorter summary of fundamentals, all of which apply in both DCSS and Cogmind:
Although Xom has a concept of "piety," or essentially how much favor you have in their eyes, unlike with other gods (in DCSS) you can't affect this state at all. Xom is a god of chaos, and their mood is also chaotic. They start with a random fondness or dislike of you, and it changes randomly.
Xom has a separate level of "amusement" reflecting how entertaining you are to them. They like it when you get into trouble or suffer misfortune, especially funny misfortune that you didn't cause or couldn't predict. In other words, it's also hard to control how amused they are. This amusement falls naturally over time, so you've got to keep pushing forward to hopefully keep them entertained. If Xom eventually reaches an actual state of boredom due to ongoing lack of entertainment, they will start causing lots more chaos, which might not be a good thing.
Xom intermittently performs random godly actions, divided into four categories spanning the combinations of good vs bad and combat vs non-combat. So Xom's actions generally depend on context. While your piety is high (i.e. Xom's in a better mood), the chance of a good action is higher, but bad actions are always possible. Even with low piety, if currently in combat a high level of "tension" can suffice to increase the chance of a good action--Xom naturally finds danger more entertaining.
Xom is actually capable of saving you from death! The chance is higher at high tension, and increased by Xom's amusement level. Certain causes of death Xom might even find hilarious in their own right, giving a final boost to your entertainment value before deciding whether or not to save you.
Also as in DCSS, you do have to proactively choose to "worship" X0-1V1. Although Unchained in spirit and reputation, they will not come after you on their own. I did build that into the mechanics in case I wanted it to be possible in rare cases, but that's currently weighted at 0% because X0-1V1 can completely derail your entire run and there is no way to get rid of them. So you gotta take the proactive route. In DCSS you do this at an altar, so Cogmind now has a relevant Terminal to serve this purpose, always found in a certain location in -10/Materials. We're not going to be seeing m/any people doing this accidentally, considering this special terminal is empty ;)
Being where it is, you get (and must endure) the effects of X0-1V1 for the entire duration of the run.
Moving on to the more unique properties of Cogmind X0-1V1...
There's a part. Because of course there's a part :)
Upon gaining X0-1V1's attention, this little thing will appear, but you technically don't have to use it. It's likely most people will want to, at least most of the time, given it has the effect of slowing X0-1V1's amusement decay, and perhaps more importantly letting you know X0-1V1's current mood. Don't worry about losing it--X0-1V1 will be happy to provide replacements aplenty.
X0-1V1's mood is reflected at the top of the parts list where faction alignment information goes, overwriting anything else. This uses the same range of descriptive terms found in DCSS.
If on the bad side (emphasized in orange/red), things might take a turn for the worse if X0-1V1 decides to act; good things might be in your future if the current mood is positive (green/fuchsia).
While attached, the so-called "Piety Tracker" crucially displays X0-1V1's level of entertainment, from 0 to 100.
Unlike DCSS where Xom's amusement is entirely hidden and doesn't affect anything until it actually reaches 0 (bored!), for Cogmind I decided to have that value give a corresponding little bonus to the chance of good actions. In that way the mechanic is somewhat more lenient than DCSS, plus I liked having a way players may at least have some meaningful control over the chance of good actions. There are a few controllable and even repeatable behaviors that X0-1V1 does find entertaining. But of course X0-1V1 likes them because they may be somewhat chaotic and therefore dangerous (but also therefore entertaining!). You'll have to find out what those are. Let the Piety Tracker be your guide.
The Most Interesting Robot in the World
Events that X0-1V1 finds interesting are usually reported in the message log, and usually immediately after whatever caused it so you can see the connection. There are a handful of more general cumulative cases that may be less directly associated in the log, such as getting the bolts beat out of you in a short time, but most causes are pretty obvious.
The general amount of amusement is reflected in the wording, ranging from low interest to hilarity, but you can also see associated numerical values added to the PT readout if you've got it active at the time.
Before even getting to the things X0-1V1 actually does, I had to go through the game looking for every single thing X0-1V1 might be interested in in order to detect that, and assign a value to it xD (sometimes a dynamic value depending on circumstances). Right now in total we have 123 different sources of X0-1V1 interest, which I subdivided into 10 categories for organizational purposes. The distribution of these sources is as follows:
As you can see, more than half of what entertains X0-1V1 is by nature limited, requiring you be in a certain location, or using certain item(s). Some major events are quite amusing so their positive effect could hold for a while, but you'll generally need to push along to increase the likelihood of reaching entertaining points, or else maybe X0-1V1 could just force the entertainment to come to you :xomFace:
Acts of GodX0-1V1
After ages spent working through points of interest, then came deciding the range of "acts" X0-1V1 can perform, and actually implementing them.
There are a total of 105 different acts, many with different variations, and the effects of most are further tuned by the "magnitude" of your current piety, i.e. the further from neutral X0-1V1's mood currently lies (this, too, is how it works in DCSS). Although called "your" piety, it's really just your standing with X0-1V1 as determined by their mood.
So if you see X0-1V1 considers you a special plaything, or very special variety thereof, expect especially nasty things to happen (but then be extra pleased when X0-1V1 decides to make something good happen instead!); and if you are a beloved toy, or even reach the state higher than that, look forward to something nice (but don't be surprised if X0-1V1 instead somehow kicks your butt and laughs about it).
As mentioned before, there are good/bad combat actions and good/bad non-combat actions, with the variety distributed like so:
These are also further organized into subcategories for my own design purposes, normally separated by good/bad/combat/non-combat, but the visual distribution when broken down like that isn't especially interesting or telling, so here I've merged them all into their relevant types:
I had even more potential ideas on my acts list, but had to leave some out, sometimes for complexity reasons. For example I looked down DCSS' list for anything that might be cool to fit in, and liked the idea of creating walls between you and your enemies, but doing so in an effective manner was going to require way more work than it'd be worth so gave up on that part way through xD
Not that I shied away from complexity for X0-1V1. There is definitely a fair share of dev-consuming elements in there which are very much worth it, as you'll see ;)
Note there is a bit of a cooldown on X0-1V1 performing the same act multiple times in a row, but technically no cooldown on multiple different acts, which becomes especially meaningful if X0-1V1 gets bored--expect total chaos. You will be warned if interest is dropping low enough that X0-1V1 will soon reach boredom, and when eventually bored this will also show on your HUD:
Also certain acts can only occur no more than once per map, while some other rare special acts may only occur once per run.
I had to make a big decision about whether to let X0-1V1 interfere with otherwise peaceful maps, which would naturally be highly disruptive to any long-term plans for a run. While technically feasible, it would be a lot of extra work to manage edge cases and keep things realistic and also fun or even something players might want to do, but seemingly not especially worth it in the end, so I went with X0-1V1 quieting down for these locations. You'll be notified of this upon entering such an area.
So yeah, not really comprehensive spoilers here, just enough to let you know how everything fits together while you explore the details of X0-1V1's capabilities, what they like/dislike, and certainly some related new content. I haven't said anything about the new items or robots listed in the changelog...
Add some spice to your runs! Try X0-1V1 today!
Comments (2)
First the Borg and now Q! Can't wait to meet them. Hope your move went well! :)
Haha, Q is a great way to put it in that context :) Still haven't moved, unfortunately! Still working through that, but it's at least... mostly set up, although will be quite a time-consuming project starting in another month or so leading up to that happening :/ (new place will need a fair bit of work before can move into it, but at least we happened to find something suitable)
