Cogmind - Kyzrati
Beta 7 is around the corner! We're heading into the final phases of development for this cycle, and with all the major features done, as usual I spent a good hour organizing and prioritizing a list of what else I'd like to pack in. Looks like it'll be ready for you within two weeks.

Probably the coolest feature to show for the week is map exporting. With a single command you'll be able to output a full-sized PNG of the current map as you've explored it.



Images are placed in a new /screenshots-maps/ directory and named with the map's name, depth, and the number of turns spent on that particular map when the export was made. This process may take a few seconds because it needs to sequentially render numerous frames across the entire map, compiling them together into a single huge PNG.

Being a collage of screenshots, image exports use whatever font and size you've currently set. The example above shows an export using size 20 tiles, and here's the same map instead using size 12 ASCII:



This was originally a debug-only feature I added years ago specifically for creating images for game media (desktop wallpapers, image backgrounds, etc), though now everyone will have access to it and I'm sure it'll come in handy.

I'm interested to see what people do with it, and I imagine it'll be useful for things like certain types of guides, creative endeavors, and strategy research.

FIXed

The top priority for late-cycle dev is to clear out Beta 6 bugs, and this time around we have more than usual since it's been a while since the last release--more obscure things to report! :P

I noticed on a recent playthrough that Waste and Garrison markers couldn't both appear on the same floor on the world map, and also that it was no longer showing the Garrison marker if currently inside one. Fixed that:



Also I finally addressed the fact that two labels for the same exit can appear when it's right off the edge of the map. I've known about this for years but that section of code is really complicated and doing anything about it was problematic (not to mention that behavior did have its advantages sometimes) so I mainly ignored it, but recently got two reports about this... May as well do something about it to save everyone some time. Here's a before and after comparison:



Although most of this week was spent resolving bugs, before release I'll also be spending some time slipping in smaller new features and QoL stuff.

I got a request from someone with vision issues to make it possible to play without automatically scrolling the map as you move, so that's a new advanced option. Here's a comparison of that and normal behavior:



This mode would basically require manual scrolling, or using the recenter command manually.

Like map exports this was something I could already do on my side, originally added specifically for convenience when recording certain types of demo GIFs.

Quick Analysis

If you're looking to up your speedrunning game, zxc has put together a new spreadsheet analyzing the top runs among those participating in the weekly races.



You can find that and more speedrunning resources in the new repository thread on the forums.

All Penguins on Deck

In case you haven't heard, Valve has launched a new opt-in beta program that allows Linux players to install and play Windows games via a built-in version of Wine.

Cogmind in particular has undergone extensive playtesting under Wine (including fixes for all known issues) and the experience is on par with the Windows version, so if there are any issues it'll be on Valve's side, but even though it just launched it already seems to be working more or less okay.

For now Valve is manually whitelisting games and only has a few, but you can get around that restriction by changing this setting:
Steam -> Settings -> Steam Play -> Enable Steam Play for all titles

For reference there's a huge community-organized chart of games and their compatibility under the new system, where players can contribute their experiences with different games.

Anecdotally it would seem that so far Cogmind works normally with Valve's version, except there have been two cases where users with PulseAudio didn't have any sound (restarting seems like a way to get that problem to correct itself). In any case, if there are any other issues Valve will probably fix them down the line, and Cogmind's system requirements are quite simple so in general once they come out of beta Cogmind will be as smooth for everyone as it is using external Wine solutions. Valve's new thing seems to already work fine for most players though, so that's nice :)

A note about SITREPs: These are regular progress updates where I share features coming to the next release, but aren't actually in game yet. Public releases get their own dedicated news announcement and changelogs/release notes, for example Beta 6 here.

There may be other relevant discussion of this SITREP on the GSG forums or r/Cogmind.
Cogmind - Kyzrati
All 65 robot hacks are done :D

I've put together a giant post over on the blog covering every single one of the hacks, including lots of demos.



Many of the demos I've shared in previous SITREPs as they were developed, though there are a few new ones, too, that and you can check out a bunch of graphs breaking down hacks by various categories, as well as see the design spreadsheets used to assign costs.

Whew, that was a big system, and of course it's not even out yet and there's already a forum thread about how to expand it xD

Simulcasting 0b10

Speedrun races continue, having now gone through two weekends of the new format with simulcasting hosted by b_sen. Week 1 is up on YouTube. Week 2 hasn't been exported yet, but you can find it on Twitch here. In it Valguris breaks the Cogmind world record, long held by zxc, with a win in only 635 turns.

I don't have a chance to spectate these because time zones, but b_sen commented that Valguris' win during the race was doubly impressive, because "he was using consistent speedrun strategies instead of 'throw many many runs at the RNG's mercy' strategies." I heard he was using some interesting indirect hacking techniques to find exits, and Malthusis pointed out that he was throttling flight units for max speed, running fairly hot.

These runs are generally organized over weekends on the Discord if you're interested, and there are more participants than just those streaming so everyone's free to just join in on the side and share results.

Backseat Cogminding

Armchair Robotics threads continue to provide an outlet for topical strategy advice. We've got two so far:
Even if you don't have anything to add yourself, stop by if you have any relevant questions since lots of the best players participate in these discussions and are happy to provide input. That and just from browsing the posts you'll probably learn some helpful new tactics to improve your game :)

10k March

Development recently passed the 9,500-hour mark, and is set to hit 10k by the end of the year!



