[SUG] Turbo FF speed

Started by jkapp76, May 29, 2023, 05:06:19 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

jkapp76

Sometimes it would be nice to have a faster FFWD option. The same speed as Rewind would be great, that is a nice speed. (IMO)

I believe Super Lemmini too offered an option for faster FFWD speed. Something like this would leave it up to the player and could even have multiple speed options.

...Jeremy Kapp

WillLem

#1
Agreed, Turbo FF would be a good addition.

Implementation idea: a hotkey would switch Turbo mode on, then the FF button/hotkey would trigger the faster speed instead of the normal FF speed. The button graphic could change to 3 forwards-arrows >>> instead of 2 >> to indicate that Turbo mode is active.

Some concerns: FF speed is sometimes inhibited by graphics rendering. Switching off HQ minimap fixes this, for the most part, so maybe Turbo mode would have to deactivate the HQ minimap to be noticeably faster. Not sure if this is possible to actually do in-game, but I guess we can find out.

Another approach would be to have Turbo mode move the game forward at a certain speed regardless of rendering needs, which would make the speed always the same, but would result in frame-dropping/forwards-skipping, depending on how heavy the rendering load is. This would be a lot more work to implement, but I'm looking at this approach as a possibile solution for the upcoming Superlemming speed anyway, so it's worth taking the time to investigate it.

Incidentally, Rewind has actually been slowed down a touch for the next update, because I wanted to mitigate panel glitching. Using a TTimer to handle the skips achieves this, but the skips have to be less frequent to prevent other time-related bugs. It's still fast, but is now slightly slower than the current FF speed.

jkapp76

That sounds good.
I'd personally be plenty happy with a simple version that adds a check-box to settings like (Faster FFWD Speed)
or something.
But fancier is okay too.
...Jeremy Kapp

WillLem

Quote from: jkapp76 on May 30, 2023, 01:23:30 AM
I'd personally be plenty happy with a simple version that adds a check-box to settings like (Faster FFWD Speed)

Tbf, if I'm going to make the effort to include a Turbo speed at all, it might as well be made available from in-game :)

Then again, if the minimap display can't be changed from HQ to standard whilst in-game, then a config option might be the better way to go anyway.

WillLem

Turns out the HQ minimap can be switched on and off in-game, which opens up a number of possibilities.

Superlemming mode already deactivates the HQ minimap, and we can also have FF and Rewind do the same - the reason being that rendering the HQ minimap takes a lot of graphical resources and tends to cause severe lag issues on slower systems, or on larger levels. Deactivating the HQ minimap whenever graphical resources are taxed elsewhere can help mitigate this.

It also means that Turbo FF can absolutely be toggled in-game, with no need for a menu option (although there's no reason a menu option couldn't also be added for those who'd prefer to always use Turbo FF).

Investigating this further, and seeing if we can overlay the FF button with a different graphic when Turbo FF is activated.

WillLem

#5
OK, we now have this!

Fast-Forward and Turbo-Forward are two separate modes, each with their own hotkey. The former is the usual FF speed, the latter performs repeated +7 frameskips every 40ms; no good for fine-editing a replay, but great for quickly advancing play to a later point whilst still having a decent amount of start/stop control.

Both also toggle off the HQ minimap for better graphical performance.

Furthermore, in Options, "Activate Turbo Fast-Forward" will set the FF button to always activate Turbo speed. Meanwhile, with this option enabled, the FF hotkey continues to activate vanilla FF speed as usual.

It's also possible to switch from FF to Turbo and back by using the hotkeys and FF button. Whenever Turbo speed is active, a dedicated button selector graphic is drawn over the FF button, so it's always clear which speed (FF or Turbo) is currently active. Here are a few examples to show how each speed responds to input:

Normal > [Turbo hotkey] > Turbo > [FF hotkey] > FF > [FF hotkey] > Normal
Normal > [FF hotkey] > FF > [Turbo hotkey] > Turbo > [Turbo hotkey] > Normal
Normal > [FF hotkey] > FF > [Turbo hotkey] > Turbo > [FF hotkey] > FF > [FF hotkey] > Normal
Normal > [Turbo hotkey] > Turbo > [Turbo hotkey] > Normal > [FF hotkey] > FF > [FF hotkey] > Normal
Normal > [Turbo hotkey] > Turbo > [FF hotkey] > FF > [Turbo hotkey] > Turbo > [Turbo hotkey] > Normal

When using each hotkey (or the FF button) without speed-switching, the game speeds simply toggle on/off as usual.

Implemented in Commit eea3f7178