Forums  /  Speedrunning  /  Super Catboy or How to make a game more appealing to speedrunners
  TrunXTrunX

https://i.imgur.com/u555N6w.jpg

Hey, I'm part of a two-man team that develops a 16-bit action platformer called Super Catboy and I would appreciate some feedback from active speedrunners. What is alright and what could be improved from a speedrunners perspective?

A little gif of the game:
https://i.imgur.com/REUEFyY.gif

A playable demo is linked on our website: http://www.catboy.de

I have also a bunch of general questions you can answer without playing the demo:

- What do you think about an ingame speedrun mode with a build-in timer and online highscore. I think it would be used by casual speedrunners but might be ignored by more serious ones that are used to their own time measurement tools and external ranking sites.

- Should the separate speedrun mode auto-skip all dialogues and cutscenes? Or is part of the challenge to save some milliseconds during dialogues by pressing the "next" button at the right moments?

- In case the speedrun mode will be divided into a full game and a single levels section. Should the achieved level times from a full game run be counted for the single level rankings?

- Right now the game has some RNG involved like the start looking direction of enemies and how long they idle and in which direction the continue to walk after idling. I assume it would be better to have no RNG involved in this matter so the enemies are always standing at the same point and looking in the same direciton as long as the runner has a similar pace. What the game already has is a constant random seed so as long as the player is doing the same actions in the same order all RNG events should resolve in the same way.

- Currently it is easy to skip (almost) all enemies by dashing past them. Should I force players to fight all enemies. Either by make them more aware and reactive to dashing players or stop the scrolling of the screen if there are to many enemies on screen. During playtest events and exhibitions it was never a problem. Most players fought against all enemies without the extra incentives. And it might be ok for (non 100%) speedrunners to skip the fighting against normal enemies.

Hope this was not to much text. Looking forward to hear some opinions on these topics.

6oliath6oliath and blueYOSHIblueYOSHI like this. 
  ShikenNuggetsShikenNuggets

"What do you think about an ingame speedrun mode with a build-in timer and online highscore"
Built-in timer is always a great addition, but you need to be sure that it's accurate (and ideally can keep track of time without loads as well). If it's inaccurate then it's completely useless for speedrunning. In-game leaderboards are pretty much useless all around as they're fairly easy to hack and the top times are almost always unreliable.

"Should the achieved level times from a full game run be counted for the single level rankings?"
If playing the level on its own is the exact same as playing it in the full game then I don't see why not.

"Should I force players to fight all enemies"
I wouldn't change anything about this, or any aspect of the gameplay, specifically to affect the speedrunning appeal of the game. Go with whatever makes sense for the game's design, don't change it just to make it harder or more interesting for an incredibly small subset of your audience.

Osmosis_JonesOsmosis_Jones, SpiderHakoSpiderHako and 5 others like this. 
  blueYOSHIblueYOSHI

- Build-in timer
Ingame-timer should be accurate enough, there are more than enough games that use IGT (like Celeste ).
Another thing to consider is creating an Autosplitter for LiveSplit: https://github.com/LiveSplit/LiveSplit/blob/master/Documentation/Auto-Splitters.md

- "Should the separate speedrun mode auto-skip all dialogues and cutscenes?"
Text is useful for streamers to read the chat, or even for others since like 2h non-stop without pause could be a bit exhausting. Cutscenes probably should be skipped, text only if it's a lot of text, otherwise it's probably better not to.

- RNG & enemies
RNG isn't that bad as long as it doesn't "force" you to lose time (like not being able to attack a boss because it chose the wrong attack). It didn't seem like the current RNG is that bad, if your good at the game you could skip the enemies regardless.
There could be some sort of in-game display that shows that you beat all enemies in that specific level so 100% runners would need to beat them all but Any% runners wouldn't.

- Some other stuff
I noticed that Catboy didn't register my Switch Pro Controller (DInput) so I played with JoyToKey instead.
It's a bit annoying that the game forces fullscreen.
It probably should be explained that you get a boost while jumping mid-dash as I didn't notice that at first.
The website probably should get HTTPS as I couldn't access it at first with HTTPS Everywhere.