The monthly hours graph is decent, if not nearly as stable or high as before my concussion last year (arrow).



This has been slowing down Beta 7 a bit, but at least I'm staying ahead of the head issues which is good for the long term!

On that note, with robot hacking complete there's just the usual fixes and little features to do before preparing to release it into the wild. I have a massive list of other things I wanted to do with Beta 7, but as usual aside from fixes (which always get top priority) I'll just have to pick and choose some of the other items and push everything else into future releases. And this, ladies and gentlemen, is how you build a literally endless TODO list, one that gets longer rather than shorter as you work on a game xD

Still can't give a date for it, but I'll probably have a pretty clear idea come one week from now, and prerelease testing will likely start within two weeks.

Creative Endeavors

I'm not the only one making stuff around here.

Azimet the Banished has shared an electronic composition, a tribute to Arc Projectors. Azimet says:
Arc projectors are weapons that deserve some more attention. I really love the idea of heavy disruption, which can lead to new allies. Because of this, I made them sing a song.

And Zyalin created a fun mashup of hand-drawn art and ASCII item art from the game:



A note about SITREPs: These are regular progress updates where I share features coming to the next release, but aren't actually in game yet. Public releases get their own dedicated news announcement and changelogs/release notes, for example Beta 6 here.

There may be other relevant discussion of this SITREP on the GSG forums or r/Cogmind.
Cogmind - Kyzrati


And that's what happens when you combine the new overload_power hack with squads lured through some explosive machinery :D

Their power source won't go critical immediately, but it happens pretty quickly and as you can see there's a visible timer to help you plan your next few turns before the fireworks begin.

The explosive potential matches that of EM-caused chain reactions, thus it's greater for more powerful power sources. In the same way it also just destroys their power supply, which technically may not destroy the bot entirely, so it doesn't need to be a hugely expensive hack like outright destruction or assimilation. This makes it both a fun, useful and fairly frequently usable hack.

Aside from overload_power, this week's robot hacking progress can't compare with last week in terms of flashiness, but I did get close to the end of the list. So far 59 hacks have been implemented, with just a few more to go. After that there's still more related work to do in terms of lore, balancing datajacks, and more, but the entire robot hacking system will be completed next week. (No this doesn't mean Beta 7 will be ready next week xD)

Mind Probe

One of the bigger new hacks completed just yesterday is parse_system, the replacement for the old PARSE option.

Through Beta 6, parsing a robot is a regular old hack with a percent chance to succeed. Though easy to pull off, it's still not guaranteed.

The new parse_system for Beta 7 is not only guaranteed (as are all robot hacks), it's also practically free--no RIF, no couplers. (See the overview of the robot hacking system if you're not sure what that means.) Just like the manual hack 'z' entry, 'a' will always be parse_system for any bot you can jack, appearing as the first listed option. Here's a series of demonstrations parsing various common targets:



In the past it's also never been very useful--I added it mainly for fun. But now it also serves some purposes!

First of all you can see there that parse_system gives more info than it used to, including details about the AI and whatnot.

The most tangible advantage, however, is the fact that it both lists all parts attached to the bot, identifies them all even if unknown or prototypes, and even adds them to your gallery if not already there! This will be a new non-evil method to get records for some of those cool parts your friends and/or NPCs are using without, you know, murdering them :P

By extension, as part of this update, jacking a friendly will no longer be considered a hostile action.

Faster than Light

A couple weeks ago for SITREP #31 I mentioned the birth of a speedrunning community among Cogmind's players, with semi-regular contests. Those have continued, and are getting bigger and better...

This weekend we'll have simulcast races on Twitch with commentary by b_sen, along with anyone else who wants to hang out in stream, or participate in the races themselves! Full info in the announcement here (also on r/Cogmind).

Sadly I won't be there because over here in Asia it'll be 2 AM or so, although I sometimes participate in races at other times. But there'll be experienced Cogminds around if you want to learn the art of speedrunning, or perhaps about other mechanics you can put to use in your regular runs!

The simulcast even includes its own layout and everything :D (the following image is a WIP mockup, layout work by b_sen)



The latest scoreboard:



Armchair Robotics

The community has started weekly topical strategy discussion threads!

Ever since a couple years ago the core community moved from the forums to Discord, we've been having a ton of insightful strategy discussion there, but it gets interspersed with and buried under lots of other conversation, so it's not easily accessible to the majority of players. This new format will be a lot more accessible, have long-term reference value, and also provide ongoing content for the still-under-construction Cogmind Community Guide.

The first topic was just announced today: "Propulsion Type." See the full prompt and discussion in the following locations:
Visit your community of choice to contribute!

Celebrating Roguelikes

The annual Roguelike Celebration is coming up! If you can make it to San Francisco in early October, get your tickets now for a discount (the price is just to cover the costs of running the event).



This is the third one. I missed the second due to that annoying concussion-that-still-won't-go-away, but was at the first the year before. It was so much fun, I wrote about it here. Got to meet a bunch of great people I only knew (or knew of) online, and then it was only a one-day event--this time we get two!

I even gave a talk about how I became a developer and how Cogmind came to be:
https://www.youtube.com/watch?v=9yJflbg0V38

