Official development blog

Rebalancing Cogmind

A decade of development into a huge project is almost unavoidably going to accumulate some amount of cruft. Mechanics that are never quite worth taking advantage of, items that haven’t lived up to their potential, or were later superseded by other options but remained unchanged, or even long-term experiments that were included at some point but never updated/expanded/removed.

Cogmind began its life as a 7DRL, and a portion of items designed back when the game was overall a very different environment didn’t evolve at the same pace. Now obviously the most egregious of these have been gradually addressed over time--we don’t want these sorts of things sticking out like sore thumbs, and it’s not like such issues have been completely ignored. That would be bad :P

But it’s all the tiny bits and pieces here and there which add up over the years, and across the breadth of the game, which do need to be examined and polished to fit into what the game has become. For the most part, elements that haven’t been addressed yet were relatively minor, out of the way enough that they could be safely ignored, though the pursuit of perfection necessitates a proper full pass to refine… well, anything that needs it. And if we want to find an explanation other than temporarily suppressed OCD, the current timing of this process is significant: Cogmind is well past “complete” status, especially ever since Beta 10 released in 2020 and finished off the last of the required features (ambient audio), so now is the time to do a more thorough job refining everything before embarking on new expansions.

Some roguelikes don’t strive for balance, but maintaining balance has always been important to me for Cogmind, since it fits better with my vision for this type of game, heavy on tough, complex, and consequential decision-making at multiple strategic and tactical levels. (You can read more about the underpinnings of Cogmind’s early low-level balance in my article from the pre-alpha days.)

Actually, beginning over five years ago there was a plan to one day do a sweeping review of Cogmind’s parts, especially utilities (as they represent the bulk of Cogmind items and offer the widest variety of unique effects), basically to ensure that everything was working together smoothly and had its proper place in some compelling Cogmind build or another (or at least for other robots!). The first part of this so-called “Great Utility Update” began during Alpha 12 with a few fundamental mechanical changes, but since then the project remained on the to-do list until 1) even more content was added to the game, and 2) we collected more info about what items people were and were not using, and why.

It made sense to wait as long as possible to carry out this process, but the wait is finally over! Beta 11 is finally tackling this project, and we’ve already seen it manifested across propulsion, weapon mechanics, storage units, fabrication and more, but the comprehensive item-by-item review has only come to pass as part of the conclusion to this dev cycle. I must say this has been an exciting time, having the opportunity to revisit everything to iron out as many kinks as possible, in many places adding new build possibilities or even whole new mechanics.

The scope of this rebalance is way too large to cover in its entirety, and while I don’t plan to write about every aspect, we’ll be looking at the broad strokes and pick out some representative examples here and there.

Categorical Approach

Before doing a full item-by-item review, I started with two special categories of unique build-defining items: aliens artifacts and Exiles prototypes. These are items relatively limited in availability, and only a small subset can be acquired in each run, though they’re also extremely powerful when used effectively. Due to these shared characteristics, while cutting across slot types, it makes sense to work on their design as a group--they’re balanced against one another as much as they are against other parts.

Alien Artifacts

I won’t get deep into the artifacts here, but there were a fair number of changes.

One in particular was removed because its effect was unfortunately impossible to balance (somewhat funny because almost no one used it for years until discovering its true potential)--the Stasis Generator was an example of an item with a mechanic added “purely because we could, not because we should.” Some early utilities got effects like this during pre-alpha development, before Cogmind was released, when no one had even played the game yet and I was experimenting with more extreme mechanical possibilities without a strong tactical basis for their design.

Beta 11 added six new artifacts though, with even cooler (but balanced :P) effects, so that makes up for it ;)

It’s important when rebalancing to try to make up for any losses in gameplay options by adding new ones.

Exiles Prototypes

The Exiles prototypes, accessible from the early game, are in most cases not meant to be incredibly OP gear to hoard for most of a run when it could give an edge in the late-game.

Even after updates this is still a reasonable goal and fine in some cases, and many of them started off intentionally incredibly powerful (for fun, right?), though having plenty of collective experience them it became pretty clear which could use a bit of a nerf, buff, or… [my favorite kind of change:] some other sort of unique twist ;)

Cogmind Exiles Prototypes ASCII Art

ASCII art for Exiles prototypes.

As an example, by far the most sought after prototype was Lightpack 2.0, the low-mass storage unit with huge inventory space. I originally liked that it could enable very different builds if you lucked into it, but being a storage unit it was generically amazing for everyone rather than leading to interesting options--an outright significant power boost, and one that would last an entire run, at that.

Now that I was allocating all this design time to rebalancing items, there was plenty of impetus to do something more complex with it. (Back when I was first adding the Exiles prototypes, there were already a few which individually required lots of special plumbing, several days worth in some cases, so when it came to add something as “mundane” as a storage unit it was nice to take a break and speed things along by drawing some art and slapping new stats on it.) So for Beta 11 I came up with a new mechanic which was definitely going to take some implementing…

The idea is that the Lightpack does indeed allow for any build to take advantage of low-mass storage, and I even vastly increased its storage capacity, though it achieves this miracle by utilizing unstable extradimensional space which sometimes swallows an item. It might return that item when next disturbed (e.g. storing another item), or might destroy it forever. The more items packed into it, the greater the instability.

Overall the mechanics are balanced such that it’s a boon for builds that care less about losing specific inventory items, but clearly not everyone is going to want to use something so unreliable. This aligns with the concept that although Exiles prototypes are meant to be very good, they’re also usually flawed in some way, such as eventually breaking down, blowing up in your face, or something in between :P

Slot-wise Approach

Next we can actually tackle the item-wise review, basically looking at them one slot type at a time, e.g. all power sources, propulsion, and so on.

The latter were technically covered as a group early on during Beta 11 development because it would underpin a lot of other potential changes throughout this rebalance--along with storage, propulsion is the most fundamental part of a build! As Beta 11 evolved I did revisit propulsion a bit later, though just for smaller tweaks rather than to the same extent as seen with other parts.

But power sources definitely called for a comprehensive review, so it was time to break out the spreadsheets!

If you’ve seen them here on the blog before, you may recall that my own tab-delimited Cogmind data files are similar to spreadsheets, and have their own syntax highlighting, but they’re not true spreadsheets. For the purpose of analyzing raw stats it can be nice to drop all the relevant data into a regular spreadsheet, since having the same data in a different format can reveal aspects that may be more difficult to observe in their normal environment.

This is definitely the right time to do just that, so I used Cogmind’s data exporting feature (which players have access to as well) to output CSV files, then prettified them to help with the review process.

Cogmind Beta 11 Item Data Spreadsheet: Power Sources

Power source data in Excel, formatted and including updates along with supporting formulas. New or modified values appear in red text.

Another advantage of spreadsheets we can use here is the ability to define formulas and tell us more about items beyond what’s shown directly by the stats alone. In particular with power sources the generation-mass ratio is especially important when comparing across types, and with that column I identified several that needed tweaking. Conditional formatting is also very useful here to help certain values stand out, an approach I’ll be making even heavier use of further below, but it’s already come in handy with power sources.

For the most part I was already satisfied with the progression of power sources, more easily balanced since they are the smallest (and technically least creative…) slot type, with pretty well-defined subcategories. Beta 11 does, however, move towards making power slots more attractive by increasing variety and potential benefits. Aside from the handful of stat tweaks, a new subcategory was added (“hybrid” power sources which are lighter and generate less energy per turn, but store a lot), Fusion Compressors and their matter-to-energy conversion mechanic was converted from a utility to a power source, and the only artifact-level energy generating part was also converted over from being a utility. I imagine more will be added in the future, but for now we have a seemingly balanced state to work from.

Cogmind Beta 11 Item Data Spreadsheet: Airborne Propulsion

As another example here’s an excerpt of airborne propulsion data in Excel, from when I revisited propulsion stats for the umpteenth time during Cogmind’s development, seen here with formula-based supporting data points and conditional formatting.

Weapons

Although the original intent years ago was to eventually focus on updating utilities, at this point weapons actually needed a lot of refining, number-wise even more so than any other slot type!

Again in a general sense there was nothing hugely out of whack that wasn’t addressed already as necessary, but Cogmind’s mechanics have expanded significantly since the early years when the templates on which the weapon designs were based made certain assumptions about the rest of the game at the time. Taking a fresh look at everything could allow for new perspectives and suggest even subtle changes that would result in an overall improved experience.