Most of these things weren't too bad, I still had a lot of fun playing it, excited to see more of the game!

/edit: Decided to run it a bit, heres my PB (has quite a few mistakes in it but not too bad overall id say):
Some things I noticed while running:
RNG was kinda annoying so I guess at least the initial direction and the spawning location for the fight at the end should be fixed. I think it is a good idea that the enemies are a bit random so it's not the exact same each time which could add a bit of fun, at least for me.
Dashing should probably be just one button as I never really used the Dash-right button and completely forgot it existed later on.
At least in the demo, Items felt kinda useless, if the levels in the final game are about the same length they probably should be adjusted a bit as I never had an issue with either ammo or HP.
Still had a lot of fun running it!

TrunXTrunX, QuivicoQuivico and 6oliath6oliath like this. 
  LivLiv

- Frame Perfect timer, including a milliseconds counter. Also, loads should be excluded from the timer, and it should only count instances in which the player is in control.
- No unskippable cutscenes. If there are cutscenes in the game that can possibly kill pacing or momentum, add a skip function to the game that lets you jump right back into the action. Sometimes resets are fairly common, and there's nothing more annoying than having to sit through a 30-40 second cutscene right at the start every time.
- Text should draw instantly, so don't have any kind of text scrolling. This is to eliminate the possibility of "faster" languages.

Technical aspects should be encouraged to be user friendly in general. Making your game easily replayable should be the prime focus if you want to make your game geared towards speedrunners. Try to eliminate as much downtime as possible, and include data to help runners keep track of things easier.

Altering your gameplay however to better suit speedrunners is, in my opinion, a questionable move. Overall we're the minority of gamers.

TrunXTrunX, oddtomoddtom and 4 others like this. 
  Hdot12Hdot12

It seems that I might have an unpopular opinion.

I'd suggest to just focus on the game. Create a good game and it will attract runners. You definetely should not try to make it "perfect" for speedrunning, because working around features which make the game less "speedrunnable" is part of the challenge to me. This also includes RNG. (Sure no need to make an RNGfest out of it but I would refrain from removing minor RNG related things, like AI movement).
As such I am strictly against the speedrun mode.

For cutscenes, I personally don't mind to mash trough dialogue or wait for cutscenes to play out, however unskippable cutscenes are a good thing in general. (Unless the run takes like longer than 4 hours, than unskippable cutscenes can be quite a relief).

Also no need to include a timer in my opinion, since we will most likely just go by RTA timing anyway. Unless there might be differences on loading times for different systems with different specs. In that case, a ingame timer which does not take loading times into account can be really helpful. As long as it is accurate like the above users mentioned. A frame perfect timer without loading times would be perfect and in that case we might actually use the ingame time for the leaderboards. The leaderboards which we will create ourselves. We will keep track of our times, so definetely no need to create an ingame leaderboard, for the reasons which were mentioned above.

SpiderHakoSpiderHako, TrunXTrunX and 6oliath6oliath like this. 
  6oliath6oliath

Open question for those who answered already: Should in-game timers pause when the game is paused?

TrunXTrunX likes this. 
  Hdot12Hdot12

I'd say no, since pausing is an optional decision of the player. It could also lead to some pause-buffer related tricks which might make hard sections easier.

AlayanAlayan, emeraldalyemeraldaly and 5 others like this. 
  TrunXTrunX

As I thought the planned ingame speedrun mode and build in online highscore will most likely be more appealing for casual players. I see that it might be possible to cheat and external leader boards with video proof will be more reliable. To counter the cheating I had the idea to attach some form of ghost data to each submitted time. Be it for internal varification or maybe even so everyone can download and replay the run from others to confirm it's legitimacy and learn some new tricks or short cuts. Of course this can't prevent tool assisted runs (are they even a thing outside of emulator runs?)

Regarding the timer there are two possibilities. Use the system time / delta time and have a "real" timer that is independent from the game performance. Or add 1/60s every frame to the timer as the game will run with 60fps and be frame rate dependent. The later would need a system to detect longer periods of slight slowdowns or some big spikes of fps drops and invalidate the run.

