SakeTami
Kyzrati
Kyzrati

patreon


Achievements + 222

Woohoo, they're done! Come Beta 16 release, Cogmind will have a new achievement total: 466.

Yeah we lose the funny 256 number, and no the new set didn't quite reach 512 as some hoped, but the precise count is also not entirely relevant since going forward with our new more flexible architecture for adding achievements we will be getting yet more after this batch, to encompass future content as it comes.

For now, the addition of 222 more achievements covers all the new stuff introduced over the past 7 years. Like the graph I put together to summarize the category distribution of our original set back in 2018, below is the distribution of specifically our new batch:

The distribution is pretty similar to before, with only the Progress category being a notable outlier in only adding a few, but that whole category was more aimed at general progression--gallery/lore/achievement counts and score thresholds, so didn't really warrant much expansion, although we did get some new even higher score thresholds given the "score inflation" resulting from an increased number of sources for points over the years :P

The final composite distribution is as follows:

Although the total win-related achievements didn't increase by much, there are actually a good number of new ones, the total having remained little changed because a chunk of the original group has been removed. Specifically these were the challenge mode achievements, as those will no longer be recognized as an "official" part of the game. Yeah they'll remain playable, but there's no easy way to access them and we don't need achievements to legitimize them when they are no longer tested or maintained to the same standards of quality as the normal game. I included them among the 2018 achievements because at the time they were a form of play that was fresher and there was still the possibility of formal inclusion, but that didn't and won't happen. (One of those challenges was actually included purely as an achievement in the new batch, however, as it doesn't technically require any special code to enforce it.)

After building the new icon architecture system I wrote about last time, I completed the work in three more phases... Note that adding a single achievement is generally pretty simple: Make an icon, set the name, description and other data values, add a line or two of relevant code (more for the complicated ones, but most aren't too complicated, maybe an average of 4-5 LoC?), and test it out to make sure it works. Of course, say that takes 20 minutes in all, then multiply that by the number of achievements, and there's quite a lot to do xD

First was actually drawing all the icons in REXPaint. Always fun to get in there and use the limited space and characters to summarize what each is all about, though of course I also needed to spend time cross-referencing older achievements in order to maintain consistent iconography throughout.

Below is a random assortment of a portion of the achievements icons, both old and new (technically includes unhidden versions of normally hidden achievements! warning in case you are afraid you can decode the ASCII and spoil something :P):

The second phase was to then actually implement them all! This primarily involved finding the relevant section(s) of code, which was often pretty easy, especially when an achievement was based purely on a value already tracked for the scoresheet data, for example.

Some could get a little more complicated due to the need to detect new unique conditions, and I'd have to add more dedicated code for these, or even figure out how it's possible. During this entire process only one achievement I'd wanted to include was dropped because the game simply couldn't detect it given the architecture, not without a big internal expansion that really didn't seem worth it.

In a few rare cases I resorted to hacks to edge a new achievement in there, which reminds me of the first batch of achievements (2018) that included one I could only detect by reading back through the message log to confirm one of the conditions at the right moment xD (very hackish, yes, but if it works it works!)

In the interest of speeding things up, once that was done I originally wanted to just test a few achievements which had a higher chance to be broken somehow, or were difficult to obtain and therefore even more important to work for everyone the first time, lest someone miss their hard-earned achievement due to a bug. Testing code is always a good idea to make sure it does what you want, yeah, and I'd done that for all of the achievements back in 2018 so there weren't too many issues since.

But as I tested a few random ones I discovered little stupid mistakes here and there, probably a bit tired while working on so many of these things, and became convinced that fully testing every single one had to be done...

Glad I did. Yes there were indeed more issues, but also when dealing with such a broad feature it's nice to give the entire thing another comprehensive review, sometimes here resulting in further adjustments to conditions or descriptions.

So that was the third phase, and they're all now implemented and tested! Doesn't mean there aren't still issues lurking in there somewhere, but at least the chance is now significantly reduced.

There is actually still another final phase to come, but I won't be doing that until the public release: the Steam back end... On Cogmind's side everything is fine and dandy, where achievements will appear normally via the various in-game interfaces, and recorded in your local data as usual, but for them to work in Steam, that requires also setting up all this data over there :/

It is unfortunately rather time-consuming, because their system isn't really built to facilitate management of a large number of achievements, each of which must have its data set manually and individually--names, descriptions, separate icon images for hidden vs. earned for each one, other values... once again hours of work purely because there are so many xD

Anyway, that's for later.

For now... I do wonder if we should have an earlier Beta 16 release for patrons if you want to have a chance to start earning these achievements sooner? Obviously it also offers a longer period of prerelease testing and review, though that's less important since I did do most of the testing part already. One reason to hold off on that is that I don't like splitting the community into current vs prerelease versions too early, since the latter aren't included in our stats, after all!

If you want to at least see the achievements I've added, attached is a file originally shared on Discord that lists them all (since then a few may have had slight adjustments to their contents, as this was a preliminary list from before I started implementation). The hidden ones don't include descriptions, but you also might enjoy just finding many of the achievements through normal play (before eventually moving on to targeting challenge achievements), in which case I know some want to just ignore the list entirely to avoid spoilers. Your choice.

Beta 16 Next

With that detour out of the way, up next I'm thinking maybe we do some feature voting? Naturally there's the main event to get to (UNCHAINED), but I know folks are eager to do some voting as well...

In the near term, I'll actually be on a trip for the next week, first time out of country in years, so there's a short break here before diving into the next thing. I'll still be dropping by Discord etc to see what's going on, though development itself will be paused. Or I guess it'll be a note-taking phase, since I've got plenty of thoughts to organize for the upcoming features :)

Achievements + 222

Comments

Everyone's favorite, I know :P

Kyzrati

Woo voting!

J


More Creators