Probably the best example of a change that came about as a reflection of Cogmind’s mechanical evolution was actually applied to an entire subcategory of weapons rather than a single one: Almost all kinetic guns had their max range decreased by 4.

I didn’t originally expect to make such a categorical stat shift at this point, but it makes sense in context. One of the big goals of Beta 11 has been to ensure items are sufficiently differentiated, and while cannons and guns have been diverging over the years via several mechanical changes, for a while guns have had the upper hand in many tactical scenarios, especially since “gunslinging” was added. Kinetic cannons could use a little something extra, so they have retained their max range as one of those advantages. That said, average kinetic gun range still exceeds visual range in most cases anyway, so this change is only relevant to certain build types.

Another area I’m instead not so surprised to see sweeping changes is impact weapons. I keep experimenting with updates to those every year since they use a different hit location model than all other weapons, one that isn’t generally conducive to the most commonly desirable goal of combat (destroying targets), and Beta 11 is no different. So I reimagined them yet again, taking into account their unique targeting mechanics and what that means when fighting other bots.

The biggest change there was simply yet more significant damage buffs. They’ve always been pretty scary when used against Cogmind, and I’ll have to say they’ve technically become even scarier! But they also might be fairly more useful for Cogmind now. We’ll have to see if more changes are necessary (…nerfs???) since this was quite a buff for weapons which were technically already starting to get good in their own niche xD. As is the changes are too new and we’ll have to see what real playtesting turns up.

Fine tuning

The weapon balancing process didn’t result in that many blanket changes, though, it was more about adjusting individual items, usually at most just one or two stats wherever they had become unreasonable for one reason or another.

Cogmind’s items were originally designed and balanced based on a large set of desired data ranges and mostly linear progression from the lowest to highest ratings, though it’s been many many years since that time, and some items were later adjusted for various reasons, usually taking into account the original scale, but not always other important factors like all potentially related other existing items, leading in some cases to either undesirable deviations from the scales, or more annoyingly items that weren’t unique enough to justify their existence.

Of course the idea of scaling for balance here is referring primarily to commonly available items, not unique one-of-a-kind items or other special gear, which are where even more of the fun comes from. But we need a stable core set of items, and that’s where the strong desire for balance comes in, especially now in Beta 11, after which we will again be free to start adding new and interesting parts to the fringes :D

Even with a scale on which to base balancing decisions, its values can only be applied to a smaller number of core items, whereas there are many parts available at each rating, and each one should ideally be different somehow, while still potentially worth using in some build, if possible. (“If possible” because there’s always some cases where a part is intended primarily for the AI bots, though it’s nice when these can also be made useful to Cogmind as well; plus there’s always the times where Cogmind will take anything they can get in a pinch!)

So anyway it was finally time to look at every. single. weapon., hundreds of them, and take into account a wide variety of balancing factors while doing so. There are a number of checks and axes along which stats are compared:

  • Does each common weapon have suitable stats for its rating?
  • In a general sense [<-insert this phrase before all statements here :P], is it unique enough compared to other weapons equal to its rating [this one, too->] in the same category?
  • Is it better than weapons of the previous rating?
  • Are prototypes at a given rating better than non-prototypes at that rating?
  • Are prototypes somewhat equivalent to non-prototypes of the next higher rating? (though perhaps still have some unique quality that might make them better)
  • Do weapons using a given prefix have characteristics that accurately reflect that prefix?
  • Do weapons across different ratings that share the same tech/name also share similar characteristics?
  • …and probably some more concerns but those are the big ones

Note: Comparing between categories, e.g. thermal guns vs kinetic guns, is occasionally needed but not quite as important anymore since each category already has a pretty clearly defined set of characteristics that make all of its constituent weapons fairly different from those in other categories.

Balancing usually takes the form of simply adjusting numbers to meet our goals here, though it’s worth pointing out that one of the advantages to doing this now, as late as Beta 11, is that we have more levers than we did back when these parts were first created. New mechanics have been added over the years, giving us new benefits and drawbacks to consider, or even use to directly control the balance by assigning brand new values and moving some of these extra levers. The original weapon designs weren’t able to take advantage of stat-based mechanics like heat transfer, unique critical strikes, and EM spectrum, or as mentioned above even widely applicable new mechanics like gunslinging.

For example, neutron-based weapons were given spectrum effects (and disruption), the first non-EM weaponry to have them, as that effect didn’t exist back in 2014. Technically this was a flavor thing, however, since these weapons didn’t need to be more powerful or effective, but part of this process has also been ensuring that weapon characteristics fit the tech represented or implied by their name. More on naming later.

Below is the weapon spreadsheet I worked with, where new or modified values appear as red text, highlighting only those changes that were made as part of the comprehensive review during late-Beta 11 (thus excluding all new weapons and adjustments made earlier in Beta 11 development):

Cogmind Item Data Spreadsheet: Weapons (spoiler-free)

That’s a lot of weapon data. I’ve stripped about 50 spoiler entries and uniques, mostly at the high tiers, and you can also download the Excel file here. (The image excludes some of the launcher data values and a few other lesser-used columns off to the right.)

While examining the weapon data, some oddities that needed addressing were more likely to stand out in this spreadsheet format compared to my normal approach. For me it was also simply helpful to visually parse a ton of compact data using a small font :P

After I was done working through the spreadsheet on my own, I also streamed it to share the process with the community, if you’re interested in checking out more:

During the stream I covered many of the individual changes and logic behind them, and we even made a few more tweaks based on feedback.

Not… Cogmind?

One important thing to remember here is that item changes tend to affect bots that use those items! Cogmind isn’t the only one relying on these things to operate, and some robots were slightly redesigned here as a result, but for the most part changes are just accepted, for example some Hunter variants were indirectly nerfed due to the minimum damage reduction on their primary weapons. I’m sure they’ll still manage to fulfill their duty just fine, so that’s okay ;)

This is even more true with changes to power sources and propulsion, as those are more fundamental components supporting an entire build. So after a batch of changes is complete, I always have to go back and check over the robot builds to make sure they won’t… you know… melt, deplete their energy then sit around, fire a few times then run out of resources, and so on.

For that purpose I have a tool I can run which outputs a range of bot performance data that summarizes aspects we care about, like reporting their effective speed based on how much they’re carrying, and their ability to sustain combat, maintain proper heat levels, have sufficient energy under different scenarios, etc.

Cogmind Robot Variant Build Test Output (excerpt)

An excerpt of output from my build testing tool, which prefixes problem values with a ‘?’ that the syntax highlighting picks up on and colors red so I’ll notice it and address if necessary (some bots are intentionally designed with “problem values” outside normal parameters, but there aren’t many such cases).

Utilities

At last we’ve reached the final category, the one for which the Great Utility Update was originally named… despite ending up applying to a much broader range of parts :P

Before starting this item-wise review process, I was really wondering what would be the best way to collect additional useful feedback about what utilities we wanted to change and how/why. One approach I considered was making a public spreadsheet listing all the items and just let anyone contribute opinions there, but while maybe fun it also seemed pretty chaotic and inefficient. With the success of the first dev stream I did with the weapon spreadsheet, I realized that would also make a pretty good format for getting feedback on utilities.

Of course after literal years of waiting to do this I also had plenty of prior notes to work from in many cases, but it would still help to go line by line with some of Cogmind’s most frequent players and get updated opinions, especially from those who’d been playing the Beta 11 prerelease builds, which include quite a few changes and new features of their own (so already a rather different experience from the public release at that point).

So in addition to my notes, a number of utility adjustments came from discussions spanning a series of streams totaling ten hours in all:

The streams were mostly for discussion of areas to address rather than making actual changes or final decisions, parts of the process I’d go on to complete later, one reason being that, unlike weapons, utilities are less of a number-focused item type, revolving as much or more around their mechanics and functionality they enable. Since it’s more than just numbers it’d take more focus and broader consideration to finalize details after determining what they would entail both architecturally and design-wise, activities that are harder to do well while streaming.

Some of the tweaks were straightforward enough, while some utility redesigns even got their own spreadsheets to more accurately test their effects :P

Cogmind Rebalance Spreadsheet Data: Core Analyzer Mechanics Proposals

