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.
Splitting the board may not be absolutely necessary, but frankly, it's the correct solution. Having two games on the same leaderboard is never really a good option. Just bite the bullet and do it, IMO. It's not that much work. Wouldn't bother with a category extension though, just nuke 200% if nobody runs it.