Oh yeah, I guess I've only implied it so far, but yeah I'm going again :D. (You might notice me on the speakers list there, I'm going to be doing a non-Cogmind-centric talk this time around.)

The next SITREP will likely be in two weeks instead of one. Development will continue as normal, but I'll mostly likely be working on a lot of non-showy internal stuff in the short term so there won't be as much to talk about.

A note about SITREPs: These are regular progress updates where I share features coming to the next release, but aren't actually in game yet. Public releases get their own dedicated news announcement and changelogs/release notes, for example Beta 6 here.

There may be other relevant discussion of this SITREP on the GSG forums or r/Cogmind.
Cogmind - Kyzrati
Last week and in other recent SITREPs we've seen map_earth, map_walls, locate_traps, find_shortcuts, and more, but as far as information warfare hacking is concerned, these are small-time benefits compared to the potential of this week's selection!

Info for War (or not)

If you've got your RIF, datajack, and [NC] relay coupler handy, Watchers can be a gold mine of info when you map_route them. Rejoice as you steal all the scan data from their entire patrol route, including terrain layout, machines, items, and exits.



That's my favorite animation from the batch--I spent a while polishing it (okay, spent a while getting it to work xD). It'll trace the route starting from its nearest node to both ends, as you can see here going in two directions (followed by calling up labels for discovered items):



Here's another sample in Storage, where the route happens to come around in a loop:



And the same sample in tiles mode:



It's not often you'll find a Watcher inside a Garrison, but if you do it's an easy way to see a lot of corridor networks and other potentially hidden areas behind the walls.



I can imagine map_route will be one of the most commonly used robot hacks, although it's rather expensive. May your hacked Watchers have decently long patrol routes and not just a short little jaunt through a few rooms ;)

Foresight 20/20

This next hack is even more of a wildcard, because while it can be quite valuable it's not easy to find the right target and much of its information is time-sensitive: show_paths.



What that does is show the current paths of all patrol squad leaders across the entire map, but you have to specifically hack a patrol leader in order to get this info. Sometimes figuring out which is the leader is easy because they'll be a better variant, but other times you'll have to spot which one seems to be followed by the others (easier to figure out with sensors). At the same time, not all squads out there are patrol squads...

Normally the paths will glow intermittently, but when panning the map they stay visible (presumably you'll want to be able to more conveniently follow them).

Here's a sample from a different scenario in tiles mode:



Although the path data will become meaningless after a while since the patrol leaders select new routes when the current one is finished, on the good side any known paths are also permanently revealed as valid open spaces, including even pointing out hidden doors along the routes, so that can have some value in the long run.

I noticed it's kinda fun watching the ASCII<->tiles swap animation after a map_paths hack, as it traces the revealed spaces.



While working on all this stuff I also discovered A* lightning :P



Here's a path animation outtake, a little bug caused by me relying a bit too much on copy-pasted code: The paths should render directly to the console every frame, but instead I'd copied code from another blocking animation that creates stationary particles that fade with time:



Clairvoyance

What's better than one set of visual sensors? Two sets! See exactly what's up ahead, around the corner, or in that next room with a little help from link_fov.



You can merge their field of vision with your own, as if they were a drone. In some ways this is inferior to a drone because you can't control them, but better because they won't be attacked by 0b10 forces, and willing participants can be found all over the place :)

Why stop at two sets?



The blue circles appear for convenience so you know when the connection will be lost due to range--the link can only be maintained from up to 20 spaces away.

When you combine all these new indicators, robot hackers can have some pretty sweet map UI going :D



Context is Everything

All robot hacks also come with context help right in the UI via right-click or shift-letter.



This explains exactly what the hack does, which unlike machine hacking is pretty important to know immediately because robot hacking often has real consequences while facing off against enemies (I talked about this same principle before when covering robot hacking's switch from a percentage system to a finite counter system). Obviously it's also good for learning the mechanics, and having easy direct access to what hacks do so that infrequent players don't have to remember their effects.

The question is, should this same system be applied to machine hacking? From a general QoL perspective, probably--in addition to the above reasoning, it's one of the few systems in the game which doesn't already have in game help.

But there are a few drawbacks as well... Machines are encountered very early in the game, and I don't want to overwhelm newer players with stuff they don't really need to know, and infrequent players won't really be able to get much out of hacking anyway. Having context help at machines both removes a bit of the intrigue and exploration aspect of the experience while simultaneously giving players access to all kinds of detailed information that won't mean much when starting out. The details of machine hacking are not so useful compared to robot hacks. Machine hacking effects are also much easier to guess from their names, and the hacks don't generally take place under duress, so a bit of trial and error is fine there.

I'm open to input here if you all have any perspectives to add.

Here's a bonus hack: ignore_targets, Method #6 (or so?) for dealing with Crushers.



There may be other relevant discussion of this SITREP on the GSG forums or r/Cogmind.
Cogmind - Kyzrati
Another week, another batch of robot hacks for Beta 7 :)



Pretty much every bot has at least some function relevant to their job, as you can see above with the map_earth hack. Same thing below in tiles mode.



As one might expect, there are quite a few hacks that target Operators, given their access to so many systems...



Almost any combat bot can be hacked to find emergency access doors over a pretty wide range.



In general I haven't been working on combat bot hacks yet--I'm mainly going straight down my internal list, on which non-combat hacks come first, but based on some code I was working on it was more efficient to jump ahead and do a few search-based hacks like this one at the same time.

Back to non-combat hacks, how about forcing Haulers to both drop their inventory and safely identify all the contents for you?



And normally a Mechanic's special inventory of backup parts can't be accessed/retrieved, but there's also a hack to decompress those if you really want to :P



Lastly, a fun still shot from a very WIP animation that's a bit more involved.



More on that one next week.

A lot of these robot hacks also tie into AI behavior in some way, so I've been messing around in that bit of the code and making occasional related updates.

For example you may have noticed that a group of Engineers repairing lots of walls in close proximity might end up getting stuck, and the cluster of Engineers can grow larger and larger as there are incomplete projects in the queue but they're all waiting for each other to get out of the way. I left it that way since it's not too common, not all that important, and kinda funny when it happens (stupid Unaware!), but an easy fix popped into my head with the new behavior update that probably won't happen anymore.

Here you can see a group of very eager Engineers, unperturbed even by an eventual Scatter Rocket Array :P



Green for Cogmind

I didn't get quite as far along with robot hacks I would've liked this week, because an entire day's worth of work was spent switching the website over to HTTPS. For a basic website there are pretty simple ways of going about this, but my site includes a separate blog, wiki, and forums, all with content dating back years, so altogether it was a time-consuming operation.

There weren't any major hitches, it just took a while to go through all the different settings and required file updates to avoid "mixed content" warnings from browsers (where you are set up for HTTPS but still have bits of content that aren't secure).

