Does anyone here have good experience with managing somewhat complicated categories? I'm in a bit of a bind and don't really know what to do with the situation.
Some background information: I moderate a game called Twin Shot. (https://www.speedrun.com/twinshot). It contains leaderboards for the original Twin Shot, as well as Twin Shot 2, the sequel.
- Twin Shot has 50 levels.
- Twin Shot 2 has 100 levels, split into two 50-level sets (known as "Good" and "Evil") that can be played separately.
- Twin Shot 2 has a feature known as "Cheats and Treats", that lets you do things like permanently activate power-ups (e.g., invincibility) after you collect a certain number of coins in the game.
As of now, there are four main categories and one misc. category:
- TS1: beat all the levels of Twin Shot.
- TS2: beat all the Good levels and all the Evil levels of Twin Shot 2.
- Good%: beat all the Good levels of Twin Shot 2.
- Evil%: beat all the Evil levels of Twin Shot 2.
- 200% (misc.): beat all the levels of Twin Shot, all the Good levels of Twin Shot 2, and all the Evil levels of Twin Shot 2.
There are also some subcategory variables:
- Angels: To indicate if the category was played with 1 or 2 players. Applied to all categories.
- Game state: To indicate if the category was played on a fresh game file (NG) or not (NG+). This is relevant when playing with Cheats and Treats, as NG runs still have to collect all the coins needed to unlock power-ups (+ go and activate them in the menu), whereas NG+ runs can have everything unlocked before the run even starts. Applied to all categories except TS1.
Here's the problem: I want to set up categories for Twin Shot 2 runs that do not use the Cheats and Treats feature, as runs that do use it cannot be compared to those that don't, and I want Twin Shot 2 categories without cheats to be "relevant" to run (plus, there are already some "No Cheats" runs on the boards).
I can see two ways to do this, but they both have some problems:
- Make a misc. category called "No Cheats", with a variable that indicates which category was played (TS2, Good%, Evil%, 200%). This is how things are currently set up; it works okay, but it feels a bit messy, the No Cheats runs are kind of hidden away, and there is probably a better solution.
- Ditch the No Cheats category and replace it with a subcategory variable, that is then applied to all categories except TS1. This is better in some ways, but it also makes the NG/NG+ distinction irrelevant if your run doesn't use cheats, as playing from a fresh game file or not does not change anything unless you do use them. It's not a big problem, but still kind of annoying. If there is a way to work around that, I am not aware of it.
What's the best way to set this up?
"But why are Twin Shot and Twin Shot 2 merged together in just one game if you can't play the original Twin Shot levels in Twin Shot 2?" I wasn't the one who set things up this way so I'm not really sure. I guess because of the 200% category? It has zero runs though, and as far as I know, nobody has ever shown an interest in running it. The games could in theory be split into "Twin Shot" and "Twin Shot 2"— plus "Twin Shot category extensions" where 200% could be moved (if it's kept at all). I suppose No Cheats runs could also find a home here, but putting them on an entirely different leaderboard does not feel quite right. Re-structuring the leaderboards this way may be the better solution, but it requires a decent amount of work (setting up + moving all the runs over), and considering the very low number of active runners, I would rather avoid it unless it is absolutely necessary.