Official development blog
[ Latest Cogmind Release Notes: Feb 2026, "Unchained More" ]

Year 12 of the Cogmind

Here we go again! Yet Another Annual Review, the twelfth of its kind, wherein we highlight milestones from the past 12 months and maybe also catch a glimpse of the future of Cogmind. Unlike 2024 which was split between technical advancements and content work, this year was pure content as we continue diving deeper into our string of planned expansions.

To start off, here’s our usual visual collage of images shared in various places throughout the year:

cogmind_development_year_12_small

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

Development Time

Among my long-term internal graphs, of particular note this year is that I just barely broke the 20,000-hour mark on this project :P

cogmind_development_hours_cumulative_2013-2025

Cumulative Cogmind development hours, 2013-2025.

That’s calculating from the start of full-time commercial development, so the summer of 2013, and excluding the pre-pre-alpha 7DRL months, and all the work on the engine in years prior to that, before I even knew I’d be making a 7DRL named “Cogmind” and eventually turning it into something way bigger…

Due to health issues, total hours recorded for 2025 alone were lower than the multi-year peak of last year, but still came in second among the past five years, and again retained the trend of relatively more work on the game itself than community-facing endeavors. In fact, as a subset of that game work, in my graphs I also noticed that for the first time since 2017 when Cogmind was released more widely via Steam, specifically the cumulative amount of coding work finally caught up to community hours:

cogmind_development_hours_categorical_2013-2025

Cogmind development time breakdown by category, 2013-2025.

The community side of things was focused almost entirely on the core player base via Discord, which is where I hang out most days helping folks, fielding issues, engaging in design discussion, or just staying up to date with the latest strategies and runs in progress.

There certainly hasn’t been much activity here on the blog compared to previous years, but instead I’ve been writing more on Patreon instead, in some cases content that would have been suitable to adapt for this blog but I never got around to it :P

I did do that Roguelike Radio interview back in August, and as it was near the start of my latest spate of health issues and didn’t come out all that great (or at least didn’t meet my own perhaps unreasonably high personal expectations xD), I ended up putting together an accompanying in-depth article to really do the topic justice! It was nonetheless nice to revisit the podcast after a decade, further driving home the fact that since my last appearance there I still haven’t moved on to another project, heh.

Anyway, while I would’ve preferred to be able to put even more time into every aspect of development, progress was still good in the area that matters most: more playable game :D

Releases

This year saw two major releases, finishing off one expansion and kick-starting another.

Beta 15 “0bPrime” added a significant new map, 100 new items, and Cogmind’s 10th unique ending concluding the UFD plot line. It was also known for removing free tracking by Extermination and Assault squads, a welcome change that has turned out quite nicely.

cogmind_beta_15_0bPrime

We are one.

That cycle having since been completed, the leaderboards for Beta 15 were archived and I analyzed player stats to share results here.

cogmind_beta15_stats_collage

We are one also in our love of data.

More recently this year came Beta 16 “The Unchained,” introducing the first members of, and mechanics for, that long-anticipated subfaction. Much more to do on that front in coming updates, but initial results are good in that they’re producing quite a few interesting challenges and stories, and any issues in terms of balance or fairness are well on the path to being resolved as they’re fleshed out.

cogmind_beta_16_unchained

Who let the dogs out?

Unchained exist primarily for experienced players, but among other general improvements and new mechanics the release was also accessible to others with the addition of a large set of new achievements to facilitate and/or recognize interaction with the rest of the hundreds of hours of Cogmind content added in the years since the last batch.

Hermelin - Steam replay Cogmind achievements

A screenshot from Steam Replay, 2025, from Hermelin. They’ve been very active lately, sharing entertaining run after run, as long-time players have naturally used the opportunity to not only meet the Unchained challenge, but also catch up on all the new achievements.

The first batch of Unchained was smaller and less developed than I would have liked, but I also didn’t want to keep everyone waiting too long, and did want to put them out there for more people to play around with while the rest are under construction. Plus other new stuff was already lined up to play with, so it was worth getting that release out there and just plan to follow up with a minor release to add more (soon!).

Community

Those pesky new health issues have kept me from streaming for the past several months, which is unfortunate because there’s a lot of streaming I want to be doing (both Cogmind and other roguelikes!). I imagine I’ll get back to it at some point, just not sure when, and for now can spend that time engrossed in content development anyway, so I guess it’s not all bad news :P

As far as getting my community Cogminding fix, I can at least do so vicariously through runs shared on Discord. And for anyone else seeking out streams in my absence, those are pretty much a daily occurrence among the frequent players, be it friendly backseating, crazy runs, or just random play.

I’ve also really enjoyed the huge amount of fan art that players continue to create. Going back through my previous announcements, or just browsing images in the Discord channels (including pins) you’ll find lots of cool stuff, but here are some more recent entries…

chrome_knight - derelict 3D models, painted

Derelict bots printed from Runia’s 3D models and painted, by chrome_knight. You may not easily recognize some of these variants ;)

 

ivelieu - stylized cogmind themes

Hyperstylized Cogmind themes, by ivelieu. (There are more, but spoilers, and these were compiled into a collage by me--they were created individually. You can find more on Discord, including these in their original form.)

 

sergeooo - FarCom Brawn link (spoilered)

Hypothetical Exiles FarCom link with 8R-AWN, by sergeooo (small secondary section spoilered for content). (sergeooo has put together a wide range of neat spoiler art and memes, some pinned in Discord)

 

sergeooo - Warlord Wants You

Okay, not terribly spoiler but here’s another nice piece by sergeooo.

 

plasmoidman - doctor and friends

A particular doctor and friends, by plasmoidman, who has been doing a ton of concept bot drawings, often with some very interesting perspectives.

 

McSaucyNugget - Cogmind stickers

A printable sticker sheet made available by McSaucyNugget. (The sample above is a subset rearranged by me since the full set includes big spoilers, but you can find the proper version in the main #cogmind channel here if you’re interested.) Just so colorful!

 

CaptainWinky - Real Authentic Licensed Merchant Bot Salesman

Real Authentic Licensed Merchant Bot Salesman, by CaptainWinky. “Subscribe to BotBuddy Prime for regular ally dispatches. Regular as long as you have the credits, that is.” Or subscribe to CaptainWinky’s huge and always-growing fan lore thread.

The community has always had a lot of fun making memes as well, though I don’t normally share those since they’re often a bit too insider, esoteric, or spoiler anyway. But here’s quick selection of this year’s, from among many.

cogmind_memes_2025

Various memes by aoemica, CaptainWinky, EPacifist, erkyperky, Jamba27, muesli, Runia, and sergeooo (open for larger size).

2026

As currently planned, the coming year will be full of content, content, and, yes, more content. Also maybe a surprise or two ;)

I’ve already covered the long-term roadmap in my Cogmind Vision 2025 announcement from last year. All that still stands, and you can see from reviewing it that we are currently partway through that process right now. You can also see that as 2025 comes to a close there’s still a lot left to do, because I have a habit of making everything many times bigger and better than necessary… Can’t help myself, it’s just too tempting to flesh out the world with more and more mechanics and lore, all while doing whatever it takes to maintain the right balance to keep it fun but challenging at the same time.

I promise the coming releases will blow your cog-mind.

Beta 16.1 will be out early next year, as it’s already reaching the tail end of development. Precisely when will depend on how long it remains in prerelease testing once it hits that phase, but shouldn’t take too long in that regard, due to its focus.

Beta 17 is coming in 2026, to be sure, as well as probably the beginning (but not the conclusion) to the Merchants expansion, which itself will be another game-changer that can impact your runs right from the start.

In between I’m sure Patrons will vote to add other stuff that injects some delays by adding content and features selected from my large ongoing list of optional possibilities.

Looking forward to more Cogmind in the new year :D

cogmind_robot_diagram_vader

“You are just the droid I’m looking for.”

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

Designing for Mastery in Roguelikes (w/Roguelike Radio)

Last week I had the honor of being invited on Roguelike Radio for a bit of a catch up on Cogmind development and relevant segue into the interesting topic of “designing for mastery.”

It’s been ten years (ten years!) since the last time I was on Roguelike Radio for Cogmind in particular, back in 2015.

This was not long after the game’s first commercial release, when I felt like there would be maybe one to two more years of development to go before moving on to something else--you know, like a normal “indie game” :P

Well indie game or not, more importantly Cogmind is a traditional roguelike, a genre in which numerous factors contribute to historically long dev times, plus I have a habit of sticking to projects for unusually long periods, which as it turns out is compatible with the fact that there was (surprisingly!) enough support to simply continue working on it full time, all the way to this day ten years later xD

The full recording of our talk can be found here.

So yeah we talked for about an hour, and unfortunately I had taken some medications earlier in the day that were still making me a bit drowsy, which combined with the broad nature of such a topic resulted in what I feel was probably a somewhat chaotic discussion that maybe didn’t do it justice in some areas. (I admit this is just a feeling, since I’m not one to go back and listen to myself ramble--maybe it’s better or worse than I imagine, but I have no idea haha xD)

Anyway, definitely on me being responsible for the rambling, not Darren (the host), though we probably did at least cover a lot of the main points! But it being such a cool topic, I did want to put some of these ideas into a more organized written form, and what better place to do that than here on the blog :)

Aside: Blog’s been quiet for longer than usual! As always I’m still working on Cogmind and have been doing writing over on Patreon instead , some of which I’d wanted to possibly expound upon here at some point, but that has not happened… That said, as the sidebar has indicated for years, I use this outlet mainly for articles with some general gamedev interest value, not progress updates, so most of the latter go elsewhere, for example another huge content release from earlier this year.