In the end we're green across the board :D



The main mistake was forgetting that the game itself targets an HTTP address to upload scores, but that address no longer existed after the update, so until our Discord community pointed this out and I fixed it we lost a few leaderboard uploads--sorry about that xD

The r/Cogmind responses to the news this week were pretty amusing :)
Amphouse: Wow, I had no idea the "hacking update" would be this thorough. :P

Outrunning Projectiles FTW

The past few weeks there's been a new community activity among the active Discord players: Malthusis is hosting seeded speedruns (by turn count), with most everyone also playing at the same time and reporting their rate of progress to the surface. These have been a pretty fun challenge, and force you to approach the game quite differently.

The speedrunning match records so far, recording the number of turns for each player to reach their final depth (or win):



As you can see it takes around 2,000 turns to win, or closer to 1,000 if you really know what you're doing (and/or also get really lucky :P). This is more or less in line with the relevant achievements, Speedrunner and Expert Speedrunner at 2k and 1k, respectively.

I've only joined in twice so far, the first time practically oblivious to proper speedrunning strategy (as a combat player, to me wheels are "fast," haha) so I got trashed. But at least reached the surface on my second attempt. I did a full writeup with images on the forums. The matches will continue off and on in the future (there are more planned for this weekend), so stop by the Discord if you're interested.

In other community news, I've decided to stop weekly seeds for now. There's more about this in the forums announcement, though since it is relevant to game design, I'll copy some of the discussion here:

It's worth noting that Weekly Seeds are fun in a lot of roguelikes but I don't think the straight up "everyone play the same seed and do whatever you want" approach works very well for Cogmind.

Where in other seeded roguelike runs players will generally be up against a lot of the same opponents on the same small maps with the same set of tools at their disposal, Cogmind maps are huge, not to mention all the different routes one can take through the world, and access to completely different strategies, so instead of players being forced to compete on a fairly level playing field, what you come up against can vary greatly depending on a lot of factors. (And that's even before we start adding in the effects of a rising alert level!)

In that light, we can why weekly seeds won't have all that much appeal, and how Cogmind is more suited to special/focused challenges with greater restrictions. We'll have to keep that in mind when thinking about how to approach any future activities :)

Wallhacks

ChromaticGray has put together a cool Cogmind wallpaper for Wallpaper Engine:



As shared on r/Cogmind:
I made it for a ultrawide 2560x1080 monitor, but it should work fine on 1080 also.

Background map moves in parallax with the mouse, the Cogmind flickers and the weapons lights up in color on mouse over (that's why you only see top right colored).

Pretty awesome! Wallpaper Engine users can get it here.

I'd really like to put together some more wallpapers myself, but despite all the ideas and potential resources to draw from, I just don't have the time right now. So many other higher priorities and it's just little old me doing everything xD. The current wallpaper set on the website is the same I introduced over three years ago with the first public alpha!

There may be other relevant discussion of this SITREP on the GSG forums.
Cogmind - Kyzrati
New mechanic, new items!



Last time we got a bit of a kinetic buff with the introduction of knockback, but this is a decidedly more significant boost for KI combat builds. Kinecellerators are especially effective when combined with multikinetic volleys, although they could also be useful combined with certain cannons.

As with other weapon modification utilities, while active their effects are reflected in the info mode summary.



And of course there are better ones, too ;)

Hack the UI

But most of the week was spent on the robot hacking system, which is coming along nicely. As a further improvement on the earlier hacking interface samples I've been sharing, the header for any Relay Coupler hacks now highlights the remaining value to make that clearer.



I had noticed the potential issue while creating the original mockup, but didn't see any immediate fixes so decided to leave it like that for the time being. And of course as soon as I started sharing gifs there was already a comment about that value not being clear enough, so... yeah, I put some more time into finding a decent solution :)

Automatic removal of newly-depleted Relay Couplers also comes with its own animation in the parts list.



Hack the Bots

As for the hacks themselves, I was finally able to start implementing them this week, and have finished about one-third of the total. Here are a few samples of what's to come in Beta 7...

"generate_anomaly" attracts all nearby hostiles, in case you need some company (or have other nefarious purposes)