Examining multiple possible mathematical approaches to a more straightforward Core Analyzer effect.

I’ll pick a few examples to discuss below, and more can be seen in the videos (since we literally went down the entire list xD).

Overload Utilities

Cogmind has always had overloadable energy weapons (toggled for extra heat and energy costs but greater damage and a random chance of triggering a nasty side effect), and back during pre-alpha when trying to pack as many different mechanics in as possible into the utility set, I decided to add Overload Amplifiers and Overload Regulators to specifically buff this subcategory of weapons. So yes this was another of those early “purely because we could” things without any playtesting or strong design basis, and it eventually showed.

Overloadable weapons were already situationally decent even without support from utilities, and it didn’t really make sense for a build to bother with such utilities since there aren’t that many overloadable weapons, so possessing both this kind of weapon and a supporting utility geared only to it would be relatively rare, not to mention the side effects are generally undesirable vs. the predictability of regular weapons.

Following this realization, I decided something would eventually need to be done about it and simply made them much rarer until that could happen. Well… something was eventually done about it: Beta 11 removed them :P

Comgind ASCII Art: Overload Utilities

Overload utility art. Maybe we’ll see you again one day?

I rarely outright remove items from Cogmind. I prefer to try fixing whatever’s wrong with them (nerf/tweak/buff) so that they’re viable on some build (and reasonably acquirable for that build in the hands of an experienced player), or if that’s not possible then turn them into some other item with a new mechanic just to always keep the number of items and interesting options stable or expanding.

One thing that made these harder to work into a system like Cogmind’s is that they had such a niche use that you don’t want them to be all that common a find--most people would ignore them, but that also means they’re even harder to apply to situations where they might actually be useful. What I like to do is add parts to at least some robot build that players can then seek out and target for salvage, but overloading is not an appropriate mechanic for other common bots to be utilizing, so that strategy doesn’t really work here.

So they were removed, but having done so I also decided this would be the perfect time to revisit the overloading mechanic itself since overloadable weapons were now “merely” powerful rather than being buffable into a ridiculously powerful state anyway (which was technically possible before).

Removing the utilities allowed me to remove the most detrimental (and only permanent) side effect, meltdowns, while rebalancing the severity and weight of other random effects. Overall the changes are a net positive for the mechanic, since it’s usable in more situations now, but we no longer need to balance for the low-likelihood synergy between dedicated supporting utilities.

Aside: I don’t actually remove mechanics like this from the source code--they’re still in there in case they want to make a comeback some day for whatever reason, but the items were removed so it’s simply no longer possible to access this mechanic.

Trap Extractor

“Trapper builds” have never quite been a thing in Cogmind, or at least not a plannable serious build type one can work toward. For a long while we have indeed had a few non-guaranteed unique parts that greatly facilitated trapping strategies, but if they’re not guaranteed (and also not replacable…) that’s not a long-term build. Not to mention this strategy is pretty limiting as it places an outsized burden on inventory space, with each trap taking up one slot.

Beta 11 changes all that.

Trap Extractors, which remove friendly/hacked traps from the ground, have new functionality allowing them to store those traps in an internal storage space, up to a certain limit. For the first time ever in Cogmind, inventory items can store other items…

I’ve avoided going this route for a very long time because it could easily be taken too far and lead to all kinds of more complicated inventory management scenarios (and balance issues) that we don’t want, but for trapping in particular it could be worth it, and it turns out that the feature can be enabled entirely via existing part interaction functionality, a very important aspect when deciding what mechanics to implement.

By design, Cogmind doesn’t have a way to allow for more detailed/unique interactions with individual parts--everything must fit into the existing range of basic inputs. Fortunately it was possible to work out a suitable approach for trap storage and deployment through an item’s cycleable third state, usually used for overloading, or in more recent years other secondary control functions that were also used to improve some utilities (for example the Field Recycling Unit).

So the three states for Trap Extractors are now inactive, extract, and drop, the extraction working as before, and the new “drop” state dropping one contained trap per turn. Clearly for this to work right we also have to limit each extractor to holding only one type of trap at a time, which is fine. There’s also nothing stopping players from carrying multiple extractors, which is likely what a real trapper build will do now.

Cogmind Trap Extractor Inventory Demo

Trap Extractor demo.

This is a pretty good example of the heavy influence interface limitations can have on game design. Sometimes devs are tempted to add yet more esoteric or one-off interface features to support some interesting or otherwise desirable mechanic, but then it’s no longer a net positive for the game as a whole since it adds to confusion and the bad sort of complexity.

It’s better to build a flexible enough simple interface that can support a desired variety of interactions, and always create features that stay within those constraints, either redesigning those that seek to break constraints, or simply leave them out. If the interface was flexible enough to begin with, there’s always plenty of different features that will work!

The advent of trapper builds might require more balance tweaks to extractors down the line (in particular with regard to their internal storage space), but they are very new so we’ll have to wait for more playtesting. I look forward to trying these out myself!

During Beta 11 this new capability did already lead to a change with AOE EM damage triggering traps, since setting off a group of them (especially Dirty Bombs) was always very effective, but acquiring the means to do so has become much easier. Now the chance of chain reactions is reduced to compensate.

Overall there might not be too many changes, though, since there is still a bit of danger associated with trapping, and you still can’t produce traps on your own and are therefore more reliant on the environment.

Force Booster

Force Boosters were always kind of a weird utility, and due to those oddities generally underused… Prime balance target alert!

High resource costs necessitating precision toggling aside, their main purpose was to increase melee weapon damage, but they did so indirectly by boosting momentum. Even with damage modifier previews to help, conceptually it’s just not great to make that unnecessary leap, so they got a pretty significant redesign.

The new design directly increases maximum melee damage by a percentage (so technically increases the damage range, since the minimum remains unchanged), and also decreases accuracy. This is the first common utility to balance its own effect with a simultaneous negative effect as a tradeoff, which I think is a neat new approach that I’ll have to keep in mind.

Cogmind Force Booster Demo

Force boosting in action.

(This change from the old dynamic momentum-based model also loses the ability to automatically buff ramming/kicking damage, but that’s not very important.)

While designing the new Force Booster mechanics, I included extra calculations in my weapon spreadsheet to show what boosted damage values looked like for different melee weapons:

Cogmind Item Data Excerpt: Force Booster Calculations

Force Booster effect on melee weapon damage (partial excerpt, green values).

The 60% buff in the chart above would be the result of combining two of the best boosters since they have the <half_stack> tag, another new Beta 11 mechanic that was determined before the comprehensive review since it definitely informed a number of utility balancing decisions.

That sure is a lot of damage…

To Be Continued?

I’m quite pleased with the results of the balancing efforts, with so many improvements all over the place, although there were a few topics of discussion surrounding utility mechanics that involved some compelling ideas but were ultimately inconclusive.

For example there is contention around the ability to extract resources from containers on the ground and what it means for tactics, and there is some interesting potential in the direction of allowing drone bays to repair and build new drones by consuming their own integrity as a resource.

Those and more got tabled in my notes and maybe we’ll see the same discussions resurrected again one day (actually the resource thing has been hashed out at length multiple times before…), but there weren’t yet strong enough arguments on one side to drive change.

Naming Items

The last thing I did at the end of this process was another complete pass over the items looking instead at their names. I felt there were places where we could potentially reduce confusion and cognitive load, in particular where there might be too many different names for utilities that have the same type of effect.

In naming items there’s the eternal dilemma of flavor vs. function. Do we want naming schemes to lean more on the functional side, which tends to be drier and lack character (see POLYBOT-7, where I leaned heavily in that direction!), or more on the flavorful side, a route I decided to take with Cogmind 7DRL, and by extension the subsequent commercial version, but have gradually scaled back over time.

The 7DRL could benefit from flavorful names because it had fewer truly unique parts (being a 7DRL…), so the idea was that this was a quick way to add some flavor, by giving unique names to different-tiered parts with the same effect type (just differing in strength). But now after all these years we do have a lot more items that actually do something different, so having different names be more likely to actually have different effects is a less confusing approach.