Designing for Mastery

First of all, to set the stage for this topic it’s probably a good idea to give it a little context.

Roguelikes are traditionally known as difficult games, but it’s not just about base difficulty where you have some kind of theoretical limit on how many/what types of threats you can face at once and still survive…

  • There’s procedural generation and the unexpected situations that come out of it.
  • There’s often an RNG aspect to actions and their outcomes throwing more isolated curve-balls into the mix, sometimes ruining initial plans after one is already in the middle of an engagement or even carrying out some other non-combat-related plan.
  • And permadeath adds to all this with a strong sense of consequences for one’s every action.

What aspects of a game can best be used to encapsulate these concepts in ways that allow players to demonstrate mastery? We want to make runs challenging but not impossible, while rewarding players with a sense of accomplishment even after (or especially after) playing the same game again and again.

Some of the subtopics below will be more Cogmind-specific, looking at how we address and emphasize various aspects of mastery, but within there are plenty of general points more widely applicable to roguelikes and even other genres.

Adapting

I believe roguelike design is at its strongest when players are forced to adapt, both in terms of planning for or reacting to immediate situations, and also even insofar as the raw abilities of their character to begin with.

Roguelikes are about using the tools at your disposal to MacGyver your way out of awkward or deadly situations, and what better way to leave room for expressing mastery over a world and its systems than letting even the player’s own abilities rely to some extent on the whims of the RNG?

This is how the original Rogue did/does it--no character classes like you’d found in the roguelike sister-genre CRPGs, just a plain rogue headed into a dungeon to find what items they can find, to confront whatever enemies they confront (or try to run from :P).

unix_rogue_level_1

The beginning of Rogue, every time the same, just you and your bit of starting equipment in the first room.

Compared to later roguelikes, Rogue suffers from a relatively low amount of content and player options, so there honestly isn’t a huge and exciting space to explore when it comes to mastery, but the fundamentals are there.

The more systems we have at hand to navigate or manipulate, the more likely there are options for a player to consider at any given time when confronting short- and long-term challenges. And with enough supporting systems in place, we can offload the entirety of race- or class-based abilities, XP, and other “CPRG-like” features onto items or other dynamic content.

Some roguelikes that take this route include Brogue, The Ground Gives Way (another favorite of mine), and of course Cogmind itself.

Purely item-based capabilities may even raise gameplay freedom to a new level, enabling players to reinvent themselves in the middle of a run, even to something in diametric contrast to an earlier state.

cogmind_build_transition_example

A sample transition taken from one of my streamed runs earlier this year, going from a slow rolling armored tank ready to mow down combat bots to an airborne build moving three times as fast as most enemies, and wielding decent machine-hacking power but capable of engaging in some fights if necessary.

This is the ultimate adaptation, whether intentional in order to aim for some new or shifting goal, or more of a defensive measure when coming under pressure as a run is railroaded by unexpected events.

Comebacks

Although I enjoy the tension in roguelikes, I don’t think it’s necessary, or as fun, to allow for singular mistakes or decisions over just one or two turns to instantly sink an entire run.

Most roguelikes are capable of killing you very quickly during a single encounter (being this dangerous almost by necessity since many also allow you full or near-full recovery between encounters, but that’s a separate issue). I like the idea of giving players more opportunities to recover from mistakes--after all it’s another chance to demonstrate that mastery!

Consumables or otherwise limited-use high-impact items tend to be the tools offered by roguelikes to help prevent such situations at the last moment, but naturally that requires using them in a timely manner (assuming one has an applicable tool), otherwise reminding us of the whole “dying with an inventory full of great potions” trope.

Cogmind is more unique in this regard, taking comebacks to an extreme by enabling survival following numerous mistakes (or just a stretch of bad luck :P) because the PC is quite resilient against any one or even many enemies, and fairly fast and tanky even if naked and item-less. (As a built-in feature one can instantly remove all their attached items as a free action, in case the build has become too slow or unmaintainable for whatever reason and a quick escape is needed.)

Unlike consumables one may or may not have at the right time, this approach offers a universal if costly avenue for escaping trouble, and subsequently extra breathing space within which to flex those mastery skills. At the same time this aspect of gameplay can contribute to Cogmind’s reputation as a highly stressful roguelike, no doubt because it doesn’t end quickly for you while there is almost always hope to survive, escape and rebuild again, but you have to be willing and able to face that kind of a high-pressure situation.

This takes some getting used to, both as different skill set and mentality coming from other games/roguelikes, not to mention getting over the potential frustration of having lost capabilities (items). But a good rebuild can see you back to a stronger form than before, and many winning runs end up going through one or more partial or complete rebuilds before reaching the end. Whereas in most roguelikes the player is generally increasing in power throughout a run, Cogmind is instead like riding a wave of ups and downs, in the process offering many more opportunities for unique decisions in a bid to survive, if not thrive.

cogmind_vs_roguelikes_power_progression_graph

Graphing hypothetical average power level over time in roguelikes. In Cogmind the ups and downs tend to be more pronounced, whereas in other games the general trajectory is going to more clearly be up.

This topic reminds me of Valguris, who streamed a Cogmind run in which he demonstrated rebuilding principles by leaving behind all his attached parts upon entering every single new depth. It’s years old at this point and in an older version, but the concepts remain the same. (He made it to the last floor in that particular run--the very late game is especially dangerous for rebuilding like that :P).

I recall from one of my own Cogmind streams some months back I was getting beat up pretty bad at one point in the late game and one viewer assumed from the looks of things that the end was nigh, but nope, won that run, too :D. As an experienced player, to me the whole situation probably looked rather different since I could see remaining options for survival, even if it might mean short-term sacrifices and a change of plan.

Rebuilding is a frequent topic of discussion in the community, and a noticeable way to get one of those “gaming highs” in the middle of a run, a mini-accomplishment in the form of turning what feels like a near-death experience into a resurrection as a brand-new death machine yourself (or becoming a sneaky hacker--whatever you happen to have found and/or worked your way into after an incident).

It’s worth emphasizing that this kind of extreme is not for everyone given that many roguelike players are interested in creating and maintaining a consistently effective build, leaning more towards the so-called power fantasy side of things, for which I feel CRPG-style roguelikes are better suited.

Forced Adaptation

Aside from dealing with local short-term situations, we also hope that the player needs to consider how to adapt over the long term!

To that end, in Cogmind most build types are to some extent affected by integrity loss. Because items in use are also covering the PC’s body (core) to protect it, that also means they may take damage when coming under fire, in turn leading to a possible loss of one or more parts or their corresponding functionality. Replacements from inventory or elsewhere are essential at one point or another, thereby changing or limiting one’s capabilities.

Having a fairly steep difficulty ramp also forces players to always be on the lookout for (or have a plan to acquire) better/upgraded items without relying on the same ones for too long (although some less combat-oriented items may remain useful throughout an entire run). Keeping up with the power curve is a challenge in itself, and one is likely to stay ahead of it only for so long without change.

Together these design elements play into adaptation in a more macro sense: forcing or suggesting a change of route. Cogmind is not a linear “dungeon,” the world instead comprised of numerous routes branching and reconverging at various points (but importantly no backtracking), so while you may want to reach a certain location for whatever purpose, circumstances may dictate an alternative.

Maybe the opportunity cost is too great to seek out a more hidden but desirable destination, or reach a known location without suffering too much loss. Of course the best players might just try anyway, and deal with the consequences--a different form of mastery in action! There is a clear difference between what odds skilled veterans are willing to face, with a better understanding of what limits can be pushed, and how far.

cogmind_hypothetical_travel_path_adaptation

A hypothetical but common scenario, annotated by location. Some late-game Cogmind maps are notorious for forcing players to change plans or face dire odds to achieve previously set goals.

Agency

Developers have a huge number of levers for controlling an experience, but on the other hand the more levers we put at the player’s disposal, the more opportunity to see their mastery in action.

This includes player control of situations either before or after any game-changing event, e.g. preparing for combat, or avoiding combat, or changing the trajectory of an engagement, or recovery after the fact… build choices, item choices, special items and consumables all play a part.

Due to the aforementioned integrity loss (among other types of “food clocks” we won’t get into just yet), almost everything the player does in Cogmind comes with opportunity cost, so the stakes are a bit higher, even if the consequences usually aren’t immediate.

Although Cogmind has very few explicit consumables, the PC’s own durability and pliability ensures core survival while nearly all items are technically considered consumable. Fortunately all other inhabitants of the world are composed of parts (items) as well, providing spares for rebuilding, sidegrades, or new functionality. So by salvaging other robots (many of which are not actually hostile), the player always has access to at least what is necessary to ensure continuity of function. Supporting that capability is an important part of the environment, so important that its semi-absence in one type of map (caves) tends to be a glaringly absent feature for first-time visitors.

In short, at almost all times there are some or even many tools to work with, and the best players will be able to do more with less.

For more specific needs, I did want it to be possible for players to augment their builds or otherwise fill certain unique holes in their loadout by acquiring desired items through more direct means rather than relying on salvage or pure discovery. This was the origin of the Fabricator concept, where it’s possible to use schematics to build specific parts, albeit in limited quantities.

Predictability

Even in procedural environments, the ability to plan ahead is pretty important for those with the skill to do so.