Like other enemy alert situations, in the easier difficulty modes this also highlights the position of any notified bots.



"generate_echo" is basically an instant one-off long range sensor.



Map walls? map_walls!



Overall, I'd say robot hacking allows for some fun stuff :P



If you've missed some previous SITREPs, or are looking for a one-stop overview of the new hacking system, check out the latest blog post.



As a reminder to anyone playing Beta 6, the next weeks will be your last chance to play with the current robot hacking system before it's completely replaced by the new one. So consider doing a run where you build up a massive amount of hackware, reboot everything that's a threat, and eventually in the late-game start assimilating many of the more powerful bots to serve you :D (the new system will still include assimilation, but you won't be able to amass an army of extremely powerful bots like you can now)

Aside: Don't worry about robot hacking achievements, though--I imagine we'll eventually be getting more of those related to the new system, and the old ones will either carry over or be replaced with more relevant options. There are only a few anyway.

There may be other relevant discussion of this SITREP on the GSG forums.
Cogmind - Kyzrati
Say hello to kinetic knockback!



As you can see, like knockbacks from impact weapons this can smash them right into machines, though this way you're less likely to be in the blast radius :P

This was originally envisioned as a cannons-only mechanic, but for now I have it applied to all kinetic projectiles and it'll probably stay that way through at least the prerelease testing phase to play with the interesting tactical effects of allowing even enemies with just guns to push you around. (To testers: Good luck defending bottlenecks against Swarmers!) It'll almost certainly be scaled back to its original scope for the official Beta 7 release, though.

A cannons-only approach will mean it mainly applies to Cogmind rather than everyone, unless of course you're hunting certain Behemoths ;)

Stay away from me, melee bots!



Knockback won't be of help against Brawlers, seeing as treads are immune to knockback, but Flak Cannons could be pretty useful for keeping non-treaded bots at bay since the effect is applied on a per-projectile basis.

As part of this update, knockbacks from both kinetic and impact damage will be capable of causing robots to hit another robot behind them, damaging and displacing the second robot.

Manual Upgrade

Manual hacking of robots is already a thing, but it's a pretty simple system that's always been used purely as a way to enter random codes you might collect as a result of certain encounters. There's not much of a need to type out any commands to begin with, considering there's a complete context menu that appears to recall all the codes, as seen here using the old hack list:



But with the number of hacks increasing significantly in Beta 7, some keyboard players might be more likely to prefer entering hacks by typing them out rather than finding them in the menu. Of course no one's going to bother if you have to type out an entire command, so like manual machine hacking we'll need to facilitate the process! For this I added both autocompletion and a command buffer. Demo (the parse_system effect at the end is just a placeholder for things to come):



It kinda sucked to have to switch the whole manual robot hacking system over from its original simple architecture (which already worked nicely) to one that could support these new features, and many hacks were involved, but hey everything once again works as expected so I won't complain! Blooper:



In adding that command buffer, technically the third, I passed by the debug buffer which showed all the commands I'd recently used while testing out the robot hacking features (specifically making sure all the proper hacks appeared while hacking different types of robots). It was kinda interesting to skim that :)



While at it I also added an advanced option to alter the default cost-wise method of sorting Coupler-based hacks:



With all this peripheral work done, next week it's finally time to, oh I dunno, actually implement some hacks xD

Be The Hacker (Part 3)

Part 1 gave an intro to the robot hacking system, Part 2 covered more of its principles and basic functionality, so now we're here with the third part to take a closer look at one of the essential requirements for a serious bot-hacker: Relay Couplers.

Most hacks require a target-appropriate Coupler to pull off, and as you've seen in previous screenshots all these hacks appear in their own box with a "Coupler" header.



The numbers off to the right aren't the percentages you might expect given the other/previous systems, but are instead static costs for executing each hack. That cost is directly deducted from the Relay Coupler value seen at the top and the hack takes effect, period. So Couplers are expendable, and each has its own "remaining value" before it is depleted. You can carry or attach as many Couplers as you want, and if you have more than one applicable Coupler for the current target robot their values are combined into a new total.

As you can see, the new system is easier to balance by forcing a trade of valuable slot/inventory space for guaranteed hacking effects, whether you want them to play a non-combat role, a supporting role, or a fully confrontational "I own you all" role.



As mentioned before, hack costs are static--there is currently no way to influence the cost via utility or other means, and allowing for the modification of costs would make it easy for robot hacking to creep into OP territory again. Better to have only one variable at play, the Coupler value, which can in some cases be higher than normal so that there's room to get more out of a single Coupler!

I've generally avoided consumables in Cogmind's design, at least in the traditional sense, but Couplers don't really fit that sense anyway since they have multiple uses and are also quite flexible in what they can be used to accomplish.

Coupler value is a factor of two elements: its source, and the type of robot it applies to. An individual [Behemoth] Coupler won't let you do much, though you could combine more than one to do just about anything! A lone [Grunt] Coupler, on the other hand, will last for a lot more hacks, depending on what you want do accomplish. There are five ways to acquire Relay Couplers, two of which I'll leave for your to discover, but here are some of the main ones:



Straight to the source! Like previous and current versions of Cogmind in which Garrison Relays play a role in robot hacking (albeit through a different mechanism), so do they under the new system. Venture into a Garrison itself and blow up relays to collect the most valuable Couplers inside.



Destroying Garrison Access locations will net you some Couplers as well. They're partially used and thus not as valuable, but at least they're fairly easy to acquire!

If lucky you can also find special caches in a Garrison containing lots of high-value Couplers, but don't count on it :P

That wraps up the series on the new robot hacking system for now. I'll do a compilation on the blog at some point, and will of course continue sharing progress reports as the hacks themselves are fleshed out, among other features to come :D

Achievements Forever

If you're interested in how achievements are decided and implemented, and didn't see the series on my blog earlier, you can check out "Designing and Building a Robust, Comprehensive Achievement System" on Gamasutra. I put it there this week and it was pretty well received, even being featured on the front page for a time :D



256 is enough for now, but I'm sure we'll be seeing more later ;)