As a particularly crazy example, ever since the 7DRL Cogmind has had a Weight Redistribution System, Gravity Neutralizing Apparatus, Inertial Stasis Machine, Quantum Shading Machine, and Dimensional Manipulator, all of which share the exact same effect type as a utility which draws energy to provide an amount of mass support xD. So now you probably have a better idea of what I’m talking about if you didn’t already.

Unifying the names of items with the same type of effect also reduces the raw amount of terminology to remember, important since Cogmind is technically a game of static items in which you are eventually intended to be familiar with them and not have to even examine stats in order to know whether something will be good for your current build/strategy, and can also better plan in advance for acquiring certain parts. Having too many different names just complicates that process (and we’re definitely going to want to keep opening the space for even more unique items down the line!).

Since I stopped doing crazy stuff like that later on as the item pool expanded, there’s a good reason to go back and reduce some instances where it went overboard.

In most cases I’ve stuck with tiered utilities all sharing the same root name with a separate prefix for each (the ubiquitous “Improved,” “Advanced,” “Experimental,” etc.) though I’ve sometimes allowed for two or three different names in other cases where it’s worth it because the items are extra special.

Taking the mass support example above, that was simplified as follows:

Cogmind Mass Support Utilities Renaming Scheme

There wasn’t really a better low-variety, prefix-based approach that could accommodate the same number of tiers we needed. Mass support is actually a somewhat unique utility in that it’s so commonly used by other bot designs to make them work, and we need a lot of tiers for flexibility.

On the simpler front, Maneuvering Thrusters and Reaction Control Systems were merged under the latter’s name, as were EM Shields and EM Dispersion Fields, and System Backup Modules and System Restoration Modules. This also opens up some of that terminology for future use in other new items, like Maneuvering Thrusters could be a whole different thing, if a suitable mechanic is desired at some point.

Renaming was primarily an issue with some of the utilities, but I did some renaming elsewhere, too, including one type of weapon which is worth a mention: Electrolasers were classified as thermal guns, but technically they should be doing electromagnetic damage based on, you know, real electrolasers :P

This was pointed out to me by a player, and Cogmind does lean on a lot of harder sci-fi concepts where possible (plenty of research went into the items!), so I’m all for changing something like this.

It was actually really hard to come up with a fitting replacement--I couldn’t switch the damage type or anything because that’s not how Cogmind design works, I needed a thermal gun with those stats and that rating. Coming up with an alternative name that also fit snugly between all the other names of weapons around that tier took hours. Eventually I settled on quite a neutral sounding “Field Laser” (non-existent and virtually meaningless? perfect xD), which was actually a decent fit considering the bots armed with it (front-line grunts). Throughout such a long process I’d listed out so many possible names that also started suggesting new ideas for weapons tech that could be applied elsewhere, one of which I even ended up implementing then and there, the Thermic Laser.

BREAKING: Renaming Leads to New Mechanics

During the naming review I decided it was time to consider removing the lowest tier of terrain scan processing utility, the only one dubbed a Seismic Analyzer in a world where all the other tiers were more obviously named… Terrain Scan Processor. No one uses it, after all, it’s really just there for flavor, as a part on one of the common non-combat bots (Excavator).

But I liked that flavor, and really wanted to somehow keep it in the game, so in a roundabout way I got to thinking back to new types of sensors I wanted to have, and that this might just be a good opportunity for one of those: a seismic sensor.

Now as a “sensor” item we’d have to convert it from a Processor to a Device, and I guess that means also renaming it to “Seismic Detector,” but… hey, we have yet another new sensor in the game! It’s cool. (Note Beta 11 already added multiple new sensor types, for example the Active Sensor Suite. In fact there are now six new types coming in this release.)

Even better is that this sensor can be acquired from a common bot, meaning that it’s yet another option frequently on the menu for anyone looking to salvage some infowar capabilities. So what does it do…

Well obviously it senses vibrations, meaning it provides a way to detect some robots, some machines, some weapons, cave-ins, basically a subset of objects and activities going on in the surrounding areas, any that cause a vibration, though without explicitly identifying what those distant readings represent--that’s on the player to figure out based on what it looks like or how it behaves, e.g. shape, intensity (because stronger readings are brighter!), movement…

Cogmind Seismic Detector Activation Animation

Like all sensors, there is an animation associated with its activation, one that also reflects the detection range.

The idea is that Seismic Detectors offer a unique new slice of data, one that cuts across numerous object categories, but is limited to a subset of each one. So while it’s a very interesting utility due to the wide variety of objects it can detect, like any sensor data the user must be aware of its shortcomings, since for example it won’t include non-mechanical machines, flying objects (airborne patrols!), or stationary objects (guards!).

Below are some examples of the Seismic Detector in action.

Cogmind Seismic Detector Exploration

Exploring with an active Seismic Detector.

 

Cogmind Seismic Detector Combat Readings

“Seeing” combat outside a room play out via precision seismic data. Kinetic projectiles also light up targets (including terrain) due to the impacts, and at the start of this battle you can see two mechanical machines fall silent after being disabled.

 

Cogmind Seismic Detector Explosion Readings

Major seismic readings from our destructive friend causing explosions outside on ambushing a patrol.

 

Cogmind Seismic Detector Effect - Dev Recording in Waste

Bonus dev image showing seismic data in a Waste area ;)

So yeah, this neat new item came about due to a name pass, and I guess it doubles as an example of prioritizing repurposing over removal, woohoo :D

And that concludes our very comprehensive comprehensive review… for now. Balancing never ends as long as there’s new content being added, and there’s definitely new content to add ;)

Posted in Design | Tagged , | Leave a comment

Special Commands Menu Design

For years now I’ve been planning to eventually create a menu for accessing Cogmind’s lesser-used “special commands,” features not only requiring the keyboard, but even all assigned to Shift-Alt key combos. So these rarely needed (but still sometimes useful) features were already pretty clearly grouped together as a unit by their annoying modifier, but ideally they should be easier to trigger, not to mention also more readily available to mouse users.

I waited quite a while to implement this menu, mainly because I wanted to design and build it for a more stable and complete set of special commands, one that we couldn’t really be sure about until later in development (and sure enough these features have been gradually expanding and fluctuating over time, coming to a head in the current Beta 11). In the meantime it wasn’t an especially pressing issue because, again, these aren’t exactly commonly needed features, so occasionally requiring a player to wrangle with awkward commands via Shift-Alt-[“some-letter-I-forgot-because-I-rarely-use-it”] wasn’t all that terrible. Even with the advent of a dedicated “Special Commands” interface, the Shift-Alt-[letter] approach is not going away--it’s still available for those who don’t mind, or even prefer it, but as you’ll see we also gain other benefits in the process.

All you need to do is press Spacebar and a new menu pops up with a range of options originally only covered by one of these Shift-Alt-modified keys, and the menu allows both button access via mouse or hitting the corresponding key to enter a given “special command” (basically a blanket term for less commonly used UI features).

There are lots of advantages here:

  • Allows mouse access to special commands
  • Players aren’t forced to use Shift-Alt for these commands (especially on non-Windows systems, where the use of Alt can be problematic), where Spacebar+[letter] will do
  • Feature discovery is greatly improved, since all relevant options are listed following a single keypress
  • No need to remember the letter associated with each command, since those are listed as well
  • Having an explicit menu visualized in the interface also offers an easy way to describe what each feature does

The menu appearance is animated in standard Cogmind style, but input is accepted as soon as Spacebar is pressed to keep it responsive for people who simply want to use this as an alternative way to enter keyboard commands they already know, for example Spacebar+s to dump stats, without the window annoyingly popping up in between the keys. In fact, for this purpose the window even has a slight 150-millisecond delay after pressing Spacebar before it appears, a delay that isn’t really noticeable for someone using the mouse, but plenty of time to enter a second key.

UI Mockups

Before actual implementation, as always I used REXPaint to design the general layout of this menu based on its intended functionality, and to inform later UI coding work. I streamed the process when getting started, in this video where I also covered REXPaint and glanced at other past UI designs:

It’s not exactly the most exciting piece of UI design, especially since for consistency sake it mostly draws on existing simple elements from prior window designs, though I’ll cover some of the design evolution here.

Cogmind Special Commands Window Mockup 1 (REXPaint)

The initial mockup drawn on stream in REXPaint.