Depending on what kind of route one is aiming for, whether to support a certain play style or accomplish long-term goals like a certain ending, where might they acquire the necessary tools to facilitate that journey?

For this purpose the world can offer various expected pit stops containing a known range of rewards (which may of course be guarded or otherwise involve their own challenges). Of course we don’t want too much static content--we’re trying to use procgen to keep experiences fresh, after all, but having a set of specific knowns in which to anchor plans provides a semi-reliable way for players to thread their own run through the world if desired.

This approach ties in especially well with Cogmind’s multiple plot lines, since the relevant areas required for the narrative can also serve double duty as said pit stops. (Cogmind always includes all maps in every world, but most of their exact locations are somewhat randomized for just the right amount of mixing things up.)

Related: I’ve previously shared a breakdown of Cogmind’s static vs. procedural content using more diagrams and data.

Predictability is also important in a more local intramap sense. Experienced players expect challenges and rewards to remain within certain bounds by default, and anything that changes the status quo should ideally be telegraphed.

Here we don’t need to be too fearful of giving the player too much help, since surprises will no doubt happen regardless, but feeding them hints about notable changes to the default state enables them to capitalize on their mastery to meet new challenges by adjusting plans.

Cogmind does this almost everywhere it’s relevant.

Being spotted by a surveillance-type enemy that alerts their nearby (but unseen) allies within a larger radius shows an animation and message to that effect, suggesting one flee, reposition, batten the hatches, or take whatever other responsive measure is appropriate depending on the situation.

Being traced while hacking a machine, attacking certain busy worker bots, fighting in certain areas, and various other actions all trigger various types of appropriate hostile dispatches, and all of which are immediately accompanied by a floor-wide announcement to that effect.

One of the most dangerous (but also potentially most rewarding) events in certain main maps is an active Freighter convoy, and it’s so dangerous that it is even telegraphed and trackable through multiple means. Actually, years ago I wrote a whole article on this feature, with a section about telegraphing :P

Highlighting a sample cargo convoy route across a Factory map, information accessible via the Transport Network Coupler, but this following both a floor-wide pre-announcement and a delayed dispatch preceded by an especially fast group of weaker bots that travel the path first (if you see them rushing through, you know bigger trouble is coming!)

Anyway some people will ambush or hunt these things down if capable, others will do their best to avoid them, but in either case the important part of the design is that the knowledge is there to react how one pleases, and these and other announcements naturally impact one’s decision-making in a more meta way, before even any sort of confrontation!

Metaprogression

Speaking of meta… metaprogression is relevant here--wait, not that kind! Not the roguelite-style metaprogression where you allow previous runs to give some sort of edge in future runs, like augmenting your character by bringing along extra items or abilities etc…

Metaprogression of the mind! We grow as players, expanding our understanding of the balance and mechanics driving a particular roguelike.

Although most players will have some reasonable idea of what to expect and how to react when an “assault force” dispatch is announced, for example, with greater mastery comes a better feel for the full range of available options and what to prioritize in a response.

This is why some amount of immediate feedback on actions and their consequences is important, enabling players to more quickly build that knowledge and afford greater agency in the long run. Of course feedback at this particular level may not be very relevant in a lot of roguelikes, which are often based on more localized encounters compared to Cogmind where actions have both local and global consequences, but it stands as a general example of the advantage of feedback facilitating “player metaprogression.”

Metaprogression also improves alongside familiarity with systems, with players “feeling like a genius” (many a quote among Cogmind players!) for their growing ability to navigate the intersections of all these systems. Again this is an area where Rogue itself is somewhat lacking, without the same level of replayability or depth as later samples of the genre. There are definitely mechanics to learn and content possibilities to consider while playing, but only so much agency in a given run to affect outcomes.

Randomness

Ah, our mortal enemy (and friend!), the RNG…

Roguelikes need some amount of randomness to challenge us with the unexpected, be it manifested in the layout, the content within the environment, outcomes of actions, or more likely a mix of all the above.

Although players may be quick to “blame the RNG” for bad circumstances, a well-designed roguelike should be able to remove luck as a factor in runs by the hypothetical optimal player.

Not that everything should be fine-tuned to the point that perfect play is required--there should always be leeway for creativity and numerous solutions and builds, otherwise we’re promoting monotonous approaches to challenges and at least somewhat damaging the potential for replayability.

To this end I’d say keep an eye on players who regularly win, or even streak wins, and make sure that there’s enough variety among these runs.

Getting lucky and receiving a boost from that luck is a great feeling, too, though we also have to consider just how unlucky a player can be and still survive :P. This is why I like Cogmind’s more universal solution to escaping and rebuilding, providing the ultimate flexibility to backstop problems, one that is increasingly effective in the hands of a good player.

But in terms of general roguelike design, remember that the RNG and “random” outcomes derived from it never have to be truly and completely random ;)

There are numerous techniques and variations like weighting and number pools with different behaviors, and as a developer it may be smart to exert more control over some aspects of the game to ensure a better experience, as long as this doesn’t interfere with the player’s ability to build a feeling around these systems.

Consequences

Consequences add meaning to choices.

At the extreme end of that observation, permadeath and being unable to take back decisions serves to highlight true mastery over a roguelike. Sure a player might use save scumming to gain an expanded understanding of possibilities, or save time in the pursuit of late-game knowledge, but until completing full runs without reloading an earlier save, the mastery itself is similarly incomplete.

However, prior to the “ultimate consequence” of a loss, roguelikes also often introduce other consequences of import, in various forms.

In this area I’m very partial to Cogmind’s integrity system, already discussed, because it is an overarching consequence that makes every encounter meaningful beyond the encounter itself.

Unlike somewhat related “durability” systems from other roguelikes where items degrade from usage, here the degradation instead derives from taking damage, which crucially is an aspect over which the player has more control!

The best players know how to effectively protect their important parts from damage, and therefore retain their functionality for much longer or through much more difficult times. Instead of replacing lost items with salvage or sub-par parts, more often they are simply tossing their existing parts to actively upgrade to new ones. The data shows a huge contrast in this area as player experience and skill improves over time.

Food Clocks

One of the more common features across roguelikes that involves managing “consequences” is a food clock, so named because earlier iterations tended to literally be food that a player needed to eat intermittently in order to survive. Eventually the genre began transforming this feature into other mechanics with the same purpose.

This most fundamental of clocks is essentially based on time, intended to prod the player along and impose a cost on spending too long in one area, or progressing too slowly overall. Leaving good players to their own devices in a rich world that doesn’t mind however long they stick around likely invites optimal tedium, not to mention a lack of pressure potentially offering too much leeway for “shenanigans” :P

There are alternatives for eliminating such behavior, to be sure, food clocks just happen to be one approach, and learning to excel under this or similarly purposed limitations is yet another skill players build over time.

Ages ago I wrote a short piece on the importance of food clocks in roguelikes, wherein I also covered one of Cogmind’s primarily time-based clocks, namely programmers and corruption.

Beyond that however, Cogmind utilizes a variety of clocks, more than the average roguelike given the more integrated nature of the content and therefore greater suitability of global reactions to player behavior. In a large enough world I feel more compelling challenges can emerge from a proportionally wider variety of considerations, and have a greater or lesser effect depending on the player’s current build and behavior.

So there are many different kinds of dynamic responses to player behavior, including a more general “been causing lots of trouble over time, send stronger forces to the area.” Players can decide to either do their best to avoid triggering these consequences, or prepare for them in advance, or even directly manipulate the clocks themselves (delay them, or undo their effects after the fact…). Lots of options!

Although these features are tweaked to target the higher end of player performance, this doesn’t have to serve as a brick wall for others, as 1) flexible systems can be designed to push back harder when pushed against, and 2) given numerous routing options and alternative “early exits” from most maps, players may often opt to leave as soon as pressure starts to exceed their personal tolerance threshold.

Threat Detected!

Cogmind’s next version (Beta 16) is coming with an entirely new consequence, one that I’ve planned and alluded to for years. Already having made appearances in the in-game lore, the “Unchained” are effectively a type of mini-boss that might come after the player, triggered by a range of more extreme behavior.

I’ve always seen them as a potential catch-all for dealing with naughty (skilled!) players in a lore-appropriate manner. Will this stop players from doing the extreme things that could result in meeting one of these menaces? Of course not! But it might take things up a notch as it throws another new wrench into plans which may then need to be adapted.

Also of course the best players are out here wanting to take things up a notch, especially if there’s a chance they could get their hands on tech used by these fellows.

Either way, with their potentially strong impact on the trajectory of a run, we’re going to have a correspondingly strong need to telegraph their arrival! Likely even going so far as to announce specifically which one is operating in the area…

I say “which one” because each is a powerful NPC unique in their abilities, also with unique AI, definitely not something to shrug off. They can even track the player across multiple floors, a first, which may force players to confront them earlier if possible (or one could try to use this behavior against them?).

Telegraphing is also important because some of them may only come after the player indirectly rather than via direct confrontation, so we’ll need some reminders of just why certain unusual things may be happening ;)

Content

Several aspects of content development are heavily influenced by players achieving complete mastery over a roguelike.

Extended Game

Naturally a common refrain among skilled players is simply “we want more!”, be it harder challenges during the run, or even beyond the end.

A fair number of roguelikes feature such an “extended game” with additional optional challenges like collecting the 25 Lumenstones in Brogue15 Runes of Zot in DCSSUltra endings in ADOM and so on.

Cogmind as well has an extended game, and extended extended game, and also more and more different endings (10 in all as of 2025) that each present their own challenges, many quite unique in terms of preparation or execution.