Regarding the planned (dialogue-)cutscenes, I want to keep them as short as possible and in addition make them skipable. But there might be some mid-level moments of unskipable cutscenes but they will be just a few seconds long. Examples for this are these GIFs I posted on Twitter:

https://twitter.com/CatboyGame/status/1002935039003451392
https://twitter.com/CatboyGame/status/1005473694012059648

And yes I agree that we should focus on making just a fun game and not sacrifice things to please speedrunners but there might be some simple things you wish to be considered that have no impact on normal players or may even benefit both player groups.

Regarding instant drawing of dialogue text I was actually thinking about classical (but fast) letter by letter appearance for the normal story mode. But replace all text either with "..." or skip dialogues altogether for the separate speed run mode. Instant appearance might be a more elegant solution for the speed run mode.

As you mentioned to stop the timer during loading times. I was asking myself if it was a good idea to stop the timer during the result screen at the end of each level and give the player some time (up to 60s) to take a look at the stats and in case the full game runs will also count for the single level leader boards check the placement there. How about a (one-time) toilet break that could be taken during one of the result screens and expand the time out by some minutes. Too much of a comfort feature and possibly exploitable?

I also don't think the timer should pause when the player pauses the game in the middle of a level. Maybe the pause function should be disabled entirely inside the speed run mode.