The first iteration above aimed at simply getting all the likely elements into a box and work from there, so it uses a pretty typical title and border style (the missing notch in the bottom-right is for a potential close button, which in Cogmind uses a different double-width character so can’t be shown in this same REXPaint file), shows the full list of commands we’ll be including (11 in all), and includes two separate sections of gray text, one to point out that the commands can also be entered directly via Shift-Alt, and another to provide a description for each button/feature as the mouse hovers over it. As this is a mockup, the gray text is not actually written out in its final form (or even to make sense :P), just copied from elsewhere as I was moving things around to get an idea of layout. Real content comes later.

Having a vertical list of options is generally ideal as far as menus go (especially alphabetically-listed options), but the problem here is that, at least all other things equal, a tall-style window ends up limiting the amount of horizontal space available for command descriptions unless they potentially span numerous lines, which doesn’t make for good reading.

Something wider would be preferred, so let’s split the options into two columns…

Cogmind Special Commands Window Mockup 2 (REXPaint)

The second mockup continued improving the layout on multiple fronts.

Unequal column length aside, this will generally look a bit better insofar as giving us more horizontal space for descriptions. Also here I split up the two gray text areas by straddling the options, since keeping them apart seems to make sense given they have different purposes, one static and another dynamic.

Altogether it was looking better, but I didn’t really like the unequal amount of space afforded to the option rows, and decided to equalize that:

Cogmind Special Commands Window Mockup 3 (REXPaint)

Further refinements with a third mockup.

In this layout the UI looks less lopsided, which while not a necessity (either could work), I preferred this aesthetic, plus we even get a little extra room for the additional text.

Final Layout

Now there’s no way I’m doing my best work while streaming, certainly not alongside an unavoidable loss of focus due to chatting and whatnot, and streaming or not I tend to sit on things like this (any kind of design work) for a bit after an initial pass and revisit them for refinement anyway. Sure enough, later that afternoon after some hours away from it I took another look at the interface and immediately had a new take on it…

What started it was that I didn’t really like the idea of this being a relatively small floaty window out over the large map view. We don’t really have those in Cogmind--windows are usually either large or connected to some other associated object or UI element, but in this case it’s a general-purpose feature menu so doesn’t have a natural place in the interface to associate with.

I thought it’d be better to try to redesign it with an eye towards having it occupy more space, and in that vein came up with an aesthetic pretty different from what we had going before, but very much in line with other pieces of the UI which offer functionality not entirely unlike this one: Cogmind’s options menu and commands reference pages!

Cogmind Special Commands Window Mockup 4 (REXPaint) - Final

Fourth and final mockup, quite different from the others but I like it!

The above mockup assumes that the window appears over the map and extends out to either side of it in both directions. The button style already matched the options menu (as does the help text), and now the header and border does as well.

Other improvements in the final mockup:

  • Some commands were renamed, ideally so that their first letter matches the associated key.
  • We actually only need one section of gray text, rather than two, because we only need the descriptions available specifically when the mouse is hovering over a button, otherwise it can display the “default” message about Shift-Alt access.
  • The extra width allows for even longer descriptions without newlines, where instead each description will be written to keep it within the length seen in the mockup above (too long is also bad). This also allows the window layout to be more consistent since we don’t need to leave room for potential additional lines.

Here is the final implementation in action:

Cogmind Special Commands Window Demo

A demo of Cogmind’s new Special Commands window, here using it to activate the map ruler overlay.

Notice how the special commands menu is not vertically centered on the map. This is to leave some environmental context around Cogmind while it’s open, for reference. Not exactly a very important feature, but there’s room so why not :D

Notes

During the polish phase a few automations were added for convenience when it comes to mode switching and feature toggling. For example, Spacebar will automatically deactivate an active map ruler overlay since this will generally save time, particularly for mouse users who otherwise have to open the menu and click on the button again to toggle it off, and there’s seemingly no real reason one would need to keep the ruler on and then also access a second special command at the same time.

There are a few Shift-Alt commands not found in the menu, all three of which probably almost no one ever uses anyway, but they also require holding the key to take effect, so probably aren’t all that compatible with this menu approach anyway.

As for mouse access to the menu itself, I considered enabling that via middle mouse button, but that already has a somewhat more important use (plus again special commands aren’t that commonly needed…). Spacebar is also big and relatively easy to hit in these cases. I also considered having a clickable button on the main UI that could be used to open this interface for even better discoverability, and completely not needing the keyboard at all, but don’t really want to go that far just yet--it’s probably not all that needed compared to the extra clutter it would add for such low-use features.

Posted in GUI | Tagged , | Leave a comment

Maps Between Maps, and DSFs

I’ve described a few times (most recently when introducing Cargo Convoys) how Cogmind’s world is divided into two primary types of maps: main areas and branches. There is technically a third category serving special purposes, one that after many years is once again growing as part of Beta 11. This other category is what I call “maps between maps,” essentially much smaller maps forming optional bridges between the regular maps.

In its first year of Alpha builds Cogmind gained two such varieties of what we could call “intermaps,” in the form of Waste and Garrisons. Waste is reached via Chute Traps that suck robots down into a dangerous but potentially useful disposal area, looping back out to another area of the Factory at the same depth, and Garrisons are a primary source of combat bots that you can chose to proactively infiltrate for various reasons. Waste maps have not been explicitly covered on the blog before, but Garrison design was discussed at length. Today we’ll be covering a new type of intermap, the DSF.

cogmind_pixelwise_world_map_sample_intermap_highlights_no_redacted_spoilers

The sample world map I put together earlier this year, now with DSFs and specifically highlighting all intermaps (redacted-level spoilers have been edited out) (full size here).

Intermaps share a number of characteristics that differentiate them from most other maps:

  • Access from multiple depths: Intermaps of each type can always be found at more than one depth, so even if Cogmind doesn’t visit them at a given depth, there are more chances to encounter and/or take advantage of them later.
  • Numerous access points: Maps containing links to intermaps usually have multiple points from which to access them.
  • Unique access methods: Intermaps are not entered via the usual openly available stairs or doors, and instead each have their own special types of entrances.
  • Small interiors: The majority of regular Cogmind maps are fairly large, with main maps containing an average of 16,000 open cells, and branch maps around 4,000, but intermaps have only about 1,000 open cells.
  • Strong theme: Intermaps are tightly designed around their own unique mechanics and theme.
  • Optional: For the most part intermaps are entirely optional pathways (except being caught off guard by a chute, although some players opt to jump down known chutes as well).
  • Strategically meaningful: These special maps offer unique challenges for specific benefits, and choosing to visit them can be a part of short- or long-term plans. Intermaps are also the only way to loop back to another variant of the current main map, which sometimes factors into strategies as well.
cogmind_average_accessible_map_cell_count_samples

Comparing the total accessible area between main maps, select branch maps, and intermaps.

The closest common analogy for these maps to be found in other roguelikes is the concept of “vaults,” or small thematic areas often with some sort of risk-reward mechanic or otherwise challenge or cost for access, though in cases where these are presented as actual separate maps (rather than contiguously embedded within larger maps as I’ve discussed with prefabs), one important difference is that vaults would generally lead back to the same map and location from where they were entered, i.e. just going back out the door or some other portal. This is not something Cogmind’s intermaps can do because by design backtracking is not possible--leaving a map always pushes the player upwards or sideways on the world map to a completely new area, as seen in the sample world map connections above.

dcss_sewer_entrance_2016

DCSS contains “portal vaults” (aka mini-branches or sub-branches), like this sewer entrance. See portals on the DCSS wiki, and info about Treasure Troves; you can also browse many portal vault sample layouts and content in the source here.

Distributed Storage Facility

“DSF” have been in Cogmind lore since the very first release, and were actually one of the earliest pieces of background lore, just a bit of world building in that it describes an aspect of the Complex that was not otherwise represented in game.

cogmind_dsf_query_results

The latest iteration of the DSF lore entry hacked from a Terminal.

Worldbuilding generally calls for having a larger unrealized amount of content which is still at least referenced throughout the game, and Cogmind has always had a fair bit of that, though this sort of content also tends to be ripe with ideas for future features, or at least suggests where new playable content might want to emerge in a way that fits well with what already exists. So six years later, here we are with the real deal :)

In the past players had speculated that the Storage map might be an example of a DSF, which could indeed have been one explanation (no need to provide all the details when players can do a great--and better--job of filling these in on their own!), though the new official implementation aligns better with its stated intent, and Storage shall remain just a unique branch map by comparison. Storage and DSFs do, however, share a color theme.