Replayability through content additions, in particular alternative or greater challenges, is valuable in a game players have already invested so many hours exploring, learning, conquering, and enjoying. Sure the ideal is to have a highly-replayable base/core game, but if there is new territory into which to spread one’s experience from an already solid foundation, that’s like a shortcut to more fun :D

On that note, I just recently streamed my own winning run that aimed for Cogmind’s newest ending, archived here--spoilers for the newest faction, their plot, and a new map, not to mention a really long run spanning five streams (lots of talking xD), but it didn’t disappoint insofar as presenting new and interesting challenges!

Tradeoffs

I am a player myself, but as a roguelike developer I also see part of my role in building the game as a sort of competition against the best players, keeping it challenging while still offering many unique angles from which to explore the content.

Aside from the whole earlier discussion around leveraging “consequences” to prevent players from accumulating too much power, another useful tool at our disposal is tradeoffs.

This can apply at a scale as targeted as mechanic- or even item-specific, but the more impactful areas of concern are the large-scale tradeoffs involving maps, factions, and other major features. For one, changing an individual item or mechanic is easier to manage and has fewer repercussions, but a lot more thought has to be put into how large new pieces of content will fit into the meta--adjusting them later could be quite difficult and costly!

Branching routes in a game like Cogmind that doesn’t allow backtracking are especially useful for this. New players can enjoy the advantages of whatever route they end up on all the same, but skilled players will be using their knowledge to think further ahead, weighing the pros and cons of taking certain routes over the long term. In that sense, each map needs to be designed with rewards commensurate with how accessible it is and what else it may possibly (or even certainly!) block out.

cogmind world map pixelwise - no redacted (2025)

The abridged, less spoilery version of a possible permutation of Cogmind’s world map, leaving out a number of harder/secret maps. Now updated for 2025 since we’ve gotten several new maps over the last year (although even one of those is a spoiler so you won’t find it here--in the full version the top area is a lot heavier :P). But you can imagine that for every upward connection taken (in Cogmind you start at the bottom), that is a decision, forced or not, that permanently leaves behind many other possibilities.

Funny enough, for many years Cogmind’s out-of-the-way “Recycling” branch map was much neglected by players as being essentially useless, almost pure drawback. The only map with such a reputation, it was a relatively simple one added in early Alpha before cave branches existed, as a way to skip ahead, but later lost this value when compared to the alternative routes that became possible. Finally with the massive content expansion that was Beta 14/15 for the UFD faction over the past year, as one of the access points to that content, Recycling has been better integrated as a serious option.

And with that all the locations have their uses!

Another interesting major tradeoff worth mentioning is a special sensor-like system dubbed FarCom. Players can acquire this tech very early in their run, benefiting from realtime knowledge of enemy movements and also thereby hopefully learning more about enemy behaviors. I added FarCom primarily as a big help for new players (going so far as to have an NPC lead players to it to teach where it is) but I couldn’t just give this powerful tool to experts for free. Enter tradeoffs that don’t come into play until much later in the game :). Using it causes certain optional but very rewarding late-game areas to become hard or impossible to enter, so while some good players will still take it under the right circumstances, it’s not suitable for every run despite how good it is.

All enemies of a certain category within the circle (which normally glows faintly) are revealed, a capability akin to various sensor utilities but faster and doesn’t require a slot, so cannot be destroyed/lost.

Front-loading Difficulty

Three of Cogmind’s factions offer their own ways to front-load difficulty, in a general sense essentially making the mid-game harder in exchange for a late game that’s that much easier.

Of course the existence of these options doesn’t necessarily mean everyone can or will be able to take full advantage of them, but the effects are in part based on a sliding scale, so everyone can do their best to push harder in the mid-game, skilled players presumably pushing even harder, resulting in more breathing room towards the end.

The important takeaway, however, is that while making the late game easier every run sounds ideal in theory… mistakes are made, unexpected ignored convoys ruin your day, builds fall apart, runs often have other goals or needs to attend to, the Unchained show up, I dunno, another cycle in the world of Cogmind ;)

Think of front-loading difficulty as another tool for letting players rely on their experience to decide whether they want to risk more short-term problems that could snowball into bigger problems in exchange for a theoretically more promising view of the future.

Balance

Not every roguelike/game needs to be tightly balanced. Some people just want to find ways to become nigh unstoppable, fulfilling the power fantasy and escapist roles that games can play.

Personally I’m a fan of balanced experiences, both as a player to be challenged, and as a developer to generate those challenging scenarios throughout an entire run rather than only some smaller subset. I also think truly mastering a roguelike feels that much better if it’s not an easy accomplishment, which requires an eye towards maintaining that balance.

So how does one go about actually creating this sort of experience? Well we did already touch on balance a few times, for example with consequences and tradeoffs, though there’s more to it than that.

Numbers tend to underpin everything, so starting there makes sense. I’ve written about the numbers aspect before (11 years ago prior to Cogmind’s first release!), and again many years later with more details when every single item was revisited to check for any rebalancing needs amidst the addition of so much content and mechanics that may have left them behind in the balance at some point.

While an important foundation, however, numbers only get so far and eventually refinement comes down to play experience and game feel.

At this point player feedback is useful, and probably most vital is indirect feedback in its various forms, be it statistical data or anecdotal information. To me what players say or show to one another is more important than what they say directly to a developer (the exception is players who have an incredibly strong grasp of the game’s design--that’s a different story and very valuable feedback in itself!).

One key element I like to look out for is disagreement. Players disagreeing on what is the best item or mechanic or route and each having good explicit reasons supporting their own viewpoint and maintaining that disagreement is a good indicator of overall good balance.

I also like hearing “it depends,” which is an incredibly common refrain when discussing Cogmind and probably many roguelikes. So many decisions are and should be situational if we’re talking about procedurally generated environments and complex systems, as that’s what keeps the challenges fresh!

That’s where mastery enters the picture. It’s not possible to consult a wiki to determine how to best deal with every new encounter, there is no one-size-fits-all solution to each type of situation, it takes experience to analyze the pros and cons of each action depending on all the details at hand… (This is especially acute in a world like that of Cogmind, where consequences of decisions may easily reverberate across larger areas, or maps, or entire runs.)

Anyway, clearly this sort of approach to balance requires a lot of community interaction, or at the very least observation. Although maybe not feasible for every developer, I recommend it as incredibly valuable for creating the best possible experience. It’s worth it in the long run since traditional roguelikes tend to be developed over longer periods and have time to evolve based on that feedback if necessary.

Another angle from which to approach balance (ideally in conjunction with community feedback and observation) is the other form of pure observation: stats. It’s somewhat more limited in what if can really do for balance but examining individual extremes and aggregate data from player runs does tell its own stories, especially when comparing across multiple versions to look for any trends.

Cogmind scoresheets contain a wealth of data, and I’ve posted multiple analyses here on the blog before, though I’ve also been doing this with every version for many years over on the forums. For me the statistical side of things is less about explicitly guiding future development and more about confirming the state of the player base.

cogmind_beta3_stat_graphs_collage

A portion of the data compiled for analysis shortly after Cogmind released on Steam, especially important at the time to examine the results of wider exposure to the non-core audience (the metrics analyzed at the time were more focused on preferences, but win rates and general performance data mattered as usual).

 

cogmind_scoresheet_sample_condensed_pogmind

Run-specific data is very thorough, as you can assume from the density of the above minimized example from an atypically long run in Cogmind’s latest version (raw data).

Though I know a lot of developers outside the roguelike genre are more likely to rely on these sort of metrics, I think if the data is reflecting significant problems at scale, that’s a bigger problem with the fundamental game balance, so maybe something that’s more relevant at very early stages rather than long-term development where you’re more interested in expanding on a solid foundation and/or tweaking smaller parts of a larger game that both yourself and the community are already deeply familiar with.

Being able to predict the results of additions becomes a valuable tool--the lesson being get good at your own game ;)

Recognition

Surely most roguelike masochists focused on mastering their favorite games are in it for the sake of doing it, an ultimate personal accomplishment. Roguelikes are single-player games, after all, so there is less emphasis on the competitive aspect compared to many other genres. Bragging rights are still a thing, though, so it’s nice to add ways for players to share that recognition.

For one, online leaderboards are pretty common, often including databases that allow one to look into the details of each run.

roguelike_run_databases_samples_small

An Angband ladder for online versions of many variants, one of many DCSS stats interfaces, and one of Cogmind’s run databases. All of these give access to detailed data about the individual runs as well.

Heck, DCSS even holds great tournaments to celebrate each new version.

Cogmind has its leaderboards, reset with each new version, which frequent players are keen to keep an eye on and enjoy working their way up.

cogmind_leaderboards_sample_250806

An excerpt from Cogmind’s latest leaderboards. (As a testament to the aforementioned interaction with the player base while designing the game, I’ve talked with everyone seen on the list there, and actually know the vast majority of players in the top 100, plus many scattered throughout the remainder and still working their way up as well.)

Even Rogue’s earliest versions included the type of high score list often found in early single-player games played on a single system (arcade-style), thereby facilitating competition.

unix_rogue_3.6.3_top_score_list

A sad story from a quick run in Unix Rogue, but hey #1!

Competition aside, even just specialized personal goals have been a thing in roguelikes for ages, traditionally known as “conduct” runs, whereby for example players might adhere to artificial limitations on what they can and cannot do during the run, a clear sign that someone is probably reaching a higher level of mastery :P