There may be other relevant discussion of this SITREP on the GSG forums.
Cogmind - Kyzrati
It's no longer just a mockup!



We've gone a step further than the designs and mockups and plans of earlier, and now have a fully operational robot hacking interface. Note that's with an emphasis on interface, because none of these commands actually do anything yet, but certainly the foundation for interacting with them needs to be in place to facilitate their implementation. So with the UI out of the way, here are some more samples...

Unlike their current state, Engineers will be hackable.



Here's an example of hacking a Recycler, also demonstrating what it looks like when some required tools are unavailable.



As you can see, non-combat classes have their own class-specific hacks, the total number of which will even exceed combat hacks, making for a lot of strategic options.

Next I need to actually code all the effects!

Spice of Life

Cogmind's 8x8/Mini font is mostly for my own purposes, and fun (hey you can play in a 480p window!), but lsend used it in combination with his 3440x1440 monitor in portrait mode to screenshot one of the largest maps in the world (kinda spoilery if you look closely, but you'd need to break out the magnifying glass :P).



This week Cogmind also got a spot in a Strategy Gamer article listing some good games doing Early Access right. You can see them here.

I haven't been streaming lately, but an increasing number of frequent players over on the Discord community have been getting into it and picking up the slack. More recently we have a lot of people newer to streaming, but all of them do winning runs and special challenges:

Be The Hacker (Part 2)

Last time I gave an intro to the new hacking system, so let's pick up where that left off. I was just about to get into the principles underlying the new system. It needs to...
  • Decouple machine and robot hacking. Even just machine hacking alone provides a wide range of extremely effective abilities, so there's no reason to keep both types of hacking under the same umbrella of supporting parts. Thus robot hacking shouldn't be based on standard hackware, we'll need something else.
  • Control the snowball effect seen with early robot hacking. Sufficient stacking of machine hackware makes pretty much any hack a success, and this is fine for players willing to invest that kind of slot use, but applying the same approach to robots makes it far too easy to eliminate any and all danger by accumulating more and more allies, or at least nearly effortlessly taking out enemies. We'll need upper limits on what is possible.
  • Remove much of the RNG. Under the old system, anything but a good robot hacking setup is too unreliable--you have to hit with a Datajack, penetrate to their system, and then there's still the final hack chance to succeed at. RNG works well for machine hacking, but with robots the time element is much more limiting, and the consequences of failures are too dire, especially for bots that are not necessarily set up for combat! Too much RNG in a system like this makes planning much more difficult, thus keeping the RNG would basically work against the combat hacker style itself. Removing the RNG here will be very good for balance.
Overall there are more limiting factors in the new robot hacking system, but by extension that means it can be more effective! More effective is more interesting, as it also increases the range of possibilities. The goal is not to become OP, it's to gain tools for solving a subset of unique situations and challenges.

The hacking process starts similar to how it exists now: Datajacks are still a thing, and you have to both hit the target and penetrate to its system, but after that the processes diverge significantly. Robot hackers will often want to make use of a new type of Hackware dedicated to robot hacking: Relay Couplers. As Hackware these are destroyed on removal in normal fashion, and even have limited uses, but they enable all the best hacks.



Even successfully attaching a Relay Coupler requires an installed RIF, mentioned last time, otherwise...



Couplers come in a variety of types (there are 12) and must match the target's class to gain access to high-level hacks for that target. For example a "Relay Coupler [Grunt]" is used to hack Grunts. The one exception is Relay Coupler [NC], which applies to all non-combat bots, so that one alone will be more widely applicable.

The alternative approach would've been to have Hackware that enables specific hacks, rather than targeting specific bots, taking the system in a completely different direction, but I believe it's far more interesting to be able to do almost any kind of hack to a specific kind of robot than the same hack to any robot.

Note that not all hacks require a Coupler, however, or even an RIF. So Datajacks will still have some robot hacking purpose aside from their other functions. The new Parse behavior will serve that purpose alone, as it's free and always works, usable on almost any robot. (I'll demonstrate that later once it's implemented.) There are also some cost-free hacks that still require an RIF, for use against non-combat bots.

More about Relay Couplers and hacks in Part 3 next week :)

There may be other relevant discussion of this SITREP on the GSG forums.
Cogmind - Kyzrati
This week I let the partially-implemented robot hacking system simmer for a while to instead focus on other developments.

Guessing Game

First up is a rather common feature for classic roguelikes, the ability to tag items with player-specified text as a memory aid. Tagging is usually a part of the item identification process, and due to the nature of Cogmind's items and ID system it's almost never useful, hence the absence of a tagging feature all these years. However there are a handful of special cases towards the end of the game where you may know what a particular unidentified item is (based on where you found it) but not want to immediately attach-ID it.