Originally I wasn’t planning on adding DSFs in Beta 11 (or ever, necessarily), but the opportunity presented itself when I needed a way to offer some form of guaranteed access to Authchips as part of the fabrication overhaul. So this really was an example of taking advantage of the existing lore and bringing it to life, expanding upon it, in order to meet other design needs. Of course if that’s all it was for this might seem like overkill (adding a whole new map type?!), but I felt there was plenty of room to play with here for it to become an interesting strategic option, regardless of tie-ins to the fabrication system.

So let’s look at how you get into this place, and what you might find there.

DSF Access

All Factory and Research maps have a number of DSF entrances, special-purpose Terminals that control an adjacent access point, similar to how Garrisons work. These locations have a unique look to them, a simple Terminal adjacent to an open cell where the door appears once unlocked via the Terminal, and surrounded on three sides by reinforced walls.

cogmind_DSF_access_distribtion_factory

Sample Factory map layout highlighting all DSF Access locations, including an up-close look at the small prefab’s appearance. The space adjacent to the ‘T’ is where the door appears.

Although there are enough access points that the chance to eventually spot one at some point on each map is quite high (that they’re placed in corridors rather than inside rooms further increases this chance), the desired number here is mainly taking into account the fact that any which aren’t somewhat near the player’s entrance are unlikely to be accessible. The reason is due to a DSF-specific mechanic whereby all of the DSF entrances are permanently locked (as far as the player’s time on the map is concerned) as soon as any hostiles are spotted. So to actually get inside one, the player must do so without being spotted by anything on the lookout for enemies of the Complex.

Even though DSFs were added to the game as a guaranteed method of obtaining Authchips, as I emphasized again in the recent fabrication article Cogmind’s philosophy focuses more on adapting to what you find rather than having high control over predetermining your build, so although the Authchips themselves are guaranteed consistent rewards inside, the ability to access a DSF at all is the less consistent part of the equation :P

cogmind_DSF_access_open

Opening a DSF via its Terminal.

To facilitate locating the nearest DSF, among the other usual possibilities there is also a new non-RIF Hauler hack that anyone with a Datajack can perform: find_dsf. The result of the hack takes advantage of the new map comments system, adding an automated comment marketing that particular Terminal for what it is.

cogmind_robot_hack_find_dsf_automated_map_comment

Hacking a Hauler to find the nearest DSF. Here you can also see the difference in color scheme for a map comment added automatically as opposed to manually by the player.

There is a global message when anything hostile is discovered on the current map and DSF lockdown is engaged (technically this doesn’t have to be the player, but the player is the most likely to trigger it first), after which attempting to open any DSF will simply report that it’s in lockdown mode.

Layout and Defenses

DSF map generation is similar to Garrisons in that it is based on quadrant prefabs, albeit simpler overall since there are no variations--each quadrant is either present or it isn’t, and there must be at least two of them (one to hold the entrance and another for the exit).

cogmind_DSF_annotated

A full-sized four-quadrant DSF with its major features annotated.

There are quite a lot of good items to steal from a DSF, with four sections of Authchips around the center, two to four quadrants each with their own random theme (e.g. weapons, devices, traps…), and main corridors lined with random parts. Each quadrant also has a chance to include a hidden (but sometimes guarded) area behind its walls containing extremely good parts, and the Matter Repositories can also be damaged to recover a lot of Matter if necessary.

The primary defensive feature is the Heavy stationed at the center, around which the entire DSF layout was planned. Its sensor range covers almost the entire map (except the corners), and reaching the exit always requires passing through its visual range, so it’s necessary to have a way to deal with this bot. Each corner also has a chance to contain a dormant Specialist. As usual the Heavy can call in reinforcements, and an infiltrated DSF will eventually also be subject to additional patrols, thus limiting the amount of time available to freely loot the area.

Destroying enough robots within a DSF triggers another emergency defensive measure, “rapid sterilization,” or a quicker version of the sterilization system found in other parts of Complex 0b10 which gradually raises the ambient heat until no robots can survive. This offers another optional strategy to afford more time for looting since with enough cooling Cogmind can survive longer than other bots.

DSF are generally predictable as described above, and though the types of items found within can vary greatly (aside from the Authchips), there are so many of them that stashes will usually have at least something useful for most builds. But it’s always nice to throw in a little more extreme variety for fun, so there are a number of possible DSF events that occur more rarely (without removing the chance to loot).

Routing

In most cases leaving a DSF will exit to the next higher depth, although there is a small chance it instead leads directly into a Garrison, to throw a little wrench into the best laid plans, for fun and excitement.

cogmind_world_map_mockup_DSF_visit_and_progress

World map UI mockup reflecting intermap-related routes.

There are definitely more ideas that could later become new types of maps between maps (much longer-lived plans than the spontaneous DSF :P), and while I’m not sure how likely it is to happen, I’d also like to do experiments with small maps that can return the player to the same map that was left earlier. This would be a pretty complicated endeavor after so many years of building an architecture that assumes it’s not possible--plenty of room for bugs and design issues in there xD

Posted in Design | Tagged , , , , | 2 Responses

Year 8 of the Cogmind

Cogmind is now in its 9th year of continuous development, so as usual let’s take a look at the past year of progress in yet another annual review!

Although most of the feature progress I share is in the form of animated gifs, there are a handful of static PNGs as well which I’ve compiled into another collage for a visual overview of 2021:

cogmind_development_year_8_small

Selection of images from the past year of Cogmind-related development as posted on this blog, forums, and Twitter (larger size here).

Development Time

Hourly recording of dev work continues as usual, and the trajectory is similar to last year with more time put towards coding and work on the game itself as opposed to community-facing marketing-type stuff (an angle made easier by the lack of public releases, but we’ll get to that later :P). I’ve been a lot less interested in getting the word out and would rather focus on spending time with current players (the Roguelikes Discord is where we’re at!) and improving the game for those of us who are playing it.

That said, it’s still important to do some types of that outward-facing stuff which includes a lot of discussion and writing, so even at this rate I don’t really see, for example, Code overtaking Community in this graph for a long while :P

cogmind_cumulative_time_input_breakdown_201306-202111

A categorical breakdown of the hours that have been invested in Cogmind-related development over the years, through November 2021. (More data and details about each category will be shared at some point in the future during a comprehensive review of these records.)

Like 2020 there was a fair bit of extra time allocated to non-Cogmind-related roguelike community efforts (and therefore excluded from my tallies), such as the usual moderation, but also quite a lot of 7drl reviewing and streaming, and introducing and streaming other roguelikes.

I also took some time out in the middle of the year to try to bring in funding through other means, but without going into details let’s just say that didn’t pan out in the end (though it did unfortunately eat up that time xD). No matter, we have a growing patreon! (see further below)

Releases? Sorta :)

This is normally where I’d cover all the public releases from the year, but… yeah, in a rather anomalous development we didn’t have any aside from the quick AFD job back in April (it was released in tandem with this progress report, though there was no changelog or other description for it, as a sort of surprise since… all robots explode in dramatic fashion when destroyed :P).

2021 marks the first year in which Cogmind had no major public release, which if you’ve been following the blog (or checking out the occasional long-term progress announcements or my streams) will know is because the year has been spent working on the next huge iteration of the game along with patrons.

So 2021 is basically the year of Beta 11, in preparation for which there have already been eight major new versions (and other minor ones) released for testing since January, covering a variety of new and revamped systems as the whole of Beta 11 comes together. Development has been going pretty smoothly and I hope to have it out some time within the next few months.

While the year has been a special one in Cogmind history for being entirely devoted to laying the groundwork for a great 2022, this is not only in the sense that a game-changing Beta 11 is well on its way to completion…

For one, support via Patreon has really come into its own! The numbers don’t lie.

kyzrati_patreon_earnings_history_2019-2021

Patreon earnings data, 2019-2021, straight from the dashboard.

Having reached and maintained the level I set for funding “the Unchained,” guess what Beta 12 will be bringing in 2022 :D. That’s one of the potential mini-factions which I haven’t really talked much about, though they were given a bit more color as part of last year’s Forbidden Lore ARG (search the walkthrough for the keyword “unchained”).