What we can do in such cases is identify interesting/challenging/fun conducts and formalize them.

Even some older classics eventually took this route, tracking whether a given run has been following each conduct so that information can be recorded in character dumps.

nethack_conduct_list

A list of conducts in NetHack. Some additional optional conducts even require configuring the game options to enable them, for example starting blind or without armor, in order to enable one to conform to the requirements throughout the run.

 

shadow_of_the_wyrm_conducts_list

Another list of tracked conducts from Shadow of the Wyrm, a chill ADOM-like still in active development after nearly 15 years.

More modern roguelikes may also do this using the newer form of recognition in gaming: achievements.

I’ve written about the design of Cogmind’s own many achievements before, which include a sizeable number of “challenge” achievements that fall into this category, with coincidentally many more coming to the next release.

Cogmind has its own built-in achievement system, since I believe as a traditional roguelike available off Steam, it should not require that platform to have access to its features.

In the end the recognition is the less important part, and it’s more about using features of the game itself to guide players to discover new ways to interact with the content as they attain mastery, especially relevant in single-player games where players may not necessarily be attached to a community of other players.


Whew! I think that about covers a lot of the main points we discussed in the Roguelike Radio talk, and then some. Mastery is a broad subject with deep roots in the genre, so as soon as Darren proposed it earlier this year I had a strong urge to write about it. Waiting until after the talk meant I just had a handful of random notes available for the talk itself, but at least it spurred me into action to put some more writing here :)

If you’re interested in further related reading, I have an article on design philosophy containing some themes that tie into this one.

Posted in Design | Tagged , , | Leave a comment

Year 11 of the Cogmind

Another fruitful year is coming to a close! It’s once again time for our annual review to reflect on the year’s milestones and look ahead with renewed focus at the months to come. In terms of both technical achievements and content expansion, 2024 was a huge year for Cogmind… but first, the traditional opening collage, a quick visual summary of the year:

cogmind_development_year_11_small

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

Development Time

As usual, the end of the year is when I carry out the final compilation of all my financial and development data, especially the latter being recorded in detail on a daily basis. Although I keep an eye on general short-term trends in dev work throughout the weeks and months, the biggest revelations often don’t come until year’s end when viewed in aggregate, and in the context of previous years, once everything is integrated into the many graphs I use to monitor long-term progress/work.

As repeated in my Year 10 review, I’ve wanted to continue the recent several years’ trend of a higher ratio of game vs. non-game work, implying a lower relative amount of community-facing work, e.g. writing articles, streaming, hanging out discussing mechanics, etc. (these are the more flexible components of non-game work, unlike web maintenance, business stuff, and so on). Definitely hit that mark…

cogmind_development_hours_game_vs_community_2013-2024

Cogmind work hour distribution in 2024: game development vs. community efforts (excludes hours dedicated to neither, as in other required non-game work).

Among my graphs this year, this data point stood out the most, because not only did I again maintain the desired ratio, but both categories blew all recent years out of the water. In fact, game-specific work in 2024 reached the highest level of any prior year in Cogmind’s history! That was quite unexpected, beating out even 2015 when Cogmind was first released, but then the two major releases this year were quite significant on both the UI and content side, after all.

I’ve gotta say that strong Patreon support has played a massive role here, since I’ve been able to more confidently concentrate work on the game itself rather than making sure to allocate a lot of time to writing and spreading articles and updates all over the place, which is essentially advertising and has always helped bring in new players in the past, but also detracts from progress if there’s too much of it. Of course there are always the other clear benefits of writing, streaming, and discussions, but I feel less compelled to do any of this for advertising purposes, which is more freeing.

Funny enough, community time was also up this year xD. Part of this can be attributed to the fact that recent years were a bit plagued by health issues, which kept me from streaming as regularly (in 2023 alone I had to stop streaming Cogmind runs for like half a year). This year I have been very much back. Plus there was a lot of writing early in the year surrounding all the new interface work to walk everyone through that.

Overall a good year, with the results to show for it!

Releases

This year there was not one but two major releases.

Beta 13 “Zoom All The Things” was both a technical and QoL win, adding map zooming and multiple UI layouts which increased accessibility for more players, great since many more folks these days are playing on laptops than when Cogmind was first designed over a decade ago.

cogmind_beta13_zoom_all_the_things_logo

Zoom all the things!

At the end of Year 10’s annual review I declared my intention to update the UI in multiple phases throughout this year, then… just went ahead and combined all the phases into one update :P (this also contributed to 2024’s higher workload, but the challenge was as invigorating as it was worth overcoming upon realizing it could actually successfully address a long-standing issue)

At the end of the Beta 13 play cycle I compiled stats for that version, analyzing player use of the new UI features which you can read about here.

cogmind_beta13_stats_ui_layout_preferences

Cogmind Beta 13 UI player preferences

Most people use the new layouts. Success! (The same ratios are found even among long-time players who previously only had the original layout and were already familiar with it.)

What Beta 13 was to QoL, Beta 14 was to content“United Federation of Derelicts” began the UFD story arc with a bang, introducing a whole new faction and tons of new items, mechanics, robots, and a sizeable amount of related lore to explore. (Okay I also spent weeks optimizing the data storage and loading routines to make both startup and map loading almost instantaneous, I guess another mark for QoL!)

cogmind_beta14_united_federation_of_derelicts

The UFD has arrived.

Sadly I did not get to finish the second half of the UFD expansion by the end of the year, but that’s because it got even bigger… more on that further below.

Community

Among this year’s greatest community contributions was the famous video from DoshDoshington, a meaningful shot in the arm and at just the right time, too, attracting many new players with similar interests around when Cogmind got its interface accessibility update :D

As a skilled player Dosh has been a valuable member of the community in general, especially knowledgeable in the ways of bothacking!

Also can’t forget Youngster’s introduction to Beta 13, which was posted in various places including r/Roguelikes, a fun way to let those likely already familiar with Cogmind know about such an important new feature as larger UI layouts.

Another highlight of the year, Plexion’s Botcube Brawl was an exciting and hilarious challenge, streaming a bracket competition between player-designed robots. If I’m not going to run any special events of my own, the community clearly has their own ideas :) (for this particular event I did take a chunk out of dev time to build a custom mode for an improved competition experience, which turned out quite well)

A huge thanks to those of you helping put out such great content.

Including art! Many new creative and inspiring works have passed through the community this year…

MrMesh painted two new awesome pieces, I just have to include them both. (Most art on this page can be opened in a larger size.)

cogmind_fanart_mrmesh_finding_a_garrison

“Finding a Garrison,” by MrMesh.

 

cogmind_fanart_mrmesh_the_crusher

“The Crusher,” by MrMesh, in memory of the first time he was sucked down a trash chute.

Wyvric, who holds the current Beta 14 high score record (Dataminer page) with a Scrap Engine run, also drew their build. They’re truly a master of the style, and expert at maximizing its insane potential for resilience and destruction.

cogmind_fanart_wyvric_significant_disruption_scrap_engine_build

Wyvric’s SE build in this piece titled “Significant Disruption.” Further description by Wyvric: “Linear-Surge Biometal-Centrium Kitchen Sink Exoskeleton 40-speed-treads abomination running amok in -1. +400 heat per shot Construct/C included. Bonus game: see how many Utilities you can identify (there are nine on the Cogmind).”

CaptainWinky has been putting out whole new robot and item designs with their own ASCII art and integrated lore, found here (also original forum thread). There you can read dozens of well-though-out entries compatible with Cogmind’s own lore, adding Gremlins, Impalers, Pulsars, R4-LPH, Chungus and the Hvy. Slug Cannon, the H-44 Whirlwind and its Anti-Materiel Rifle, and many more. Plus you can can check out all their stats, too!

cogmind_fan_lore_captainwinky_c-40_developer_combat_logger

The C-40 Developer and their Combat Logger, by CaptainWinky.

Zyalin hasn’t been as active this year, but did grace us with some build sketches during streams by some of Cogmind’s top players.

cogmind_fanart_zyalin_aoemica_mtf_stream_builds

Top: MTF glass cannon assault drone build. Middle: aoemica tunneling to final victory during his treads-only straight shot challenge run. Bottom: MTF Scrapsphere UFD run with Scrapoid support.

I’ve been streaming a bunch of runs myself, some of the more thematic builds this year being flightbrick (b13), bicycle RIF (b13), UFD golem (b14), the treads straight shot challenge (b14), and a comic sans UFD run that veers into a wardrone win (b14). In preparation for our next major release I also did a Beta 15 run testing new features including primarily non-tracking exterminations/assaults, but also taking advantage of new leg mechanics as another melee-focused combat option.

Right now I’m in the middle of a “Serflord” run, playing that audio-based story mod by Theyflower which requires you to follow a specific route in a seeded run to complete all the story points (although technically you don’t know what those points are until you hit each point for the first time).

2025

And the coming year will be yet another big one! I’ve already previewed what’s to come in my Cogmind Vision 2025 announcement earlier this year and there’s really no amendments to make to that, we’re on track and the thrust of each upcoming release is as summarized therein. It’s just a matter of time…