Here are a couple silly examples of tagging inventory items.



And here's a more realistic use (albeit with a silly tag), also demonstrating how the tag appears in the item info window itself.



I'm sure this feature could also be used for just fun screenshots and jokes, too ;)

Infinite Power

There are already a ton of ways to get data directly from Cogmind, or indirectly through the wiki or about leaderboard player performance, but one of the external pieces of data we don't yet have is robot stats.

I certainly don't want to make players record individual data points from the game to populate the wiki, so for that and other uses I've added a command line option that automatically generates a CSV file containing all the robot data. The item gallery CSV export has already been used to generate the wiki's item pages, but there's been no corresponding feature for robots, until now :)

Here's a sample excerpt of the export, which in its entirety includes 179 lines and over 8,000 data fields o_O



Obviously there are going to be massive spoilers in the complete file, but people who do this will be aware of that fact :P

Again, you don't need any of this to play since object data is available in game, but some players like to have it around as an external reference.

In other data news, we have yet another performance analysis vector, this time from PlasticHeart who's set up a page that shares graphs describing peak state part occurrences among winners, allowing you to more easily see what they were using at their strongest before going on to win.

For example here are the most often equipped utilities--you can see the importance of storage!



The contents will naturally be skewed towards flight in general, because they can pull off wins much more quickly :P (It'd be interesting to compare this data set to another that only takes each player's highest scoring win to see if/what is different.). Flight players may not use so many Lrg. Storage Units, but they'll rank extra high here because combat players often use several at once!

The page is not yet automated, but is based on recent Beta 6 scores.

Note there are somewhat bigger spoilers in other graph categories in terms of item types you might see in the late game!

The Right Tool for the Job

One of my main Cogmind dev tools, which I started releasing freely five years ago, has been updated. You can read details in the REXPaint 1.04 release notes.

People have been making cool art, maps, mockups and all sorts of things with it...



On that note, if you've dreamed of making a roguelike of your own and need some extra motivation/resources/structure, that event I mentioned last week has begun! Check out the first week of the tutorial/code-along series for beginners and experts alike.

Just think, this can happen to you just like it happened to me years ago when I first got into this :P



Be The Hacker (Part 1)

Although I didn't work on hacking this week, it's about time to reveal some more details about how this new system will work, to avoid rampant speculation based on just the tidbits I've been handing out so far :P

First a bit of history.

Back in the pre-Alpha days (2015 and earlier), robot hacking was never fully realized, since ideally it would be designed to fit in with all the other systems but there had really been almost no playtesting since the 7DRL and three quarters of the world had yet to be created, so there wasn't much to go on at the time. Rather than build up something large right away, a better long-term approach would be to just add a smaller functional placeholder that could be tweaked or possibly replaced when necessary as the rest of the game took shape.

So then, as now in Beta 6, there were just a handful of general options running the spectrum from "temporarily disable" to "permanent assimilation." As it was clearly an underdeveloped system tangential to everything else going on, Alpha players almost entirely ignored robot hacking for a long while, exploring other mechanics instead.

Then came late Alpha, and it was discovered that a Cogmind could stack Hackware like there's no tomorrow and literally own anything in the complex, especially later in a run. Here's an example of this type of build, in a screenshot shared by zxc:



A +247% to hacking and the ability to hack robots around corners before they even know you're there? That sounds mighty OP xD (zxc used such a build in early 2017 to achieve the highest ever Cogmind score, a record which still stands to this day)

Certainly it takes skill to set up, but roguelikes should technically get more challenging as a run progresses, not easier, and that's generally how Cogmind works except when it came to strategies abusing this mechanic :P

Flight hackers had their fun with magic wands for a while, then of course I had to nerf it, explaining the diminishing returns of high-level robot hacking over the length of a run as a result of the system adapting its defenses. That said, even the nerf itself was just a temporary band-aid, because clearly much bigger changes were necessary as part of a new system, and that point would be coming in late Beta given that all the other systems were pretty much done.

And that's where we are now, preparing to welcome the last major system. ("last" on the list, but don't worry I have more secrets planned, plus of course there's always this which might happen :D)

I've been collecting and mulling over ideas for how to revamp the robot hacking system for more than a year now. There were quite a few reasonable possibilities to think through, but also a lot of potential pitfalls! Devs are unlikely to get a system absolutely perfect the first time, but as long as it has a solid foundation it can be tweaked and expanded without too much trouble if necessary. So this foundation is extra important. I've never spent this long designing a single system before (17 hours just designing!), and it's gone through lots of iterations and refinements (all on paper) as it starts to look both relatively balanced and interesting.

It's also worth pointing out that I'm very glad I didn't move on this system earlier, or try to have a complete extensive system available from Alpha 1. It would have had a negative, limiting impact on other developments, and much about the current state of Cogmind's world and content has enabled me to make smarter choices about how to best integrate robot hacking into it all, be it the tactics, strategy, or lore. In short, doing this earlier would've meant more wasted effort and less pleasing results.

So what is this new system already?!

Well, last time I showed you that UI animation, and that's where it all begins. With this machine.



Some of you noticed a certain "RIF Installer" in the Scan window of that earlier gif, and this is what it looks like. Every garrison will now contain one of these, and it's your choice whether to use it and deal with the consequences, and of course take advantage of the benefits!