The financial support is great since it means development can continue without selling DLC or expansions etc., which put more awkward pressure on the design and are something I’ve always wanted to avoid even though it would technically mean more revenue. Having a better and more cohesive experience is more important to me, and I’m sure is more appreciated by players as well.

Speaking of thresholds, not too long ago Cogmind’s Steam review count finally reached the goal I set two years ago (800 while maintaining an OP rating), and that means we also even have a roadmap for next year’s Beta 13! It will feature yet another faction, this one hailing from a new Derelict community currently dubbed “Scraptown” (a code name subject to change once implementation begins). I also gave the concept a little more color in the ARG (search for that keyword in the walkthrough), but still mostly teaser material rather than specific mechanical details or lore implications. (Noticing a trend yet? That ARG is full of concepts that could easily find their way onto Tau Ceti IV some day…)

Seeing as we’ve already got an extended roadmap laid out (remember there’s also the Merchants Guild to come in a bigger expansion, too!), I’m not setting a new review threshold for now, but keep ’em coming since it’s good for the future of the game :D

Community

One could say 2021 has been a very big year for third-party releases by the player community :)

Although I’ve already mentioned some of them in previous progress updates, it’s worth highlighting the major projects here again as well since they’re new this year and forming an important part of the experience for players that make use of them.

Cog-minder by aoemica is a great resource with a filterable item database, build theorycrafting, combat simulator, and more. It’s still getting occasional fixes and updates, but is a very useful tool if you want to plan out how to take your game to the next level.

cogmind_aoemica_cog-minder_feature_composite

Visual summary of some of Cog-minder’s primary features.

Dataminer by leiavoia takes advantage of the large amount of run data collected by Cogmind from players who opt into the leaderboard systems in order to present you with a huge range of graphs summarizing each run, even including unique forms of analysis. (Dataminer is also still expanding with new features.)

Dataminer stat samples by leiavoia

High-level overview of some of Dataminer’s run stat features. Direct links to Dataminer processing have also been added to the run database.

Runia’s 3D-printed bots based on Cogmind’s tileset both look great and are also for sale if you’d like your own. (Runia can be found on our Discord.) It’s been fun watching these come to life over the year as Runia discovered more of them in game :D

cogmind_runia_3D_print_samples_210717

A partial set of completed 3D-printed models from Cogmind, by Runia.

Also it wasn’t for everyone, but I did actually create a special one-time event for two of Cogmind’s streamers who were playing together earlier this year, Tone and MTF, and many of the core players hung out in those streams (or later watched the videos) to do a sort of “stream-only ARG,” basically unique content only for that one run which filled in a bit of hidden lore that no players had uncovered in last year’s ARG. I’m quite happy with out that turned out, and Tone archived the run on YouTube if you’d like to check it out, with the first video here:

A big <3 to the great Cogmind community, which really helps keep me (and this project) going.

I won’t post a screenshot this year, but if you’ve got a moment there’s some days remaining to vote for Cogmind over on IndieDB. Always nice to make it in their Top 100 list for a little extra exposure when that comes out (and then not bother competing for the top 10 because those games have much larger communities--but we can manage Top 100). Update 211211: Aaaaannd we’re in the Top 100! :D

2022

Normally I’d end with a little talk about our roadmap, but this year being special and all I seem to have already covered that above, since what happened this year has played an integral role in confirming what’s to come.

In summary, we should see Beta 11 in all its glory released within the next few months, followed by Betas 12 and 13 each with a new faction and mechanics, coming much more quickly than what you’ve seen with Beta 11 xD

I also have at least one major event in the planning stages (promise it’ll blow your Cog-mind), but I’m currently imagining that’ll be further out beyond these releases. We’ll possibly have some other smaller ones during the year as well, depending on how the release schedule aligns with other factors.

Posted in Annual Review | Tagged , , , | 6 Responses

Design Overhaul 4: Fabrication 2.0

The updates to Cogmind’s fabrication system aren’t exactly an “overhaul” to the extent seen with our other Beta 11 modifications in this series, and not like the one back in 2016 when the process was greatly simplified from its original early alpha form. As you’ll see this is more of a rebalancing, though it does make several important changes including the introduction of a new mechanic and type of part to go along with it, affecting the overall feel and accessibility of fabrication for different builds.

Fabrication is an interesting topic in the context of Cogmind because adapting your build based on what you find and salvage is a major part of the experience, and yet here is a system outside that process with the potential to enable the tightest level of control over your build. So naturally I’ve always wanted to limit the amount of fabrication possible across a run, but just how to best limit it has been in flux.

Prior to the changes in Beta 11, fabrication has been fairly tightly coupled to machine hacking capabilities. That is, with enough hackware you could pretty easily both get the schematics you want and build them at one or more Fabricators to significantly flesh out a build. Moreover, builds capable of this approach (fast/evasive/intel-oriented builds) are less likely to lose parts to begin with, making it easier to coast along with a very stable build. Now I don’t want to completely remove this strategy--it can certainly be an interesting way to play, with its own challenges, but I believe it should be a little harder to execute than what we’ve seen so far.

Limitations

For a long while the main global limitation on fabrication involved the map-wide “central matter system,” which contributed the matter required to build parts or robots at a Fabricator. The system’s matter would be replenished at various intervals, and the more matter drained by unauthorized player-initiated builds relative to the amount of matter remaining in the system, the more likely to be discovered and have the entire system shut down permanently (as far as the player’s time on the map is concerned).

So the rate of fabrication depended on the matter costs of building a given set of schematics vs the rate of replenishment, while being able to build anything at all was contingent on not being discovered (which would always happen eventually, but involved a fair bit of randomness--sometimes very quick, other times allowing for many parts or robots to be built).

I do like the idea of central systems that can be hooked into other pieces of the content, as these are the sort of connections that really help bring a world to life, but aside from the disabling of matter-related machines reducing the reserves available for fabrication across the map (a fairly opaque connection, to say the least), there were no other links made here. Based on how many such mechanical or thematic connections there are elsewhere in the world, people kept assuming or hoping they could add matter to the system at Recycling Units by recycling parts, but for various reasons I didn’t want that to be a thing.

Beta 11 removes the central matter system entirely, and by extension there are no more map-wide lockouts. Certainly no big loss here, and players will be really happy with these changes, though of course I’m still going to want some limitations here, so what’ll it be…

The aforementioned hacker-fabber strategy remains largely intact, but hackers now have a one-build-per-Fabricator limit, because as soon as an unauthorized build is initiated, that machine is locked (but will still finish the job) and an investigation squad is sent to the area. This latter element will add an extra challenge to obtaining parts/allies this way by eventually increasing the number of local hostiles, though both finding more Fabricators (to perform more builds) and evading, distracting, or recalling the investigation(s) are feats well within a hacker’s area of expertise.

Based on what I’ve seen in player runs, and the way the numbers balance out, this change will ultimately have a relatively minimal impact on what is possible for hacker-fabbers to achieve (though again there might be some extra challenge involved). While under the central matter system it was nice that there could be a bit of a choice in there with regard to pushing for faster fabrication at the cost of a higher risk of discovery, by design that system was fairly opaque and therefore difficult to strategize around. By comparison, this newer system is reliably consistent with clear consequences, which is generally preferable with an extensive central system like this.

(It’s also worth noting here that the “preloaded schematic” mechanic remains intact, and building one does not count as an unauthorized build, so getting lucky with a good preloaded schematic you want is still a nice thing to find. Internally I even expanded that system as I’ll describe later.)

So hackers can now enjoy the removal of global rate limitations, and more predictable fabrication potential rather than sudden complete lockouts after a single build or two, but this update is about much more than that, because in addition to increasing reliability while reducing some of the potential for excessive fabrication by hackers, non-hackers are also getting a new way to reliably fabricate something via *gasp* a new consumable!

Authchips

Fabricators don’t need to be a resource limited to hackers (or anyone who happens across a lucky preloaded schematic)--why not include another option for accessing them which different build styles can also take advantage of? I’ve generally tried to avoid consumables in Cogmind (and written as much about it before), but as with Relay Couplers I believe there’s room here for a new tool and limiting factor in terms of how non-hackers can utilize Fabricators.