Personally I did at first hope to have the UFD arc completed by the end of 2024, but that was based on my original plans for its scope, which got a little bigger, and in more ways than one.

  • For the first time since starting the document a decade ago, I went through the entirety of my core optional TODO/notes file, all 450 pages of it. I’ve filtered and organized every last entry, simultaneously pulling out nice features that I wanted to implement immediately for Beta 15, a fair bit of work but just about the right time to do it. I wrote about that process and shared some samples from the results in a post on Patreon you can read here.
  • After that I also implemented about two of the patron-voted features for Beta 15 (depending on how you count it might be one and a half, but definitely more than one xD).
  • And most recently I once again significantly expanded Cogmind’s item count. Already 73 items have been added for the upcoming Beta 15, with at least a few more still to come. I wasn’t originally planning to add this many since I was hyperfocused on the Protoforge’s value to the plot and some of its specific challenges, none of which really required new items, but as usual decided it wasn’t enough, we gotta have even more great new reasons to go there! Back in Year 10 I shared those graphs of annual Cogmind item count increase, and that big ol’ spike is set to maintain its new level in 2025 as well.

So as it stands, Beta 15 is already quite a large release with a lot of new features, but I do want to wait until the full UFD story is complete to put it out there. I don’t like splitting content, which was already done once now due to the sheer size of the UFD faction, where leaving the UFD half-complete and Scraptown itself in a temporary state of harmony could give people the wrong idea about some aspects of its gameplay. This is especially true for those who have never read earlier statements about it being a work in progress and that the experience will end up seeing some… very noticeable changes! (Most importantly in that regard: A chunk of the new items have been inaccessible unless you initiate hostilities, but that is not intended to be the case once the town is complete. Also there are some more folks who can help you find and reach it in the first place as the location becomes more fully integrated into the world.)

My first step next year will be to release the complete UFD story, concluding it with a new ending (Cogmind’s 10th different ending!). Then as planned comes the Unchained expansion and of course some other cool accompanying features :D

Onward!

cogmind_fanart_darby_NPC_parade

An NPC parade, by Darby. Depending on how much exploring you’ve done so far, you might recognize these fine fellows ;)

Posted in Annual Review | Tagged , , , | Leave a comment

Multitile Actors, Revisited

Ever since my original forays into ASCII-based development with X@COM, I was both forced into and remained interested in working with actors that occupy multiple spaces on the map. The implications, the representations, the benefits, the drawbacks… all very fun issues to tackle in order to bring physically larger creatures to life, and give them the visible bulkiness they deserve.

Years back I wrote a lengthy primer on the topic, covering examples from different roguelikes, their appearances, related mechanics and design, and more. Now with Cogmind’s most recent Beta 14 release I’ve revisited this subject in my own work, so it’s about time to extend my original article with yet more information!

Some of these features were already covered on Patreon earlier this year, but here I’ll go into a little more detail, including a few of the eventual surprises I had not yet announced at the time.

Environmental Obstacles

One of the biggest obstacles to taking full advantage of multitile actors is the environment, since cramped spaces will naturally limit their movement options, preventing them from effectively chasing down smaller prey.

To an extent this can offer some interesting tactical choices--do I make a stand in this open area guarded by a large opponent, or run for it given the knowledge that even if I’m spotted I can probably get away mostly unscathed? But by extension it also limits how scary these large creatures can really be, which is rather unfortunate. Unless a majority of the surroundings are relatively open, it can be easy to slip through smaller spaces and not have to worry about being pursued.

One simpler way I addressed this issue from the beginning was to at least given these big fellows behavior that causes them to aggressively attack through walls and machines, with weapons usually powerful enough to punch right through and as a result create more open space, new pathways, and additional sight lines.

This approach definitely led (and still leads) to some scary moments marked by a feeling of gradual impending doom as walls are peeled away in your general direction as you try to make your escape. (Here we’re ignoring the players who face down such opponents with prejudice :P)

But I’ve always felt like they should be scarier, in a truer reflection of their size. Time to get smashing!

Smashing Terrain

I always wanted to have wall smashing in Cogmind, the ability for at least some robots to plow through walls as if they’re open terrain. As I demonstrated last time, this was already a feature in Cogmind’s predecessor, X@COM, so technically I removed it when I started building Cogmind, mainly because I wasn’t sure what the long-term implications of such a feature would be in this particular game, so better to wait on it. Many years later, the time had come to use it as one piece of a solution for significantly improving the multitile actor experience in Cogmind.

cogmind_multitile_entity_wall_smashing

“Haha stupid Behemoth can’t get in h--aaaaaaahh…”

These guys will only smash through walls, not machines, though they’re still happy to shoot through both those and walls where applicable.

At the same time, this doesn’t mean they go around smashing walls willy-nilly simply because they want to move. By design these bots are usually stationary in the first place, only moving if they need to engage in combat, but even then the “movement cost” to smash a wall is higher, thus they’re less likely to do so if there’s another reasonable option, even if the other option will technically take longer.

cogmind_multitile_entity_not_smashing_wall

“Why yes I could go through the wall, but I choose not to!”

Note these actors are only able to smash walls specifically, not just any solid/earth cells, so they’re not out there carving their own paths just anywhere they want across the entire map. That would be getting pretty ridiculous, so they’re still limited by the general shape of the architecture. They just need some extra room to maneuver that they can’t otherwise have in constricted areas, and enabling access to wall spaces is plenty, since that gets large robots down long narrow corridors, and into rooms adjacent to corridors.

In my earlier article I shared an image showing the more open areas where large defenders might be placed. While that aspect remains unchanged today, in the past they would not be able to venture far from those areas, or at least limited in terms of available directions, whereas now their potential range of movement practically stretches across the entire map, at least insofar as pursuing targets.

cogmind_multitile_behemoth_guard_accessible_area_beta13vs14

Research map highlighting the area where large guards have non-smashing movement access (red) from locations where they’re initially placed (white dots), compared to the areas they can reach via smashing (dark purple). As you can see, even single-tile corridors, being lined with walls, are suddenly at least three tiles wide, and pretty much the entire map becomes accessible!

Remember this doesn’t mean they will actually chase targets for that long--Cogmind includes the same old mechanics for losing pursuers, which in this case become that much more relevant since using the terrain against large pursuers may not always be the go-to option it was before.

In terms of implementation, smashing behavior was built in a generic manner so even smaller robots can be given the capability, and all smash-capable bots have an adjustable willingness to do so, though for now this ability is only found on the large actors it was meant to support, except for one special NPC in particular ;)

One potential mechanical collision I had to account for is Engineer repairs. Anyone who plays Cogmind is familiar with the zealousness with which those guys are out there repairing any damage to the Complex, so you can imagine their consternation whenever some large friend of theirs is ripping out the walls just to get around. To prevent this from becoming an issue, walls destroyed specifically via smashing are put on a looser repair schedule. If not for this delay, you could easily have a swarm of Engineers following one of these large bots around to make instant repairs, generally getting in the way.

Pushing and Crushing

So that’s static obstacles taken care of, but we have another prevalent issue when it comes to ensuring convenient fluid movement of large actors: other actors!

The normal way to handle actor blocking, especially if it’s between allies, is to simply allow them to swap places, but we can’t reasonably do that when one is regular sized while the other occupies at least four times as much space…

What we can do is allow pushing! This is way better than trying to find another way around (which probably doesn’t exist anyway), plus it’s cool and makes a lot of sense that a large actor could push around smaller ones.

Fortunately I already pioneered this feature for Polymind, having completed half the work involved by developing the mechanical side of how to properly push robots out of the way. Sure pushing one robot is easy enough, but when you have a chain of robots and more complex scenarios, it can take a bit of doing… (I described that a bit in Part 1 of my Polymind articles) With that done, I’d just have to borrow the code and teach the AI how to actually use this as well, since I’d previously only needed to consider player control.

cogmind_multitile_entity_pushing

“Coming through!”

We also have another related option in an actor-blocking scenario, not required but definitely cool and fun: crushing! Not for friendlies, of course, but if the blocker isn’t an ally and we’re big and buff, crushing them to pieces seems like a reasonably desirable outcome. So that can happen, too.

cogmind_multitile_entity_crushing

“Coming through… you!”

Only single-tiled actors may be pushed/crushed, so multiple large actors moving around near each other will be limited as before, though this doesn’t often come into play except with Cogmind allies, and they are equipped with some great new supporting features…

Multitile Allies

The biggest driver for improvements to multitile actor behavior has always been their performance as allies. Since players spend more time with allies, up close and personal, that also means more opportunities for frustration when your big friend just won’t get the hell out of the way, or can’t follow you to a new area without you hacking away at the terrain yourself.

For quite a number of versions now I’ve wanted to include solutions to these and other problems, but despite always putting it on the near-term TODO list, it always bubbled to the top shortly before release and I’d run out of time to complete it, this being a decent-sized project on its own. Well with Beta 14 I said enough of that, it’s going at the top, and did it right at the beginning. HA, take that :D

The smashing and pushing capabilities described above are a good start, and inherent in the new movement behaviors of large actors so we don’t have to worry about any special treatment there, but there’s definitely plenty more we can do which is specific to allies.

For one we can solve the problem of entering a new map that simply doesn’t have enough room for big friends. As a backstop for players with big armies tagging along, I did already increase the maximum distance at which they can spawn into a new map, though this can only go so far, and isn’t ideal as they get spawned further and further away, or large actors take up chunks of room that could be used for other allies, maybe even preventing others from spawning at all.

Easy enough. Now that we know large actors can smash walls, let’s just allow them to do that upon entering new maps.

cogmind_multitile_entities_smash_entrance

“We’re heeeeeeeere!”

That’s overall a minor issue compared to behaviors that start getting in the way while traveling with large allies over the long term. For that we’re going to need some more complex solutions.

Avoidance

