Home Artists Posts Import Register

Downloads

Content

Last month I gave a preview of our new upcoming scoresheet format, at which point it was just a mockup (including uncertainties and various other related notes of mine). Well now the format is not only finalized, but fully implemented!

I've attached a sample scoresheet, just a short test run up to -5/Factory, which is essentially spoiler-free. You can download that if you like to go along with my explanations here.

General Notes

Organization

One of the obvious changes is that it's better organized.

The bulk of the original scoresheet, born in 2012, was its long and uncategorized list of stats. Over the years it simply grew longer and longer as I tacked on stats for new mechanics and content, growing from 79 in the 7DRL (2012) to 328 in Alpha 1 (2015) to 818 in Beta 8 (2019).

Now in addition to the preexisting "non-stat" categories like Parts, Peak State, and Favorites, the stat list itself has been broken down into 15 categories and reorganized as necessary to match them.

Maybe I'll put together a diagram later comparing the composition between the old and new scoresheet, though for now a concise list of specifically the stat categories will suffice. We now have separate sections for Build, Resources, Kills, Combat, Alert, Stealth, Traps, Machines, Hacking, Bothacking, Allies, Intel, Exploration, Actions, and Best States!

Categorization makes it easier to both find and understand relevant data. Plus it looks cooler :)

Per-map Data

The other super obvious change is that there's a ton of data :P

Sure we had quite a few stats before, but now we have them not only for the entire run, but broken down at the map level. This offers far better insight into how the run played out.

I decided to store per-map data for almost everything now. Originally was going to limit detailed breakdowns to a subset of the stats, but on implementing the per-map data recording (the very first thing I did since it would be fundamental to scoresheet 2.0), I did a quick test assuming a late-game run with a ton of stats and noticed it wasn't a big drawback in terms of save or text size, and I believe the new leaderboard database shouldn't have any trouble handling it all, so why not!

There are only a small handful of exceptions that aren't stored on a per-map basis, entries for which it would make no sense to do so. Storing per-map data for practically everything also completely avoided the subcategorization dilemma I was noting in my mockup notes earlier.

One thing I didn't add to the scoresheet is a list of every part attached, or even every build at the end of each map. There's just no great way to do these, and compared to the amount of space it would occupy this information would be difficult to parse, anyway. I think the new automated class system will work nicely for that purpose, and that in itself also occupies two new sections in the scoresheet I'll talk about below.

"Per-weapon damage" and other details discussed before in the context of an expanded scoresheet is another of the few things that were left out for similar reasons. I thought of somehow combining it with the Favorites section, but alone this information doesn't seem as valuable as it would be in comparison with all weapons used.

Sub-subcategories

Stats can now make use of a second level of indentation.

Originally it was only possible to have main stats and sub-stats, but that lead to a couple problematic situations where (mainly because stat names are kept from being too long) some stats really needed to be indicated as a subcategory to an existing subcategory and were therefore prefixed with '^', which not everyone could understand. The new system fixes that by allowing more indentation. I'm not going overboard with it, but it is needed or advantageous in a few situations so I expanded the use of sub-sub-stats a bit.

Performance