@blueYOSHI: The current internal version has a result screen that shows how many % of collectibles and enemies you have collected/beaten. Regarding the gamepad it also supports DirectInput in addition to XInput in the newest version. But what is still missing is an option menu with free button config which might be necessary as DirectInput gamepads are not standardized. (It's on the todo-list either way, just not high priority right now)

Thanks for all the feedback!

blueYOSHIblueYOSHI likes this. 
  ShikenNuggetsShikenNuggets

"are they even a thing outside of emulator runs?"
Even something as simple as setting up a macro would make a run a TAS, so yeah, non-emulator TAS runs exist.

"add 1/60s every frame to the timer as the game will run with 60fps and be frame rate dependent"
Not a fan of the frame rate dependent timer (or making anything frame rate dependent at all, that's just lazy IMO). That only works if the frame length is always going to be exactly the same length every time on every system, which just isn't going to be the case. Even very minor frame rate fluctuations could cause the final time to be inaccurate.

"The later would need a system to detect longer periods of slight slowdowns or some big spikes of fps drops and invalidate the run"
Please don't do something like this. Invalidating a run because the game lagged is ridiculous.

"How about a (one-time) toilet break that could be taken during one of the result screens and expand the time out by some minutes"
This would not be a good idea. If the player is able to directly manipulate the timer, then I would no longer consider that timer to be accurate or viable for timing runs. Either all results screens should pause the timer, or none of them should.

Leaving the timer running on the results screen is fine as long as the amount of time the player has to spend on the results screen is consistent. Pausing the timer during loading screens is specifically so that someone with a better PC doesn't save time just because the game loads faster on their system.

AlayanAlayan, 6oliath6oliath and 3 others like this. 
  CoolHandMikeCoolHandMike

An online leaderboard sounds nice too. Sounds like you are concerned about hackers. I think it would be FAR MORE worth your time to polish and make the game as best as it can be then to concern yourself with possible hackers No one's bank account is getting harmed.

However just because there is a timer does not really mean it is impervious to lag, hacking, or post recording video manipulation. Nothing a developer can do will stop video manipulation. So RTA will probably be how things go in any case for speedruns, but having a good timer adds entertainment..

Also, cool looking cat! Would like to check out your game when complete! Do you have a Steam release page or something?

 
  emeraldalyemeraldaly

Quote

- What do you think about an ingame speedrun mode with a build-in timer and online highscore. I think it would be used by casual speedrunners but might be ignored by more serious ones that are used to their own time measurement tools and external ranking sites.

In-Game Timers are great, as long as they're accurate. Dunno about in-game leaderboards, seems like they (ironic as it sounds) might not capture everyone (i.e. people doing runs offline.

Quote

- Should the separate speedrun mode auto-skip all dialogues and cutscenes? Or is part of the challenge to save some milliseconds during dialogues by pressing the "next" button at the right moments?

Make cutscenes skippable (at the very least, once a normal playthrough is completed on the savedata), but auto-skipping is lame. It's not so much that it's part of the challenge (though I suppose it can be), it's more just that taking the game and bending it to our will is what speedrunning is about.

Quote

- In case the speedrun mode will be divided into a full game and a single levels section. Should the achieved level times from a full game run be counted for the single level rankings?

Absolutely.

Quote

- Right now the game has some RNG involved like the start looking direction of enemies and how long they idle and in which direction the continue to walk after idling. I assume it would be better to have no RNG involved in this matter so the enemies are always standing at the same point and looking in the same direciton as long as the runner has a similar pace. What the game already has is a constant random seed so as long as the player is doing the same actions in the same order all RNG events should resolve in the same way.

Ideally this is something runners themselves would figure out. Randomness in speedrunning is a double-edged sword. It keeps things interesting but quite often effs you over due to no mistake of your own.

Quote

- Currently it is easy to skip (almost) all enemies by dashing past them. Should I force players to fight all enemies. Either by make them more aware and reactive to dashing players or stop the scrolling of the screen if there are to many enemies on screen. During playtest events and exhibitions it was never a problem. Most players fought against all enemies without the extra incentives. And it might be ok for (non 100%) speedrunners to skip the fighting against normal enemies.

First of all, 100% speedruns are typically defined by collectibles, not enemies. It's whatever the game itself keeps track of (in most cases). Frankly, even if you "force" fights, there's a good chance we'll find ways around them! I would say don't build with speedrunning in mind on this sense. Just do what feels best for an ordinary player.

ShikenNuggetsShikenNuggets likes this. 
  emeraldalyemeraldaly

Quote

As you mentioned to stop the timer during loading times. I was asking myself if it was a good idea to stop the timer during the result screen at the end of each level and give the player some time (up to 60s) to take a look at the stats and in case the full game runs will also count for the single level leader boards check the placement there. How about a (one-time) toilet break that could be taken during one of the result screens and expand the time out by some minutes. Too much of a comfort feature and possibly exploitable?

Oh hell no.

Quote

I also don't think the timer should pause when the player pauses the game in the middle of a level. Maybe the pause function should be disabled entirely inside the speed run mode.

I think it would be fine to allow someone to willingly take a disadvantage, like pausing, but I agree that the timer should keep moving.

ShikenNuggetsShikenNuggets likes this. 
  HolyJesusTiTzHolyJesusTiTz

Bathroom breaks should not really be a concern unless the game is near 10 hours long like Final fantasy 10 for example or near 20 hours long like the Nemesis speedrun in Final fantisy 10. Also giving the benefit of the doubt the majority of people can go around 6 to 9 hours without having to use the toilet and this is of course assuming that they don't have bladder problems, however 6-8 hours is the usual work day i think depending on the job but from what i have seen usually 6 hours. However it is up to you but a toilet break feature could end up being exploitable due to glitches and or other in game mechanics as speedrunners will find that out and there is really not much you can hide from a speedrunner they will find glitches and stuff that not even the devs and or play testers would have caught in the limited time of testing a good example is Ocarina of time for the N64.

Also if someone wanted to cheat they would find a way to cheat even if they have the skills to beat the game normally and get first place. And a lot of times it takes more effort to cheat a convincing run than it would to actually do a run. Even more effort to do it while live streaming yet it is still possible and there are people that will do it despite it being easier and less effort to not cheat, and again no matter how strict a rule set is there are still ways to cheat without getting caught it would just take more effort like knowing the game in and out and some people would do it just because they like the challenge. Now before you say yes you can deter cheating all you want but you can not stop it completely as there will always be people that loves a challenge that should really spend their time in quantum physics instead of cheating a speedrun as they are really smart if they are convincing cheated runs to the point that not even the best cheater could tell if it is cheated.

And the cheating really depends on the game that is being cheated and the rules of the game as you can't cheat if you don't know the rules and this is mostly true when you are first learning a card game and a friend teaches you but in a competition like speedrun leader boards there are usually rules layed out. And ima stop here before i accidentally start up a cheating discussion.

 
  HessHess

don't force the all enemies things, people will just try to complete the game as fast as possible so just make it whatever makes the game best. if people feel like beating all enemies then there might be a 100% category