Well at least your multitile allies can push you just fine, so you and your normal-sized friends are generally not an obstacle as far as they’re concerned. But what about the other way around--you’re certainly not pushing them, and that’s the bigger problem.

First of all their ability to push other actors and smash walls if necessary means they’re much less likely to get stuck doing their own movement, say for example if they’re ahead of you trying to reach some target further ahead.

That much is great, but they might still get in your way, and we’ve got some new helpful behaviors to manage this.

The simplest is the STAY order, which when given to a large ally causes them to always attempt to maintain some distance between you and them. They’ll even back up into a wall if they have to, since the top priority is just get out of the way, and they might very well be in a narrow corridor or corner scenario where a little smashing is the only solution.

cogmind_multitile_entity_back_away

A large ally with the STAY order trying to avoid blocking Cogmind, whatever it takes. This can technically also be used to get them to “back up” in front of you as you advance.

Caravans

Another important change we need to focus on is preventing large allies from bunching up to begin with, especially considering their inability to swap with or push one another. We need them to spread out…

In the beginning all Cogmind allies tended to just move around you in a shifting cloud. This is fine if you have a few combat allies, but has become a problem before, like you probably don’t want your Mechanic hanging out on the front line of a hostile encounter. So back in 2020 I modified non-combat AI follower behavior to “hang back” more, even retreating ahead of you if you decide to retreat along or near your original path.

cogmind_noncombat_follower_hang_back

An Operator buddy generally staying back a little, rather than circling Cogmind’s position like a combat robot can. This feature has worked out pretty well since it was added, increasing their survivability in hostile situations.

This is a pretty big improvement over getting your defenseless friends shot up while just traveling around.

We can borrow this same system to keep large allies out of the way as well, although since they’re chunkier we probably don’t want them getting in the way of other smaller allies, including those already hanging back, suggesting we want large allies even further behind everyone else.

cogmind_allies_mixed_group_formation_labeled

A typical controllable mixed ally layout when all are following Cogmind, heading west.

Having a nice point a little further back for our big chonker is great and all, but what if we are fortunate enough to be supported by a whole collection of chonkers at once? All of them trying to hang back at the same point is just not going to work, not to mention the resulting cluster will hinder the movement of other bots.

More spacing is needed, and each large ally is like their own cluster of bots after all, so let’s just extend the following system further, as far as it needs to go, adding a new point for each subsequent ally.

cogmind_multitile_entity_caravan

Multiple multitile allies following Cogmind in a chain.

Backing up will also cause the entire “caravan” to reverse direction and back up in the same order, at least for a little while until it’s maybe time to swing everyone around and return to following behind you.

Vision

In my other article I discussed targeting origins and AOE effects, but I didn’t cover another aspect technically not given any special attention in Cogmind at the time: line-of-sight. Although less of a true problem or even a factor that more than a few players noticed, line-of-sight for multitile actors had some quirks and it was about time to do something about them.

cogmind_multitile_entity_FOV_beta13_old

Simulated FOV of a Behemoth in a guard position prior to Beta 14. (“Simulated” because AIs in Cogmind, aside from drones, don’t technically calculate actual FOV in the normal sense.) Talk about tunnel vision!

You’d think FOV from such a position would look symmetrical, but it’s clearly not. It’s actually calculated as it is for any other actor using its base position, which for large actors is their top-left corner. You can see this in action by observing the shape of the FOV in the above image, and imagine that the shapes are equally odd (but in a different way) for other orientations and scenarios where a large actor is blocked by something immediately adjacent to them.

For those aware of this discrepancy, it could impact tactical decisions by suggesting an optimal direction of approach in some scenarios, which of course doesn’t make sense.

The original method was used simply because it was easier and involved fewer calculations or special cases, something that’s always nice to be able to iron out after working on the same game for, oh… over a decade, which is completely normal I promise.

cogmind_multitile_entity_FOV_beta14

The expanded Beta 14 FOV of the same Behemoth in a guard position shown earlier. Now they not only smash through walls, they even have much improved (normal…) vision!

The same situation technically applied to AIs attempting to spot large targets, only caring about their top-left corner, but that has been addressed in a similar manner for greater accuracy.

I’m altogether very happy to have all these new features in the game now, which are definitely contributing to a better play experience around large actors--scary when a hostile one’s spotted you, and not so annoying when they’re on your side. Can’t wait to do the type of run that is more likely to have large allies, or even more than one! Also looking forward to seeing more player stories or streams featuring fearsome Behemoth chases :)

cogmind_doshdoshington_RIF_army

DoshDoshington‘s love for bothacking has already seen him doing runs in which he gathers quite impressive armies, like in the above screenshot, and large allies can play helpful roles now rather than being roadblocks most people want to murder or ditch ASAP. (He’s shared some even better shots on Discord, but big spoilers so I won’t share those here…)

Posted in Design | Tagged , , | 2 Responses

Full UI Upscaling, Part 5: Completion and Demos

They’re alive! Last month I shared a sizeable collection of interface mockups summarizing my vision for a playable Cogmind interface that could fit within a 45-row terminal. Those mockups are now a reality, fully implemented more or less as described, and in the time since I’ve even gone further down that path and implemented the so-called “Phase 4” UI with its greater number of modal windows.

Although I already demonstrated much of the first new modal UI layout in an earlier forum announcement, I figure I could review those features here in order to provide closure to this series, plus cover some related dev topics as well as the second modal layout.

Cogmind Modal UI Layout Mockup Collage

A collage of 45-row interface mockups shared in January as part of Part 2 of this series.

“Semi-modal” 45-Row UI Layout

Although players are free to continue using the full 60-row layout originally designed for Cogmind, anyone who does not mind sacrificing some convenience in exchange for greater cell size can use 33% larger tiles and text by switching to a 45-row layout. In other words, anyone using size 18 fonts (the majority of players), would instead be using size 24 under the new layout.

cogmind_semimodal_UI_1080p_sample_comparison

Comparison of Cogmind’s interface at 1080p when converted from its standard 60 rows to a 45-row layout using a smaller map view and modal inventory (open for full size 1920×1080).

One of the biggest compromises in this mode is the smaller map view, but it’s still reasonably large (at least 50×35), large enough to at least see out the extent of normal sight and attack ranges, and for information beyond that all the QoL recently developed for map zooming comes in handy, even when not zoomed.

Here is a sample screenshot of the 1080p 45-row terminal layout in the early game, before the inventory even switches to its modal form:

cogmind_semimodal_UI_1080p_sample_normal_inv

45-row UI layout with non-modal inventory, because there are not yet enough part slots to edge it out of the main interface.

Inventory/Parts

The other compromise is interacting with a modal inventory for much of a run, but I’ve also put a lot of work into designing QoL features to make it as seamless as possible.

cogmind_semimodal_UI_1080p_sample

The inventory! It’s gone!

Easy access to information and feedback is important, so of course the INVENTORY access button directly reports its current usage and capacity, pieces of info which would normally be found at the top of the inventory window itself.

cogmind_semimodal_UI_inventory_collection

Any time one or more items are added to the inventory through any means (picked up, detached, or otherwise) also shows a new indicator.

One of the most important forms of inventory interaction for mouse users, drag-dropping, is also preserved by automatically opening the inventory while dragging a part, then automatically closing it again after release, in case you want to put the item in your inventory.

cogmind_semimodal_UI_inventory_dragdrop

Automated modal inventory toggling in action, followed by some other inventory interaction. Dropping the item on the INVENTORY button would actually work, too. (Dragging a part out of the inventory would still require opening the inventory first.)

In fact, quite a few operations will automatically toggle the inventory like that wherever it makes sense--the part management keyboard interface (‘p’), the ‘d’rop shortcut, part swapping, item tagging…

cogmind_semimodal_UI_inventory_p_menu_attach_autotoggle

In this example, hitting ‘p’ to activate the part management menu, then ‘a’ for attach, automatically opens the inventory, from which ‘2’ is selected for the Transmission Jammer, attaching it then automatically closing the inventory again.

Of course the regular old swap menu also works just fine, even when the inventory is modal, meaning opening the inventory is often not even necessary.

cogmind_semimodal_UI_inventory_swap_normal

Here the result of the swap operation also displays the indicator for a part having been added to the inventory.

 

cogmind_semimodal_UI_inventory_swap_modal

The inventory-first keyboard swap system has also been modified to remain compatible with a modal inventory, with automated opening/closing if necessary.

One of the most controversial aspects of the 45-row interface is likely how it treats part type headers. As I wrote about during the mockup descriptions, we can save space, and delay inventory modality, by temporarily removing the headers themselves from the parts list. That was going to be an optional feature disabled by default, but for now I’ve instead decided to have it do that automatically, and be opt-out instead.

cogmind_semimodal_UI_condensed_parts_headers_and_cycling

Condensed part headers in action. They double as CYCLE buttons for mouse users, functionality that would otherwise be lost since the header buttons are hidden.

The headers are only replaced by the sidebar method for as long as the inventory conversion to modal form is delayed (so about two evolutions in the mid-game), after which they’re restored to normal again since there’s plenty of room.

Secondary Windows

As per the mockups, many of Cogmind’s secondary windows that were originally designed for at least 50 rows had to be squished down to 45, including machine hacking, the status window, and item/robot info.

The most obviously different of the group is item info, which saved enough lines by moving its art off to the side.

cogmind_semimodal_UI_part_info_layout

Sample part info as fit into a 45-row UI layout.

