More achievement icons! We've got the final pass on two new categories here.
Special Challenges are probably not quite as obvious...
...whereas Progress-related achievements are more basic and numbery.
I've been talking about achievement "categories" for a while, but haven't gone into detail about what that actually means. Each achievement belongs to a certain category that gives a general idea of what type of achievement it is, determines the color scheme of its icon, and also enables it to be filtered along with others of its category via the in-game UI. There are so many achievements that after I'd formed a tentative list it seemed best to divide them up logically to aid both organization and understanding.
The six achievement categories:
Mechanics: A group of mostly basic achievements covering common useful tactics and learning about systems. Some of these serve as a way to teach (or at leas reinforce) features, too.
Style: Specifically play style-related achievements, like combat, stealth, hacking, etc. These are generally earned through normal play using a given style/strategy, and while some might be more challenging or require focus in a certain area, they're not difficult enough to be considered "special challenges " (another category).
Progress: Personal meta progress like high scores, lore/gallery coverage, and world exploration.
Challenges: This group doesn't have anything to do with Cogmind's "Challenge Modes," but is simply achievement-specific individual challenges ranging from Tier 1 (not too hard) to Tier 2 (hard) to Tier 3 (pretty hard!).
Events: Story-related elements. Basically once you've visited every location and exhausted all the branching possibilities of the plot, you'll have all of these. This category is entirely hidden, though, so these aren't achievements to be explicitly sought like a list. You've just gotta explore and use the in-game lore as clues.
Wins: There are a lot of different ways to win the game, whether achieving unique endings or simply winning by overcoming other challenging scenarios, so these get a whole category of their own.
Death and Taxes
So we've come upon another little speedbump on the way to Beta 6: tax season xD
Taxes have gotten more complicated this year--I have to file in two different countries now, so this'll be annoying. I could try to push Beta 6 out before the second country's deadline, but I'd rather not because the release shouldn't be about just achievements, so it's going to take longer than that!
Just a heads up that there's still lots to do on the list.
P7
I heard from someone this week mentioning that POLYBOT-7 "really helped them understand Cogmind better," so maybe it's worth checking out for that reason, in addition to the fact that it's just an interesting different way to play a modular robot :)
Since then I've also been working on a proper in-depth postmortem about its development, which you may be interested in checking out seeing as POLYBOT-7 is a very experimental alternative approach to the concept of Cogmind. The first two parts are already on the blog:
There are tons of details and diagrams/images in there--here are some excerpts:
The source code evolution of all my projects since 2011, which share the same code :P
Redesigning Cogmind's UI layout to meet new needs:
Alternative item color schemes:
In related news, one of our Cogmind experts (surprise surprise it was GJ) won P7 on New Game+++++ mode, which requires winning six times in a row, each run harder than the last.
Next time more on achievements, and an introduction to improvements to low-contrast mode.
More achievement icons! We've got the final pass on two new categories here.
Special Challenges are probably not quite as obvious...
...whereas Progress-related achievements are more basic and numbery.
I've been talking about achievement "categories" for a while, but haven't gone into detail about what that actually means. Each achievement belongs to a certain category that gives a general idea of what type of achievement it is, determines the color scheme of its icon, and also enables it to be filtered along with others of its category via the in-game UI. There are so many achievements that after I'd formed a tentative list it seemed best to divide them up logically to aid both organization and understanding.
The six achievement categories:
Mechanics: A group of mostly basic achievements covering common useful tactics and learning about systems. Some of these serve as a way to teach (or at leas reinforce) features, too.
Style: Specifically play style-related achievements, like combat, stealth, hacking, etc. These are generally earned through normal play using a given style/strategy, and while some might be more challenging or require focus in a certain area, they're not difficult enough to be considered "special challenges " (another category).
Progress: Personal meta progress like high scores, lore/gallery coverage, and world exploration.
Challenges: This group doesn't have anything to do with Cogmind's "Challenge Modes," but is simply achievement-specific individual challenges ranging from Tier 1 (not too hard) to Tier 2 (hard) to Tier 3 (pretty hard!).
Events: Story-related elements. Basically once you've visited every location and exhausted all the branching possibilities of the plot, you'll have all of these. This category is entirely hidden, though, so these aren't achievements to be explicitly sought like a list. You've just gotta explore and use the in-game lore as clues.
Wins: There are a lot of different ways to win the game, whether achieving unique endings or simply winning by overcoming other challenging scenarios, so these get a whole category of their own.
Death and Taxes
So we've come upon another little speedbump on the way to Beta 6: tax season xD
Taxes have gotten more complicated this year--I have to file in two different countries now, so this'll be annoying. I could try to push Beta 6 out before the second country's deadline, but I'd rather not because the release shouldn't be about just achievements, so it's going to take longer than that!
Just a heads up that there's still lots to do on the list.
P7
I heard from someone this week mentioning that POLYBOT-7 "really helped them understand Cogmind better," so maybe it's worth checking out for that reason, in addition to the fact that it's just an interesting different way to play a modular robot :)
Since then I've also been working on a proper in-depth postmortem about its development, which you may be interested in checking out seeing as POLYBOT-7 is a very experimental alternative approach to the concept of Cogmind. The first two parts are already on the blog:
There are tons of details and diagrams/images in there--here are some excerpts:
The source code evolution of all my projects since 2011, which share the same code :P
Redesigning Cogmind's UI layout to meet new needs:
Alternative item color schemes:
In related news, one of our Cogmind experts (surprise surprise it was GJ) won P7 on New Game+++++ mode, which requires winning six times in a row, each run harder than the last.
Next time more on achievements, and an introduction to improvements to low-contrast mode.
There's lots going on, and I even have a new Cogmind-like experience to share with you :D
Style
Here's the second category of achievement icons, somewhat fewer than the previous one.
That's the "style" category, reflecting somewhat more basic achievements that essentially fall under different build strategies.
Also with regard to achievements, I mentioned last time that I wanted to cover the topic of which ones to "hide." It seems not all games even take advantage of the ability to hide achievements, but I think it'll be useful in at least a couple ways. My starting point was to basically say that all achievements are unhidden, but if there's a good reason to hide one then do so. There seem to be two good reasons:
Anything related to the plot. There are a ton of story-related elements to uncover, and all of them will be found naturally and/or discovered by following clues in the game, so there's no reason to spoil any of these here. These achievements basically serve to recognize that you've hit that plot point at least once.
Stuff that would be fun to recognize, but boring to aim for. I've included a handful of achievements which would be either too easy or too tedious if you know about them, but you're bound to get them one way or another naturally over time, so I plan to hide those.
There's certainly the other approach of hide all achievements, then perhaps unhide the ones that really need to be known or else no one is likely to ever find them. (Some of the explicit challenges are pretty tough and you do need to aim for them.)
Someone previously mentioned outright hiding them all, though as shown before the in-game achievement UI will be able to filter out locked achievements, so you can pretty easily avoid those if you're in the camp that wants everything hidden up front.
Of course, which route to take with these is harder for you all to make specific suggestions on unless you know the achievements, but I don't want to release the full list until deciding precisely which ones should and shouldn't be known in advance xD
Personally I like the idea of using unhidden achievements to explicitly get players to try out different styles, among other purposes, which is why I started with the unhidden route.
In any case, I'm always listening if any of you have a different take (or the same take :P).
I'm sure I'll end up writing a long blog post about this later detailing the system and reasoning, but now while it's still being implemented is be the best time to ask for input :)
Community
One of our experienced flight players, Pimski, has started a video guide for flight! Part 1 is here.
Nuzcraft continued his series of short systems tutorials with another on "Energy."
b_sen has been sharing more fan art done in REXPaint, exploring what the world is like before Cogmind, and from 0b10's point of view.
Warning, some name spoilers in text.
The second one there depicts the complex under attack, and you can read more about it here.
POLYBOT-7
For some weeks now I kept reminding you all that I'd be participating in this year's 7DRL challenge, and that finally happened last week. It happened and produced a pretty cool little game :)
In a week I took Cogmind Beta 5, ripped it apart, and rebuilt it into a lighter, faster coffeebreak version. Our Cogmind tile artist Kacper even did a great new tileset for it!
Technically it was built from a post-Beta 5 version, so it includes some of the new upcoming Beta 6 features like multithreaded data loading and RTS panning (although the latter is deactivated by default in the config).
I should point out that POYLBOT-7 is not a Cogmind demo, nor does it even play much like Cogmind! But anyone interested in Cogmind's style (perhaps you all? :P) might enjoy it.
To see what it's all about, check out the full release announcement on the blog, which also includes more screenshots. We already have a channel for it on the Discord if you want to talk with other Cogmind fans who are playing it.
It was a tiring but productive week, and Cogmind itself even benefited from this 7DRL in a number of ways, not least of which because my mangling of the source code to repurpose it uncovered some deeply hidden bugs (even some down at the engine level!). Really it's all just stuff that could theoretically cause trouble at some point but hasn't yet, but hey they were things to fix nonetheless!
POLYBOT-7 also resulted in improvements for some of Cogmind's optional visual effects, but I'll talk more about that bit next time.
On my blog I'll also be sharing a detailed postmortem about the 7DRL week if you're interested in that sort of thing, covering whole process from inception to completion and everything in between.
Ouch
Unfortunately I had to push myself rather hard to get this 7DRL out there, and my doctor is out for three weeks so I can't get the same level of treatment I normally do, so my concussion has become somewhat... bothersome again.
The effects have been with me for almost a year now, and it would be really nice to finally get rid of this thing so I need to be careful not to push it quite too hard in the next few weeks to avoid messing up the long term plan!
There's lots going on, and I even have a new Cogmind-like experience to share with you :D
Style
Here's the second category of achievement icons, somewhat fewer than the previous one.
That's the "style" category, reflecting somewhat more basic achievements that essentially fall under different build strategies.
Also with regard to achievements, I mentioned last time that I wanted to cover the topic of which ones to "hide." It seems not all games even take advantage of the ability to hide achievements, but I think it'll be useful in at least a couple ways. My starting point was to basically say that all achievements are unhidden, but if there's a good reason to hide one then do so. There seem to be two good reasons:
Anything related to the plot. There are a ton of story-related elements to uncover, and all of them will be found naturally and/or discovered by following clues in the game, so there's no reason to spoil any of these here. These achievements basically serve to recognize that you've hit that plot point at least once.
Stuff that would be fun to recognize, but boring to aim for. I've included a handful of achievements which would be either too easy or too tedious if you know about them, but you're bound to get them one way or another naturally over time, so I plan to hide those.
There's certainly the other approach of hide all achievements, then perhaps unhide the ones that really need to be known or else no one is likely to ever find them. (Some of the explicit challenges are pretty tough and you do need to aim for them.)
Someone previously mentioned outright hiding them all, though as shown before the in-game achievement UI will be able to filter out locked achievements, so you can pretty easily avoid those if you're in the camp that wants everything hidden up front.
Of course, which route to take with these is harder for you all to make specific suggestions on unless you know the achievements, but I don't want to release the full list until deciding precisely which ones should and shouldn't be known in advance xD
Personally I like the idea of using unhidden achievements to explicitly get players to try out different styles, among other purposes, which is why I started with the unhidden route.
In any case, I'm always listening if any of you have a different take (or the same take :P).
I'm sure I'll end up writing a long blog post about this later detailing the system and reasoning, but now while it's still being implemented is be the best time to ask for input :)
Community
One of our experienced flight players, Pimski, has started a video guide for flight! Part 1 is here.
Nuzcraft continued his series of short systems tutorials with another on "Energy."
b_sen has been sharing more fan art done in REXPaint, exploring what the world is like before Cogmind, and from 0b10's point of view.
Warning, some name spoilers in text.
The second one there depicts the complex under attack, and you can read more about it here.
POLYBOT-7
For some weeks now I kept reminding you all that I'd be participating in this year's 7DRL challenge, and that finally happened last week. It happened and produced a pretty cool little game :)
In a week I took Cogmind Beta 5, ripped it apart, and rebuilt it into a lighter, faster coffeebreak version. Our Cogmind tile artist Kacper even did a great new tileset for it!
Technically it was built from a post-Beta 5 version, so it includes some of the new upcoming Beta 6 features like multithreaded data loading and RTS panning (although the latter is deactivated by default in the config).
I should point out that POYLBOT-7 is not a Cogmind demo, nor does it even play much like Cogmind! But anyone interested in Cogmind's style (perhaps you all? :P) might enjoy it.
To see what it's all about, check out the full release announcement on the blog, which also includes more screenshots. We already have a channel for it on the Discord if you want to talk with other Cogmind fans who are playing it.
It was a tiring but productive week, and Cogmind itself even benefited from this 7DRL in a number of ways, not least of which because my mangling of the source code to repurpose it uncovered some deeply hidden bugs (even some down at the engine level!). Really it's all just stuff that could theoretically cause trouble at some point but hasn't yet, but hey they were things to fix nonetheless!
POLYBOT-7 also resulted in improvements for some of Cogmind's optional visual effects, but I'll talk more about that bit next time.
On my blog I'll also be sharing a detailed postmortem about the 7DRL week if you're interested in that sort of thing, covering whole process from inception to completion and everything in between.
Ouch
Unfortunately I had to push myself rather hard to get this 7DRL out there, and my doctor is out for three weeks so I can't get the same level of treatment I normally do, so my concussion has become somewhat... bothersome again.
The effects have been with me for almost a year now, and it would be really nice to finally get rid of this thing so I need to be careful not to push it quite too hard in the next few weeks to avoid messing up the long term plan!
All 256 achievements have been decided! The number is a complete coincidence, and I will be sad when further on down the line I add yet more achievements and ruin the count (or I'll just have to jump straight to 512, but I don't think I'm quite that crazy :P). I've recently been working on final icon passes and here we have the entirety of the more basic "Mechanics" category, which makes up about a quarter of all achievements:
I'll be showing more of these as Beta 6 progresses, and you can maybe guess what's what ;)
While the framework is coming along nicely, though, I still have to actually start implementing all these things. 256 is... a lot xD. Just look at all this data!
That's a shot of the post-startup achievements data as seen in the debugger, but the code behind them will be a little bit more involved than some lists...
Of course we also have the built-in achievement browsing UI, with which I've so far only reached the mockup stage. Remember, achievements will be available to both Steam and non-Steam players, and both will be able to take advantage of the better browsing features I have planned, as you can see here (open at full size so it's clearer):
I like the way the design turned out--lots of control, accessible to both mouse and keyboard players, includes both filters and sorting...
Now notice again this is a MOCKUP, so these icons don't even match the achievements next to them, and there are even duplicates. Little details like that don't matter when just trying to figure out colors, layout, and functionality :).
I normally don't share mockups before actually implementing a feature, but in this case I wanted to ask real quick for any opinions on which style of icon to use for locked achievements--see the ones with question marks in them. Designing icons in isolation I originally started with the "dark" versions seen in the second mockup below, but once I put together the full mockup it seemed that brighter versions as in the mockup above are probably better since they're generally more clearly distinguishable from unlocked achievement icons that way. Obviously there are other indicators to tell whether something is locked, but it's nice if all possible vectors are equally effective. Said dark version of locked icons:
I dunno, still kinda torn... What do you think?
Cogmind the RTS
For Beta 6 I've added a fourth way to pan the map: RTS-style. Funny enough it took years for anyone to request this on top of the existing methods, but I'm happy to oblige! Here's a demo of the new feature in action:
This type of panning will of course only be available in true fullscreen mode, though according to the latest Cogmind stats that's the mode two-thirds of players are using so coverage is decent. I find it clunkier to use than the precision offered by other methods, but everyone has their own needs!
This is actually the first time I've implemented a feature like this, so I had to figure out the best way to do it. The diagram below shows what I'm doing, calculating a line from the center to the cursor and just panning along that:
I'm not 100% sure if this is the best approach, but we'll see what those who actually need it have to say once it's live :D. Technically with some more work I could probably improve on the same method, such as having it accelerate slightly at the start? In any case, the panning speed is adjustable in the options menu as well.
While we're on the subject of RTS, here's a glimpse of what a Cogmind RTS might look like, zoomed out tactical view!
I made that as an April Fool's joke a couple years back, and talk about unexpected results: last year the official Twitter account for RT used this image for their coverage of cyberwarfare in the Middle East o_O
IBM Love
By request, I've added yet more map ASCII variants at even smaller sizes.
These include Terminus 12:
Terminus 14:
And my personal nostalgia-inducing favorite, IBM VGA 14:
That's one I would love to add at all sizes, but it really only works at the traditional size it was designed for. (Unlike, say, a modern fixed width font like Terminus which is pretty awesome at all sizes.)
Here's a fully-revealed map section using the IBM font, because IBM font:
Fun and Games
We've got a lot of runs and other stuff to check out this time.
I still haven't been streaming and unfortunately won't for a a while yet (well, no Cogmind but I might stream my 7DRL for a bit after it's done!), but I did play a decent seed run you can read about here. I didn't win, but did manage to get far, beat my Beta 5 high with a new score of 35k, and had a lot of fun despite clearly making some bad calls along the way xD
b_sen, on the other hand, shared an excellent writeup of their first win. A very detailed account including screenshots and spoiler tags for all the spoilery stuff in case you want to avoid that.
We actually had two first wins in one week, another by Laida who shared a quick account in another thread.
nuzcraft shared an account of his seed run, too, one that just barely didn't win but on the way got to play with some cool tech that not a lot of people see. Very spoilery though, that one :) (he doesn't have the videos for that run up yet, but says they'll be available over the coming weeks)
nuzcraft also just added a short new tutorial video to his ongoing series, this one on Core.
fpsbossfight took a short break from dominating Cogmind to fire up the new Stellaris expansion, in which he role-played Cogmind lore <3
On the Discord we got to hear of the exploits and fates of the various robots named after us in Derelict fashion.
We also have some new fan art.
Laida drew a Tinkerer:
And also showed how to use a paint bucket to disguise yourself as an Unaware bot :P
Following up on the Cogmind-DF mashup art from earlier, b_sen created a New Game sequence mockup as if it were a prequel to the Cogmind story (note: text contains some lore spoilers)
7DRL
7DRL is here! It's that time of year when hundreds of us roguelike devs bury our heads in our IDEs to produce some new stuff.
I'll be taking the week off to work on my 7DRL entry, so there won't be a SITREP next weekend. That said, seeing as this is a fairly Cogmind-related roguelike I'm planning, it's both relevant to progress here and will benefit Cogmind in a number of ways. Stay tuned for that release--I'm sure it's something you folks will enjoy!
It'll be announced on my dev blog first, at the conclusion of the event.
Also to update: The amount of features and work left for Beta 6 is rather staggering, so... a reminder that this one's going to take longer than usual! But as usual I also want to ensure it's the best it can be :D
I noticed Cogmind hasn't been getting many reviews in the past couple months, hovering just within or outside the threshold for even having enough recent reviews on Steam to show a recent total xD. It's been a while since I asked so we maybe have some newer players here who haven't left a review yet but want to? Reviews are appreciated and really helpful, so leave one if you can, thanks <3
All 256 achievements have been decided! The number is a complete coincidence, and I will be sad when further on down the line I add yet more achievements and ruin the count (or I'll just have to jump straight to 512, but I don't think I'm quite that crazy :P). I've recently been working on final icon passes and here we have the entirety of the more basic "Mechanics" category, which makes up about a quarter of all achievements:
I'll be showing more of these as Beta 6 progresses, and you can maybe guess what's what ;)
While the framework is coming along nicely, though, I still have to actually start implementing all these things. 256 is... a lot xD. Just look at all this data!
That's a shot of the post-startup achievements data as seen in the debugger, but the code behind them will be a little bit more involved than some lists...
Of course we also have the built-in achievement browsing UI, with which I've so far only reached the mockup stage. Remember, achievements will be available to both Steam and non-Steam players, and both will be able to take advantage of the better browsing features I have planned, as you can see here (open at full size so it's clearer):
I like the way the design turned out--lots of control, accessible to both mouse and keyboard players, includes both filters and sorting...
Now notice again this is a MOCKUP, so these icons don't even match the achievements next to them, and there are even duplicates. Little details like that don't matter when just trying to figure out colors, layout, and functionality :).
I normally don't share mockups before actually implementing a feature, but in this case I wanted to ask real quick for any opinions on which style of icon to use for locked achievements--see the ones with question marks in them. Designing icons in isolation I originally started with the "dark" versions seen in the second mockup below, but once I put together the full mockup it seemed that brighter versions as in the mockup above are probably better since they're generally more clearly distinguishable from unlocked achievement icons that way. Obviously there are other indicators to tell whether something is locked, but it's nice if all possible vectors are equally effective. Said dark version of locked icons:
I dunno, still kinda torn... What do you think?
Cogmind the RTS
For Beta 6 I've added a fourth way to pan the map: RTS-style. Funny enough it took years for anyone to request this on top of the existing methods, but I'm happy to oblige! Here's a demo of the new feature in action:
This type of panning will of course only be available in true fullscreen mode, though according to the latest Cogmind stats that's the mode two-thirds of players are using so coverage is decent. I find it clunkier to use than the precision offered by other methods, but everyone has their own needs!
This is actually the first time I've implemented a feature like this, so I had to figure out the best way to do it. The diagram below shows what I'm doing, calculating a line from the center to the cursor and just panning along that:
I'm not 100% sure if this is the best approach, but we'll see what those who actually need it have to say once it's live :D. Technically with some more work I could probably improve on the same method, such as having it accelerate slightly at the start? In any case, the panning speed is adjustable in the options menu as well.
While we're on the subject of RTS, here's a glimpse of what a Cogmind RTS might look like, zoomed out tactical view!
I made that as an April Fool's joke a couple years back, and talk about unexpected results: last year the official Twitter account for RT used this image for their coverage of cyberwarfare in the Middle East o_O
IBM Love
By request, I've added yet more map ASCII variants at even smaller sizes.
These include Terminus 12:
Terminus 14:
And my personal nostalgia-inducing favorite, IBM VGA 14:
That's one I would love to add at all sizes, but it really only works at the traditional size it was designed for. (Unlike, say, a modern fixed width font like Terminus which is pretty awesome at all sizes.)
Here's a fully-revealed map section using the IBM font, because IBM font:
Fun and Games
We've got a lot of runs and other stuff to check out this time.
I still haven't been streaming and unfortunately won't for a a while yet (well, no Cogmind but I might stream my 7DRL for a bit after it's done!), but I did play a decent seed run you can read about here. I didn't win, but did manage to get far, beat my Beta 5 high with a new score of 35k, and had a lot of fun despite clearly making some bad calls along the way xD
b_sen, on the other hand, shared an excellent writeup of their first win. A very detailed account including screenshots and spoiler tags for all the spoilery stuff in case you want to avoid that.
We actually had two first wins in one week, another by Laida who shared a quick account in another thread.
nuzcraft shared an account of his seed run, too, one that just barely didn't win but on the way got to play with some cool tech that not a lot of people see. Very spoilery though, that one :) (he doesn't have the videos for that run up yet, but says they'll be available over the coming weeks)
nuzcraft also just added a short new tutorial video to his ongoing series, this one on Core.
fpsbossfight took a short break from dominating Cogmind to fire up the new Stellaris expansion, in which he role-played Cogmind lore <3
On the Discord we got to hear of the exploits and fates of the various robots named after us in Derelict fashion.
We also have some new fan art.
Laida drew a Tinkerer:
And also showed how to use a paint bucket to disguise yourself as an Unaware bot :P
Following up on the Cogmind-DF mashup art from earlier, b_sen created a New Game sequence mockup as if it were a prequel to the Cogmind story (note: text contains some lore spoilers)
7DRL
7DRL is here! It's that time of year when hundreds of us roguelike devs bury our heads in our IDEs to produce some new stuff.
I'll be taking the week off to work on my 7DRL entry, so there won't be a SITREP next weekend. That said, seeing as this is a fairly Cogmind-related roguelike I'm planning, it's both relevant to progress here and will benefit Cogmind in a number of ways. Stay tuned for that release--I'm sure it's something you folks will enjoy!
It'll be announced on my dev blog first, at the conclusion of the event.
Also to update: The amount of features and work left for Beta 6 is rather staggering, so... a reminder that this one's going to take longer than usual! But as usual I also want to ensure it's the best it can be :D
I noticed Cogmind hasn't been getting many reviews in the past couple months, hovering just within or outside the threshold for even having enough recent reviews on Steam to show a recent total xD. It's been a while since I asked so we maybe have some newer players here who haven't left a review yet but want to? Reviews are appreciated and really helpful, so leave one if you can, thanks <3
This week I finally finished taking care of all the personal issues I needed to catch up on after neglecting and letting them pile up for the past couple months while I worked on getting the past couple releases out to you all. Now all that stands in the way of Beta 6 is 7DRL and... of course all the remaining Beta 6 work itself xD
So what have I been up to in my travels through the endless world of Cogmind dev...
For one I hadn't played for a bit and it's always good to stay familiar with the experience and mechanics while designing more of them, so I took on last week's seed run and wrote about that on the forums. It was a wheels-only conduct run on which I successfully fought my way into the late-game, but ultimately doomed myself by splitting my long-term strategy between multiple disparate approaches based on some interesting (spoiler) parts I found. It would've been nice to have streamed this one since it was great fun, but I was still over here in Japan. I'm actually heading home today (if you recall I've been working from Japan), though it'll still be a while before I can back to streaming with all this work to do.
If you're interested in the commercial side of things, last week I also posted an article over on Gamasutra about the most recent Steam Winter Sale and the effects of being featured. Lots of data and graphs to pore over :)
Achievements
A good many hours since the last news were spent coming up with the initial achievements list. Cogmind will start with at least a couple hundred achievements, so it's important to get the categorization right from the start and have everything nice and organized.
I also had to decide how to handle the icons, so I started doing some sketches in REXPaint and came up with a style that will work nicely. Preliminary tests:
Still more work to do there, including the final pass (and then also automating the creation of JPGs required by Steam--would much prefer PNGs...). And of course I'm using ASCII. Though naturally I want to (:P), there's also not much of a choice anyway since these aren't just Steam achievements--they'll also be displayed in game and must fit the theme and UI. Cogmind also doesn't use the Steam overlay so when you earn them they'll have to be rendered via its own terminal display.
It's been fun working with the symbolism, drawing on characters, colors and more aspects utilized in the creation of Cogmind to convey the idea of an achievement in a little 3x3 grid.
My current intention is to have all achievements available across all difficulty levels, avoiding the bloat of having separate versions for every difficulty. Almost everyone plays the default difficulty the game was designed for anyway, and for the rare case of players who want to move up from a lower difficulty level I'll add a way to reset your achievements. Unfortunately this particular feature will only be available to offline players because Steam does not support it.
Optimization
In case you didn't notice (you've probably noticed xD), Cogmind can take a while to start up. This is because pretty much all data is loaded right at the start, which for years was fine, but it's continued to grow all this time and sequentially loading everything was starting to be quite a drag, made all the more noticeable by the fact that I have (and prefer to keep) a blank screen while the game starts. Windows might even decide pop up a nice little "this program is not responding" notice.
I'll deal with that message separately later, but more important is that it shouldn't really take so long to get into the game, so I took the three largest chunks of data and multithreaded them. Fortunately this was quite easy to do since each is mostly raw data that in this case really doesn't care about the existence of the others. The three chunks are GUI particle scripts, map particle scripts, and sound effects. (The only exception was particles that needed to reference sound effects, so for that I added some code to link them up after all the threads completed.) Highlighted profiling data for some potential optimization candidates:
So what kind of savings are we looking at? In my test build scenario, startup took 19.13s, including 6.27 for GUI particles, 3.98s for sfx, and 2.31s for map particles. That's 12.56 seconds for three things that can essentially be loaded in parallel. Post-multithreading profiling:
The main thread sleeps for 6.81s, meaning that basically the steps that previously took 12.56s were instead crammed into 6.81s. So startup time on many machines has been cut by approximately one-third... Nice :D
Here's a graph demonstrating what Beta 6's multithreading looks like, the first such case in Cogmind:
There's more optimization that could be done, but this was the easy stuff and most other work would have significantly diminishing returns so isn't worth it right now. I also left all the old sequential loading code intact so that I can switch over to that with a debugging option in order to properly debug any loading issues, just in case. It's not the kind of thing that usually has issues, but if it does it'll be nice to keep it single-threaded because multithreaded debugging is just asking for trouble and confusion.
Miscellaneous
You might have noticed among the guides that we have a new one! Last week Suizin/tamagotaso helped translate Cogmind's manual into Japanese. Quite a feat considering it's currently 60 pages / 17k words. Many thanks there <3
I've also made the TXT version available next to the English version on the site.
This week Jazzer reported finding a special Storage room that had no access from the rest of the floor, so I'll take this opportunity to point out that you can find rare instances of the map generator doing stuff like this. It won't affect your progress, can be a fun discovery to make by blasting in there (or via sensors/hacking), and can reflect "glitches" in the 0b10 system, either benign or perhaps intentionally influenced by crafty enemies of the Unaware. Or maybe they're just not done remodeling :P. As another example you'll sometimes find hidden doors that lead nowhere--they haven't gotten around to digging out the target room yet.
Here's Jazzer's Storage room as seen in the debugger:
The left one was built first and originally connected to a corridor, but later they decided to add another at the end of the corridor and filled in part of the corridor when they shifted the room rightward. Again this is quite rare, and not something I'll be addressing so you might just come across it one day :)
Another find by fpsbossfight, something which is definitely a bug but unfortunately not really worth the amount of time it would take to address considering how pointless this is during normal play: If you fill an entire map with Dirty Bomb Traps and set them off in a one-turn chain reaction, the game will crash around the 400th explosion xD
Rather than show the image here, I'll just link to it because it's spoilery if you have yet to find Zion. (Yes he was finding creative ways to murder everyone...)
Once again I'll schedule the next SITREP for two weeks from now, so March 3rd, while I continue forging ahead with the Great Achievement Update and also spend some time finishing up my plan for the upcoming 7DRL. I haven't had any time to think about that for a while, and I prefer going into a timed project with a clear plan so none of that precious time is wasted :)
Also notice that Cogmind is on sale both on my site and on Steam to coincide with the Lunar New Year sale. After this one ends in a few days, the next sale should be the Beta 6 release, for which I'm thinking I'll do an out-of-event one and some promotion since we're getting all these achievements :)
This week I finally finished taking care of all the personal issues I needed to catch up on after neglecting and letting them pile up for the past couple months while I worked on getting the past couple releases out to you all. Now all that stands in the way of Beta 6 is 7DRL and... of course all the remaining Beta 6 work itself xD
So what have I been up to in my travels through the endless world of Cogmind dev...
For one I hadn't played for a bit and it's always good to stay familiar with the experience and mechanics while designing more of them, so I took on last week's seed run and wrote about that on the forums. It was a wheels-only conduct run on which I successfully fought my way into the late-game, but ultimately doomed myself by splitting my long-term strategy between multiple disparate approaches based on some interesting (spoiler) parts I found. It would've been nice to have streamed this one since it was great fun, but I was still over here in Japan. I'm actually heading home today (if you recall I've been working from Japan), though it'll still be a while before I can back to streaming with all this work to do.
If you're interested in the commercial side of things, last week I also posted an article over on Gamasutra about the most recent Steam Winter Sale and the effects of being featured. Lots of data and graphs to pore over :)
Achievements
A good many hours since the last news were spent coming up with the initial achievements list. Cogmind will start with at least a couple hundred achievements, so it's important to get the categorization right from the start and have everything nice and organized.
I also had to decide how to handle the icons, so I started doing some sketches in REXPaint and came up with a style that will work nicely. Preliminary tests:
Still more work to do there, including the final pass (and then also automating the creation of JPGs required by Steam--would much prefer PNGs...). And of course I'm using ASCII. Though naturally I want to (:P), there's also not much of a choice anyway since these aren't just Steam achievements--they'll also be displayed in game and must fit the theme and UI. Cogmind also doesn't use the Steam overlay so when you earn them they'll have to be rendered via its own terminal display.
It's been fun working with the symbolism, drawing on characters, colors and more aspects utilized in the creation of Cogmind to convey the idea of an achievement in a little 3x3 grid.
My current intention is to have all achievements available across all difficulty levels, avoiding the bloat of having separate versions for every difficulty. Almost everyone plays the default difficulty the game was designed for anyway, and for the rare case of players who want to move up from a lower difficulty level I'll add a way to reset your achievements. Unfortunately this particular feature will only be available to offline players because Steam does not support it.
Optimization
In case you didn't notice (you've probably noticed xD), Cogmind can take a while to start up. This is because pretty much all data is loaded right at the start, which for years was fine, but it's continued to grow all this time and sequentially loading everything was starting to be quite a drag, made all the more noticeable by the fact that I have (and prefer to keep) a blank screen while the game starts. Windows might even decide pop up a nice little "this program is not responding" notice.
I'll deal with that message separately later, but more important is that it shouldn't really take so long to get into the game, so I took the three largest chunks of data and multithreaded them. Fortunately this was quite easy to do since each is mostly raw data that in this case really doesn't care about the existence of the others. The three chunks are GUI particle scripts, map particle scripts, and sound effects. (The only exception was particles that needed to reference sound effects, so for that I added some code to link them up after all the threads completed.) Highlighted profiling data for some potential optimization candidates:
So what kind of savings are we looking at? In my test build scenario, startup took 19.13s, including 6.27 for GUI particles, 3.98s for sfx, and 2.31s for map particles. That's 12.56 seconds for three things that can essentially be loaded in parallel. Post-multithreading profiling:
The main thread sleeps for 6.81s, meaning that basically the steps that previously took 12.56s were instead crammed into 6.81s. So startup time on many machines has been cut by approximately one-third... Nice :D
Here's a graph demonstrating what Beta 6's multithreading looks like, the first such case in Cogmind:
There's more optimization that could be done, but this was the easy stuff and most other work would have significantly diminishing returns so isn't worth it right now. I also left all the old sequential loading code intact so that I can switch over to that with a debugging option in order to properly debug any loading issues, just in case. It's not the kind of thing that usually has issues, but if it does it'll be nice to keep it single-threaded because multithreaded debugging is just asking for trouble and confusion.
Miscellaneous
You might have noticed among the guides that we have a new one! Last week Suizin/tamagotaso helped translate Cogmind's manual into Japanese. Quite a feat considering it's currently 60 pages / 17k words. Many thanks there <3
I've also made the TXT version available next to the English version on the site.
This week Jazzer reported finding a special Storage room that had no access from the rest of the floor, so I'll take this opportunity to point out that you can find rare instances of the map generator doing stuff like this. It won't affect your progress, can be a fun discovery to make by blasting in there (or via sensors/hacking), and can reflect "glitches" in the 0b10 system, either benign or perhaps intentionally influenced by crafty enemies of the Unaware. Or maybe they're just not done remodeling :P. As another example you'll sometimes find hidden doors that lead nowhere--they haven't gotten around to digging out the target room yet.
Here's Jazzer's Storage room as seen in the debugger:
The left one was built first and originally connected to a corridor, but later they decided to add another at the end of the corridor and filled in part of the corridor when they shifted the room rightward. Again this is quite rare, and not something I'll be addressing so you might just come across it one day :)
Another find by fpsbossfight, something which is definitely a bug but unfortunately not really worth the amount of time it would take to address considering how pointless this is during normal play: If you fill an entire map with Dirty Bomb Traps and set them off in a one-turn chain reaction, the game will crash around the 400th explosion xD
Rather than show the image here, I'll just link to it because it's spoilery if you have yet to find Zion. (Yes he was finding creative ways to murder everyone...)
Once again I'll schedule the next SITREP for two weeks from now, so March 3rd, while I continue forging ahead with the Great Achievement Update and also spend some time finishing up my plan for the upcoming 7DRL. I haven't had any time to think about that for a while, and I prefer going into a timed project with a clear plan so none of that precious time is wasted :)
Also notice that Cogmind is on sale both on my site and on Steam to coincide with the Lunar New Year sale. After this one ends in a few days, the next sale should be the Beta 6 release, for which I'm thinking I'll do an out-of-event one and some promotion since we're getting all these achievements :)
Hope you're all enjoying the latest Beta 5! I'm of course already getting busy with Beta 6, but there's plenty of other stuff to cover today, too...
Stats
As usual following a major release, the leaderboards were reset. We're already seeing a lot of good runs this Beta, including a ++ extended end-game win which we didn't get to see last time:
Old leaderboards and scores have been archived, accessible at the bottom of the page, e.g. the final top scoring runs at the end of Beta 4:
Overall we're seeing significant improvement among newer players. I've also done a lengthy summary of stats for Beta 4, including highlighting certain achievements and an overview of general player performance and meta data.
(If you're interested in this kind of data you can also scroll back through the thread for stats on previous Betas since I don't always cover the same things.)
Beta 6?
So right now I'm in Japan to visit relatives for Chinese New Year (my son's on holiday so we can get out of town). We've been here for the past week and will remain for the next couple weeks, but it doesn't have much of an impact on progress. In fact, my workstation here is pretty much identical to my home setup.
That said, for a number of reasons Beta 6 will definitely take longer than the last couple releases. I have a bunch of family/personal stuff I've been neglecting lately to get Betas 4 and 5 out, so I'll have to work on that, but more importantly this year's 7DRL is coming up and I'm planning to participate. I could try to rush out Beta 6 before then, but double rushing (my normal speed is rush :P) is usually a bad idea, plus this particular release is going to add a rather big new system so it needs to be done right! I also shouldn't push my head too hard--I'm still spending 8 hours on treatment each week (when at home) for that concussion back in April, but it's stopped improving.
As for 7DRL, which is technically optional, I've already skipped the last five years worth of them as I focused on creating Cogmind, but I'm really interested in putting some new projects out there, and this time even though it'll slow down the Beta 6 release this particular 7DRL idea is something I know fans of Cogmind can get into so it'll definitely be worth it :D
Also with regards to progress in general, recall that in a past SITREP I talked about Beta 5 giving us a "clean slate" by finishing up all the near-term must-have features. Well, in the latter weeks of Beta 5 work I kept piling on so much new stuff and pushing others further down the list that it'll take another release or two to finish off those things after all :P. At least that's good in that we'll have plenty of little things to work on, too! In any case, the next release will of course be mostly about moving ahead with major features...
Yes, we're finally doing one of the things listed there rather than all the other secret/unlisted stuff I'm always throwing in xD
I've marked this one feature alone as taking three weeks, and I've heard some surprise at that number so may as well take this opportunity to give a rundown of what's involved. It's quite a lot of stuff!
On the surface it appears quite simple, and technically if you're just adding a handful of achievements for Steam it's really quite easy, yeah, but Cogmind's particular situation is going to include a lot more achievements, and a lot more moving parts, than your average game.
Here's a high-level TODO list of what it'll take to bring Achievements to Cogmind:
Research Steamworks docs for achievement specifications
Create and organize a list of achievements
Do an achievement UI mockup
Test how Steam achievements work in other games, and how they're presented on the player and community side
Create the achievement data, including names and descriptions
Implement an achievement handler, and check for each achievement at relevant points in the source code
Implement the Cogmind-side dedicated achievement interface
Decide how to integrate achievement notifications into several different existing UI systems
Find solutions for a number of tough achievement-related issues
Create icon art for every achievement (in both acquired and non-acquired form)
Test a selection of achievements in a non-Steam build
Build a system to communicate with Steam regarding achievements (prioritizing game-side data, rather than Steam-side like most games do it)
Add achievement data to Steamworks backend
Live test the achievement system on Steam, including syncing of old data on either end
Fix the inevitable oversights and bugs in the system before they reach players
Actually release it :P (after adding a whole bunch of other stuff that should go in the release, too!)
Oh my I've only barely started working down that list and writing it all out like that is making me go O_O. Heck there might be items I overlooked... Many of these steps certainly include numerous fine details, so the overall workload is not to be underestimated, but in the end we'll have a system that's robust, works for both Steam and non-Steam players, and can be easily expanded further in the future with even more achievements.
At least the art needs will probably be relatively easy to deal with. Because the achievement icons must be displayable in game (not just Steam), they must conform to the game's grid-based style, meaning the only real choice is ASCII like the rest of the in-game art. These icons also have to meet Steam's dimension requirements (64px), so this means they'll probably be fairly small and simple in order to still be somewhat readable at that size. I have yet to do any tests so we'll see. I'm still working on the achievements list at the moment.
I'll have more to share on this topic over the next month. Note that we have an ongoing achievements suggestion thread on the forums from which I've been taking a number of ideas to combine with my own.
Meta
nuzcraft, one of Cogmind's most prolific Let's Players, got his first win recently and shared his writeup over on the forums (he plays all the seed runs so you can play along as well if interested).
Over on r/Cogmind, GDFKTT shared a writeup on their first win as well, and a pacifist run no less.
Yesterday over on r/RoguelikeDev I shared some of Cogmind's debugging features that I use for development, so check that out if you're interested in some more behind the scenes sort of stuff. Some examples:
Highlighting map encounter prefabs, colored by their type (fluff/reward/danger/risk-reward...):
Visualizing squad routes:
Visualizing ambient sfx propagation:
Watching entity (robot) time values:
Checking cellwise cave-in factors as affected by explosions:
#13
The next SITREP will be February 17th so that I have more to show for it, since a lot of the current work is behind the scenes, but as usual I'll be hanging out on the Discord every day. Stop by!
(Note that also around that time there's the annual Steam CNY sale, so for those few days expect a 10% discount.)
Hope you're all enjoying the latest Beta 5! I'm of course already getting busy with Beta 6, but there's plenty of other stuff to cover today, too...
Stats
As usual following a major release, the leaderboards were reset. We're already seeing a lot of good runs this Beta, including a ++ extended end-game win which we didn't get to see last time:
Old leaderboards and scores have been archived, accessible at the bottom of the page, e.g. the final top scoring runs at the end of Beta 4:
Overall we're seeing significant improvement among newer players. I've also done a lengthy summary of stats for Beta 4, including highlighting certain achievements and an overview of general player performance and meta data.
(If you're interested in this kind of data you can also scroll back through the thread for stats on previous Betas since I don't always cover the same things.)
Beta 6?
So right now I'm in Japan to visit relatives for Chinese New Year (my son's on holiday so we can get out of town). We've been here for the past week and will remain for the next couple weeks, but it doesn't have much of an impact on progress. In fact, my workstation here is pretty much identical to my home setup.
That said, for a number of reasons Beta 6 will definitely take longer than the last couple releases. I have a bunch of family/personal stuff I've been neglecting lately to get Betas 4 and 5 out, so I'll have to work on that, but more importantly this year's 7DRL is coming up and I'm planning to participate. I could try to rush out Beta 6 before then, but double rushing (my normal speed is rush :P) is usually a bad idea, plus this particular release is going to add a rather big new system so it needs to be done right! I also shouldn't push my head too hard--I'm still spending 8 hours on treatment each week (when at home) for that concussion back in April, but it's stopped improving.
As for 7DRL, which is technically optional, I've already skipped the last five years worth of them as I focused on creating Cogmind, but I'm really interested in putting some new projects out there, and this time even though it'll slow down the Beta 6 release this particular 7DRL idea is something I know fans of Cogmind can get into so it'll definitely be worth it :D
Also with regards to progress in general, recall that in a past SITREP I talked about Beta 5 giving us a "clean slate" by finishing up all the near-term must-have features. Well, in the latter weeks of Beta 5 work I kept piling on so much new stuff and pushing others further down the list that it'll take another release or two to finish off those things after all :P. At least that's good in that we'll have plenty of little things to work on, too! In any case, the next release will of course be mostly about moving ahead with major features...
Yes, we're finally doing one of the things listed there rather than all the other secret/unlisted stuff I'm always throwing in xD
I've marked this one feature alone as taking three weeks, and I've heard some surprise at that number so may as well take this opportunity to give a rundown of what's involved. It's quite a lot of stuff!
On the surface it appears quite simple, and technically if you're just adding a handful of achievements for Steam it's really quite easy, yeah, but Cogmind's particular situation is going to include a lot more achievements, and a lot more moving parts, than your average game.
Here's a high-level TODO list of what it'll take to bring Achievements to Cogmind:
Research Steamworks docs for achievement specifications
Create and organize a list of achievements
Do an achievement UI mockup
Test how Steam achievements work in other games, and how they're presented on the player and community side
Create the achievement data, including names and descriptions
Implement an achievement handler, and check for each achievement at relevant points in the source code
Implement the Cogmind-side dedicated achievement interface
Decide how to integrate achievement notifications into several different existing UI systems
Find solutions for a number of tough achievement-related issues
Create icon art for every achievement (in both acquired and non-acquired form)
Test a selection of achievements in a non-Steam build
Build a system to communicate with Steam regarding achievements (prioritizing game-side data, rather than Steam-side like most games do it)
Add achievement data to Steamworks backend
Live test the achievement system on Steam, including syncing of old data on either end
Fix the inevitable oversights and bugs in the system before they reach players
Actually release it :P (after adding a whole bunch of other stuff that should go in the release, too!)
Oh my I've only barely started working down that list and writing it all out like that is making me go O_O. Heck there might be items I overlooked... Many of these steps certainly include numerous fine details, so the overall workload is not to be underestimated, but in the end we'll have a system that's robust, works for both Steam and non-Steam players, and can be easily expanded further in the future with even more achievements.
At least the art needs will probably be relatively easy to deal with. Because the achievement icons must be displayable in game (not just Steam), they must conform to the game's grid-based style, meaning the only real choice is ASCII like the rest of the in-game art. These icons also have to meet Steam's dimension requirements (64px), so this means they'll probably be fairly small and simple in order to still be somewhat readable at that size. I have yet to do any tests so we'll see. I'm still working on the achievements list at the moment.
I'll have more to share on this topic over the next month. Note that we have an ongoing achievements suggestion thread on the forums from which I've been taking a number of ideas to combine with my own.
Meta
nuzcraft, one of Cogmind's most prolific Let's Players, got his first win recently and shared his writeup over on the forums (he plays all the seed runs so you can play along as well if interested).
Over on r/Cogmind, GDFKTT shared a writeup on their first win as well, and a pacifist run no less.
Yesterday over on r/RoguelikeDev I shared some of Cogmind's debugging features that I use for development, so check that out if you're interested in some more behind the scenes sort of stuff. Some examples:
Highlighting map encounter prefabs, colored by their type (fluff/reward/danger/risk-reward...):
Visualizing squad routes:
Visualizing ambient sfx propagation:
Watching entity (robot) time values:
Checking cellwise cave-in factors as affected by explosions:
#13
The next SITREP will be February 17th so that I have more to show for it, since a lot of the current work is behind the scenes, but as usual I'll be hanging out on the Discord every day. Stop by!
(Note that also around that time there's the annual Steam CNY sale, so for those few days expect a 10% discount.)