“Authchips” are a new type of consumable item that can each be used once to load and build a single schematic. Success is guaranteed, and using one does not cause any detection, tracing, or other negative side effects. There being no explicit central matter system anymore, and no more lockouts, Authchips essentially allow for otherwise unlimited and safe fabrication so long as one has the necessary chips.

cogmind_ascii_art_beta11_authchips

Authchips!

Technically an Authchip must be attached in order to use it for fabrication, a requirement which allows for them to come with corruption as a possible drawback, while more importantly also making this feature compatible with the UI in that by attaching an Authchip of a given type, it can be assumed the intent is to use the Authchip rather than attempting to hack the target instead (there is no explicit choice available via the Fabricator interface).

cogmind_fabrication_via_authchip_demo1

An example of using an Authchip to immediately start building something that would otherwise be pretty tough in that situation (notice the special color and indicator in the schematics list).

Scoresheets have also been updated to include Authchip indicators.

cogmind_scoresheet_fabrication_authchip_indicator

We can now also tell from scoresheets whether an Authchip was used for a given fabrication.

Balance Factors

Obviously with success at a Fabricator guaranteed and without consequences, Authchip design needs to rely on other factors to ensure balance.

First and foremost is acquisition, or how and whether the player can obtain Authchips to begin with. On this front I added quite a few sources, but admittedly almost none of them are guaranteed. This is more in line with Cogmind’s philosophy of “I have found this interesting new option, should I take advantage of it?” over “I have a very specific plan and am going to execute it to a tee.” The former is much more roguelike in spirit. Two of the Authchip sources are guaranteed, but each of those comes with its own drawbacks and is therefore not necessarily something everyone would want or even be able to do. Instead the general idea is that players may randomly encounter one of the many different possible Authchip sources and have to decide then and there whether they have (or will seek out) a desirable schematic and want to allocate the required inventory space until they reach a Fabricator. (Update: I’ve since written about the primary guaranteed Authchip source, DSFs.)

A second balance factor likely apparent from the earlier demo gif is that “Authchip” is not a single item, but a group of items which each apply to different part categories, as with Relay Couplers indicating their relevant category in brackets. The main issue with consumables (and basically any non-part item) revolves around making sure they’re worth the slot requirement and/or inventory space compared to whatever else they might be displacing. Based on their intended frequency, allowing a single Authchip to build any schematic whatsoever would have far too much versatility for the goal I’m aiming for, but fully splitting them into a 1:1 ratio with item types would be excessively limiting, so I’ve chosen a middle path that divides them by slot type while further subdividing utilities (the bulk of Cogmind items) into four main categories, giving us Authchips for Storage, Devices, Processors, and Armor in addition to the slot-based Power, Propulsion, Weapons. Robots, mostly a sideshow when it comes to discussing fabrication so I haven’t been mentioning them much so far, simply add two more types of chips, Combat and NC (non-combat, using the same abbreviation found on couplers).

cogmind_fabrication_via_authchip_demo2

Another Authchip fabrication demo, this one of the [Propulsion] type.

The third balance factor is of course schematics! It doesn’t help to have the “right” Authchip without a schematic to use it on. Hackers aiming for fabrication are at an advantage here since they’ll have a wider variety of schematics to choose from earlier on, though it’s not too hard for even non-hackers to hack up a smaller number of useful schematics, or maybe find some random but potentially useful direct schematics at Terminals, or more likely acquire free schematics from NPCs. On the latter part I also added support for prefab-scripted Terminals to include procedurally-selected schematics, whereas before any Terminals with schematics were static, or at best chosen randomly from a list I compiled manually, so now there’ll be more variety in some prefab locations and therefore a greater chance to get something interesting or useful for different builds. I also applied that schematic generation code to a new item, the Schematic Archive, a collectable data item containing a random schematic which is learned on picking it up. There aren’t many places to find these yet, but the item and foundation is there. Yet more ways to acquire schematics will be added in the future (very likely related to Merchants).

cogmind_schematic_archive_item_info

Someone in Zion probably owns a lot of these.

The nice thing here is that new strategies and tradeoffs will appear now that technically any build has access to Fabricator use assuming they have the schematic and can acquire Authchips, at least any build willing to temporarily sacrifice inventory for the promise of being able to eventually build something neat later (there are no rating limits on what can be built at any Fabricator, so it really is all about getting the desired schematic).

Complex-initiated Fabrication

Complex 0b10’s Fabricators weren’t installed as a friendly gesture to intruders. They’re of course one of the main sources of Unaware robots and parts, albeit mostly built at some time prior to your own arrival (or after your departure). Still, this being a living world it’s nice to see evidence of it actually happening, so for a long while now Fabricators have actually been able to produce things, where any parts built are picked up by a Hauler which takes them from the map, or any combat robots built head off to report to a Garrison. It’s not incredibly common, plus it could can happen at any Fabricator on the map, so the chances of coming across it are not all that high, but it does happen.

Now in the past the implementation of this feature took the easy route (as rare low-impact content tends to do if it won’t make much difference), with simply a small random chance each turn that a random Fabricator somewhere on the map would suddenly spit something out as described above. The problem with this approach is that internally it didn’t follow the normal fabrication rules, in that there’s no real production process, nor is the proper schematic even loaded on that machine--it just… happened.

Not a big deal before since this behavior was mostly fluff, but along with the fabrication system changes, it turns out we needed to remove or replace some hacks, since the matter-related stuff from before no longer applied. When updating content, wherever possible I prefer replacement over removal, as this helps feature modifications either increase the amount of content or at least keep it stable, and also forces a bit of creativity (“what would this feature do instead under this scenario?”) which can have unexpected and fun results!

A Fabricator’s Network(Status) command/hack was originally meant as an easy way to check on the current central matter reserves, but instead of removing it, what better new purpose than to tell you what all the Fabricators are really up to? …If only the Complex actually knew :P

Fortunately with a fabrication rework comes more time to focus on the system and a greater desire to expand and perfect it, so 0b10 will now preload schematics for what it’s planning to build, actually puts in the time required to do so, and Network(Status) reports the details.

cogmind_fabricator_network_status_preloaded_schematics_automated_map_comments

Network(Status) effect under the new fabrication system.

In that gif above you’re also seeing a new purpose for the Map Comments feature: automated comments! It wouldn’t make much sense to give all this network status info if there wasn’t an easy way to reference it. It’s the kind of information players would want to consider taking notes on, or add their own comments via that UI feature, but in any case we may as well just have all that happen automatically.

You can edit and remove these map comments as normal during comment editing. The system is also smart enough to automatically remove/update existing Fabricator comments if the situation has changed by the next time you run that hack.

Similarly one of the Fabricator Trojans was given new functionality, which also makes use of automated map comments to report on fabrication processes in real time wherever you are.

cogmind_trojan_report_automated_map_comment

Real-time map-wide fabrication reporting adding automated comments to the map. As you can see here automated map comments in particular will appear in a different color to differentiate them from those you’ve added on your own (the Network(Status) gif further above was recorded before that change was made).

While expanding the system I also added a couple new Fabricator Trojans to discover for fun :D

Results

I started brainstorming changes to the fabrication system a year ago in reaction to lots of recurring player discussion on the topic, and more recently spent a couple months revisiting possible concepts a few times, sharing some of the process with patrons while refining it further each time.

The process was supposed to culminate in a “purely experimental” test release to see if this whole Authchip idea would work or if we might want to roll back any changes and continue looking for other systems. Things didn’t end up playing out that way because following that many refinements, and while eventually starting to implement the foundation, I started getting pretty confident that even if it wasn’t perfect, this design is close enough to the final state to warrant skipping the whole experiment idea and building it in full. So it’s here to stay.

Part of the reason for the late confidence was that the original concepts were more extreme, going as far as considering replacing Fabricator hacking with Authchips or other such heavy-handed requirement, but in the end as you can see the new system is more of a rebalanced and expanded version of what we had before, so a lot easier to predict the results of adding it to the game and I at least don’t see any negative consequences, per se.

The new system has been included in Beta 11 prerelease versions for some weeks at this point, however experience with these bits is still limited so I can’t actually comment on how successful it’s ultimately been. I did make a list of other factors that could be used to further tweak the balance if necessary, though I’m still confident at this point that over time this’ll work out.

Posted in Cogmind Beta Overhaul | Tagged , , | Leave a comment