The other biggest new feature which took a while to build and finalize but will likely be seen by almost no one (:P) is the [M]ore button as applied to robot resistances. Such a button was already added to Beta 13 to support the occasional longer item/effect descriptions, but was given new purpose for the very rare possibility that a robot might have too many total lines in its info window, in which case one way to cut it down to size is to put excess resistances in a popup window.

cogmind_semimdal_UI_robot_resistances_more

More!

The world map view was yet another one of the secondary windows originally designed for a height of 50, but fortunately removing some of its interior padding was enough to shrink that to 45. At the same time, I also took this opportunity to do something else that I’ve wanted to do for years: speed it up! Although I first designed the map in 2016 with this fun vision of a map animating the route you took to get to your current location, while not too problematic in Cogmind’s early years, the continued addition of new areas and potential for lengthier routes could make it a bit of a slot to view the full map in the late game, so I’ve rebuilt it to appear in its entirety almost instantly :D

cogmind_semimodal_UI_compact_world_map_also_instant

Instant route!

This world map change will benefit everyone, regardless of UI layout. In fact a number of tweaks and fixes made throughout the layout development project have carried over to the regular interface as well.

Game Menu

A good half of the work involved in creating a 45-row version of the interface involved adjustments to the game menu and its various subwindows. It was a lot. The content was, after all, mostly designed to fit within the map area, which had presumed minimum dimensions of 50×50. At least we didn’t have to worry about the width (whew--very glad Cogmind was designed for 4:3), but again with the height…

Pages with a 50-row layout now needed 35-row layouts as well.

Overall the biggest impacts were to the Advanced commands page, which had always been pushing up against the limit to begin with, and all the records interfaces.

cogmind_semimodal_UI_game_menu_commands

At least the solution was obvious in this case: After all these years, I was finally forced to add a second page to the advanced commands :P

The problem with the Achievements/Gallery/Lore records, and actually much of the “game menu” in all, was spaghetti code. Most of Cogmind is fairly well organized code, but not the game menu and its pages--it’s all in just two files to which I kept adding and adding and adding and sharing variables and it’s just messy all around. I used this opportunity to clean it up a bit, especially the records code which share a lot of the same functionality anyway but instead of using common functions there was just copy-pasted code everywhere.

Design-wise, at least the records weren’t trying to fit into the map view area, and they turned out fairly well, if slightly cramped compared to before.

cogmind_semimodal_UI_game_menu_achievements

Achievements UI in the 45-row layout, with reworked collection% and export buttons on the right side.

Amidst the refactoring, in another of those “I should do this while I’m here” moments that benefits all layouts, I finally darkened the background when a modal popup is active in the game menu. Doing so always made sense, of course, but it wasn’t vital and it never felt worth dedicating the time before.

cogmind_semimodal_UI_game_menu_patrons_and_dark_background

Finally a darkened background!

After building this new UI layout, last week I streamed the first run to make use of it, explaining all the major features as we went…

“Modal” 45-Row UI Layout

The first 45-row layout I developed is essentially “semi-modal,” because all windows are visible as usual until only later when just the inventory is hidden as necessary. The true modal interface hides multiple windows, and does it immediately from the start, but in doing so allows for a map view which is almost as large as what Cogmind was designed for (50×50).

All three options are available in a new setting at the top of the Options menu.

cogmind_options_menu_layout

UI Layout selection menu coming to Cogmind Beta 13.

How do we reclaim our missing map height? By making the top-side consoles all but disappear, of course! The info displayed up there does not warrant constant attention anyway, consisting of transient logging info and some menus for accessing control of allies and intel. Anything that might be of potential importance can be displayed temporarily, and any menus can be called up as needed. The result is a much taller map view: 50×44.

cogmind_modal_UI_1080p_sample

Modal 45-row UI layout screenshot sample (1080p). (See here for a 1440p sample using the new Tamsyn font.)

The top row buttons serve more or less the same functions, such as toggling the message log to its full height, or switching the center console mode, though in this case the toggle must also open the Allies/Intel windows to make them visible and interactive when necessary.

cogmind_modal_UI_topside_consoles_closeup

Interacting with various buttons atop the map in the Model 45-row layout.

The Extended Log and Combat Log modes simply determine what the space below is used for when messages are being displayed.

cogmind_modal_UI_message_log_extended

Two columns of message log data. The line count and duration can be controlled via advanced.cfg options.

You might recognize the temporary message log style from POLYBOT-7, which is where I ripped it from :)

cogmind_modal_UI_message_log_combat_log

An alternative example combining the regular message log, which always at least appears on the left, with a combat log on the right.

The automated full-detail combat log messages (the ones that even in the 60-row layout could appear over the map as combat plays out) are hidden by default in 45-row layouts, even if the detail level is set to Full, since given the narrower map view they can easily obscure nearby action.

There is a new config option to force it anyway, for those so inclined, but as usual, as long as it’s currently your turn, in combat log mode you can always scroll the combat log backward to review the details of recent combat. (However, in the Modal 45-row layout there is currently no way for the mouse to initiate this scroll--it’s keyboard-only…)

cogmind_modal_UI_extended_combat_log_recall

Scrolling the extended combat log history.

I’ll be streaming a run in this layout as well, once the build is ready…

Extra Credit

With playtesting having only just begun, I’m sure these layouts could use some more polish here and there, but they seem in a really good place already. Looking further ahead, there’s also the chance that other related features might be added as well, things I’ve held off on so far in the interest of actually releasing this to players and getting back to the content expansion I was working on before.

Tutorial

One such feature I was on the fence about throughout layout planning, and to a lesser extent throughout all of Cogmind development, is a more intrusive vector for tutorial info. I much prefer to maintain Cogmind’s theme of immersion as best possible, and that has always meant avoiding an in-your-face type tutorial with dedicated popups or some similar effect. A sound cue and flashy log messages, that’s it.

In particular this Modal 45-row interface has me more worried about teaching new players, especially if it’s to be a default layout, because log messages automatically disappear after a little while. Yes the log can be opened in full to view them as normal, but players would need to be proactive about it. A log-based tutorial was already easy enough to miss bits of before, and people did :P

To somewhat address that issue I doubled the duration of specifically tutorial messages in the Modal layout, so they remain visible longer even as other messages disappear.

Another problem which had me again thinking about alternatives is the handful of tutorial messages that appear when the log area is not visible at all in the modal layout, such as while hacking! (since in that case the machine hacking interface now extends all the way to the top of the screen) One might suggest putting these immersion-breaking messages right in the hacking interface itself, but if we’re going to go that far we may as well take the dedicated popup route :/

I’m letting this topic simmer for now, and ultimately the decision would be affected by whatever our default layout ends up being.

Screenshot Mode

Although not particular to modal layouts, and a feature I’ve been considering for years, the need for some form of “screenshot mode” clearly becomes more acute with the introduction of new UI layouts.

One of the original principles of Cogmind UI design was the desire to have all or almost all important information necessary for decision-making visible at all times on the main interface--stats, parts and their condition, inventory and item states, the map, the log, basically everything.

I like that by extension this means a single screenshot could be a comprehensive or at least very good indicator of a run’s overall state, either as a record or something to share with others. For that reason I’ve often considered facilitating a way to include one’s entire inventory contents in a single screenshot, since some builds might possess about 10~15 items that aren’t currently visible in the screenshot (some people have taken to sharing Cogmind’s stat dumps to provide that info, and more, in lieu of a screenshot, but screenshots tend to be easier to digest overall; other folks have literally stitched together their own screenshots to include a complete inventory…).

And now depending on one’s UI layout we might have not only zero inventory items visible in a screenshot, but also even a missing message log and list of allies etc. In that light, I guess the chance that I finally add such a feature will only grow going forward… I’ll be keeping an eye on the sharing scene among frequent players using these layouts.

I don’t have any mockups of “screenshot mode” for you now, but the idea is simply that some of the map area could be used to display the additional info.

A New Default

When the next Cogmind version releases, new and old players alike will be faced with a new UI layout. But which one?

The setting can be changed in the Options menu, but it needs a default, and even returning players who have a config file will be initialized to that layout. This will at least be a good way to get everyone to realize the new layout options exist (if they somehow miss the repeated news :P).

I really like the original layout (obviously), specifically designed to immerse with maximum information, at the cost of cell size perhaps requiring a large display. That might work for a relatively specific target audience, but Cogmind has many more players these days, players who come from a variety of backgrounds and with different setups, and they’d like to enjoy the gameplay, too, so some accommodation is necessary. One of the other layouts then, with larger fonts from the get to…

My original assumption was that the default would be the middle option--partially modal with most windows and info still visible, just the significantly larger text (yay for most people on laptops) and smaller map view (but still large enough). Leaning even more heavily in a modal direction for new players loses some of the overall atmosphere, plus hiding information can be bad. However, that may not be the case with what gets immediately hidden in Cogmind--the top-side windows aren’t essential for new players, and necessary messages are still shown and accessible… so maybe hiding windows is okay in order to let everyone see even more of the map at once? The message log being permanently visible doesn’t seem to imply that everyone will read it anyway--plenty of people miss important messages :P

The modal inventory has the largest impact on gameplay, and it doesn’t even take effect until part way through the game, at which point there is supporting QoL, and applies to both 45-row layouts anyway, so that doesn’t work in favor of either.

Results on a default: Inconclusive xD

This is the end of our multi-part series about building Cogmind’s fully upscaled semi-modal interface layout:

Posted in Dev Series: Full UI Upscaling | Tagged , , , | Leave a comment