You'll only have to do it once, and the first garrison appears on -8, so that would be your earliest opportunity, though you can do it at any time. You still get all the other benefits of a garrison on top of that, and there will be another advantage particular to robot hackers that we'll get to later.

RIF stands for "Relay Interface Framework," and with that you'll theoretically have access to dozens of ways to manipulate other robots via the Complex-wide garrison relay network. Like a number of other major strategic decisions, however, this comes with a drawback as it will prevent you from forming certain... alliances ;)

Such is the cost of effectively linking up with 0b10 to facilitate access to their systems. And from this point you can probably infer that the new robot hacking system only works on Unaware! This is just the first of several limiting factors--robot hacking will be quite useful, but not a panacea. It'll be what an interesting system should be: very effective when used creatively, but also challenging you to create manageable situations to begin with. Unlike the Alpha approach of "it's an enemy, overload/assimilate it!!!" there will be many unique encounters and different methods of approaching each. As with other strategies, planning ahead will be very beneficial, and to me that also really fits the theme of a robot hacker, whether a stealth hacker or combat hacker or anything in between.

Planning ahead will also be facilitated by the fact that the new system will be removing much of the RNG from robot hacking :D

But more on that and other details next time--there's still tons more to explain, and this is a good stopping point.

Cogmind is currently 10% off through July 5th, both on Steam and DRM-free from the site. As mentioned before, unless I get some kind of a deal from Valve (unlikely to happen again) there aren't any plans to discount by more than 10% during Early Access, which could go on for quite a while because the list of potential content is basically endless xD

There may be other relevant discussion of this SITREP on the GSG forums.
Cogmind - Kyzrati
The IDE's wait is over! I'm now back to real coding again. With the new robot hacking system fully designed, this week it was time to actually start building it all.

Last time I shared an initial mockup of the UI layout, which has since changed significantly. It's getting closer to what it'll probably look like, and I noticed it was kinda fun to see how the idea was changing as I played with it, so here it is as a time lapse:



That's still just a mockup--more changes are likely before I piece that bit together. (Also note that as a mockup, the contents themselves will not fully make sense and aren't quite realistic, so don't try to read too much into it :P)

I haven't needed the UI yet since none of the hacks themselves have been implemented, but the system's foundation is getting pretty solid. First up was adding the new mechanics for getting access to robot hacks in the first place. I'll be covering the system and its design in more detail later on, but know that you'll not have access to most hacks unless you do... this first:



You'll also need to collect this new type of hackware!



Still a long way to go before this collection of features is done, but it'll be worth it.

Seeing as I'm retiring the old robot hacking system, may as well share a shot of its spreadsheet calculations that I used to aid in its design some years ago:



This is common in design, to have spreadsheets where you can enter hypothetical values and see how they affect outcomes. I'm by no means a math whiz, but predictions like this make the testing and balance effort go so much more smoothly. Without something like this, grounding the design in too many guesses would be a recipe for wasted dev time!

The new spreadsheet I've already put together has a larger and more complex data set :P. It helped me set all the base values earlier this week--now I "just" have to code all those hacks...

PARSE

Many of you are probably aware that the current robot hacking scheme includes a relatively easy command, PARSE, one that I was initially planning to remove under the new system.



I've decided to keep it, while adjusting and improving it at the same time to make it more useful.

It'll still basically open up an extra page of info about the target, and you'll still do it via Datajack, but it'll be both freely available and you'll be able to do it to almost any bot. So my question to you is whether or not there's anything in particular you might want out of this new PARSE data?

I already have a new mockup complete with some fresh ideas of my own that have convinced me it'll be worth keeping, but thought I'd bring it up to see if there's any other input before I work on that.

Markov

There has been some recent talk of putting Cogmind's lore into a markov chain generator to see what kinds of things could result, and although interested I didn't have any time to play with it myself. Then a couple days ago Raine did just that and shared some results with us. Pretty funny stuff...

It's fun guessing where each piece of this new "lore" originated.



That's some nice tech...



And this sounds like a different game entirely xD



Unfortunately some of the others, including some good ones, can't be shared without clearly spoiling parts of the game :P

Now You Make a Roguelike

Last year on r/RoguelikeDev we held our first annual "Tutorial Tuesday" event, a couple months of weekly assignments for building your own roguelike, along with a primary tutorial to guide complete beginners and also help provide structure for other devs using their own libraries and languages. There were lots of participants and it was a great success.

We're doing it again for 2018!



It starts next week, so if you want to try your hand at roguelike development and need that extra push to help you get started and build momentum, consider joining! It'll take just a day or less of your time each week, and by the end you'll have your own roguelike you can build on :D

Lots of other people will be doing the same steps during the same weeks, so there'll be other devs who can possibly help answer your questions if you have any, and obviously there's the motivation of working on a project alongside a bunch of other people. You can get help on the sub in the upcoming weekly threads, or more immediately via our Roguelikes Discord in the dev channels.

The schedule and more info can be found in the announcement.

If you don't have a preferred language or library, it'd be a good idea to get a head start on the first week by checking out the python tutorials linked last year. We'll be following a different libtcod tutorial this year, but you'll want to know some of the language first.

Note that libtcod is the library I first used when I began creating roguelikes years ago, and it makes things very easy for you, taking care of all the heavy lifting so you can focus on adding all your cool roguelike ideas :D

There may be other relevant discussion of this SITREP on the GSG forums.
...