RoanH / KeysPerSecond

A keys-per-second meter & counter. Written for osu! but should work for other rhythm games too.
https://osu.ppy.sh/forum/t/552405/
GNU General Public License v3.0
346 stars 28 forks source link

Visually Replay Events #50

Open Farerudesu opened 2 years ago

Farerudesu commented 2 years ago

i don't know if this is the right place for a suggestion but i made a github account just for this.

so anyway i think it would be nice if u can record the key presses and playback it later after playing and maybe save the replay into a File? as someone who had a bad pc this would be usefull. i can playback them later and record them using OBS so i wouldn't have performance drop while playing currently the savestats is the closest we can get

RoanH commented 2 years ago

This is the right place for suggestions yeah. Though I think your suggestion might be a little bit out of scope for this project. Essentially you want to record an extremely long macro. While recording is doable and playing it back while more challenging also doable there are some reasons why this will most likely not work the way you would want it to:

  1. Depending on your game, using macros might be a bannable offence.
  2. You would need to somehow sync up the replay with the game, even if you include the required actions to start everything in the replay, this might still not line up due to game loading time differences. This can happen especially when you are running something heavy like recording software.
  3. I receive key press events, but the timestamp attached to them might be slightly different and might also not be the exact time the game receives the same event.
  4. When playing back these key presses I again do not know when exactly the operating system will deliver them to the game.
  5. Running something heavy like recording software might still cause lag in the game causing the sent key press events to desync with the game.

Individually most of these will not be that much of an issue, especially if your game does not require very precise input. But overtime these two will likely desync more and more.

Farerudesu commented 2 years ago

i see. so it is possible but it will be out of sync overtime im currently using the osu!kps it has a record and playback feature in it. but i like this more so this can't be implented right ? or maybe u can somehow find a way to do it without it being out of sync ?

RoanH commented 2 years ago

I think I may be misunderstanding something here. I might be missing something, but I don't see anything in that program to playback the actual key events, only to visually show them again in the program. If it's just about redisplaying the keys that were pressed over time and not about actually hitting the keys again, then that's a completely different problem (and one that's a lot easier to implement and will not suffer from any desyncing issues). Actually firing the key events again as if you are pressing the keyboard keys again is not possible without desync for any program. That would be closer to the tools used to make a TAS which frame advance the game they are made for, which is not possible for all games (and even a TAS can still desync).

Farerudesu commented 2 years ago

yeah we might have some missunderstanding. when i say record that's actually what i meant it's just to show them visually so it can be recorded using Recording Software later after you finished the gameplay thank you for the explanation, anyway should i close this issue?

RoanH commented 2 years ago

Alright, glad that's cleared up then. Leave the issue open, replaying the events visually is something that I would be willing to implement. Though I'm extremely busy and rather far behind on my todo list for pretty much all my projects. So I can't give you an estimate for how long it will actually take before I have the time to implement this.