The score structure hasn't really changed much. I didn't really come up with an all-around better approach for scoring, so the existing system will remain, although it was expanded slightly with the addition of Regions Visited. Rewarding exploration is a good way to encourage it. (Of course there are already in-game rewards for exploring many areas, but it can't hurt to further formalize that reward in the scoring system.)

The bonus point system will continue to be an important source of points for most runs, but it's flexible and can be adjusted/expanded more in the future. Notice that I moved that breakdown right up under the Performance section.

No changes to Parts, Peak State, or Favorites, which all still serve their purpose just fine.

Stats

Stat-wise I've improved on some of the existing data, as well as added quite a few new things. I'll talk about a few categories in more detail here...

Build

Much of this section is new, adding a breakdown of all slot evolutions, as well as info on subtypes for attached parts and slot usage. Combined with the per-map data, we'll be able to have a pretty clear picture of how builds evolved across the run as a whole, in a much more condensed and readable format than if we had list after list of build loadouts or some other highly detailed approach.

Instead, after the detailed data we also get a summary of the player's approximate build classification for each map (where multiple build classes were used, which is common, it picks the one that lasted the longest). And following that is a list of most popular classes throughout the run, ordered by usage.  As you can see, in my sample run I was being my normal Cogmind self ;) 

Kills

With scoresheet 2.0 we finally get kill counts for more specific robot types! To simplify the code, this system had always relied on Cogmind's internal robot class system, which is essentially what you saw appearing on this list before. The problem is, the game has grown so much since then and you can now eventually meet some rather special special variants that shouldn't really be tallied along with the others--like not-your-everyday Grunts and Programmers, but there was no way for the system to distinguish them, so some of the most powerful hostiles in the game were being lumped with the average ones. No more! Now we'll finally be able to see real kill counts for the rest of the special robots out there...

The "NPCs Destroyed" list also now includes all uniques (as well as where they were killed), so yes that means we'll also have a record of the nefarious exploits of those out there murdering bots who should otherwise be powerful allies ;)

Hacking

As of Beta 8 the scoresheet only records Terminal hacks, but that's been greatly expanded to include every possible hack--all machines and even unauthorized hacks, too.

Remember here that a lot of entries don't actually show unless they're non-zero, so there are quite a few more possible data points than what you see in the sample run, hacking and otherwise.

Actions

I can see some interesting analysis coming out of looking at a breakdown of actions across a run. It's a pretty fundamental kind of data, but was actually rather challenging to implement because Cogmind didn't originally need to distinguish between action types in such a granular way. Anyway, we have it now :D

History

This  full history of events is going to be one of my favorite sections (along with the new class system!), but is incomplete so I'll talk about it later.

The "Last Messages" from the message log are often found in morgue files for other roguelikes, and while I don't think they'll be as valuable or interesting in Cogmind as they are there (due to de-emphasis of the log), it won't really hurt to add them and could at least in some cases help paint a picture of what was happening just before The End, especially in combination with the map.

Map

I've already written about this new section before.

Schematics and Fabrication

We'll now have a full list of schematics, both items and robots, including also how and where obtained. That plus the fabrication list showing where each part was built, and whether or not it was preloaded, and we'll get a much better idea of how fabricated builds are coming together. 

Game

Yay, the data is now aligned :)

I also converted play time into hours, rather than minutes, since people generally wanted to know it in terms of hours, although that means it's now a decimal. While it's better to work with whole numbers, I also wanted it to be a single number instead of showing as h/m/s... Any opinions on that?

Dumps

Mid-run stat dumps are also fully functional, and feel great especially while debugging since I just hit the hotkey and it produces a file, whereas before I always had to save, self-destruct to get the scoresheet, then continue the game and load back where I was.

In fact, the main scoresheet I'm sharing for this post was produced by dumping it rather than actual self-destruction (I just manually replaced the Result text :P). The original dump "result" section showed this:

Dumps not only show your current class (which was where the idea for that system originated in the first place), they also analyze your current situation based on a bunch of factors and rate it on a scale from "wonderful" to "dire."

The only thing the scoresheet is missing as of this writing is the actual History section content. The architecture is in place and functional, but it'll take some doing to insert records of all the possible events I want to include there...

Comments

Joshua

I think breaking down into HH:MM or #h, #m would be good. Always better to make it more readable. One last minute idea: put when the run started, too! I had a little trouble recognizing the end time at the top of the file and it might help match scoresheets up with recorded runs for those who look at others' scoresheets :)

Joshua

Actually now that I've seen it I do like how clean the single decimal looks for hours. Hmm...

Via

Oh, a beautifully indented list:) I would like to thank for the effort of sorting such a lot of items to be 'fun' to read. Although it's enough predictable that this would steal my time to actually play the game. Anyway, It looks that would be a brand new element that build-classification, enhanced statistics, and mid-game output interact closely as the same as Cogmind's other elements. (While the sample seems to be wheel build, the Build section says that no wheels have been attached...?)

Kyzrati

Huh, good catch on the wheels, that's weird no idea why it did that... There is definitely going to need to be a lot of playtesting and review of the new scoresheet data before this goes public xD. But the good thing is it'll be fun to read and analyze so that won't be much of a chore!