Thank your for playing! :)
Glad that you like it. It's a somewhat old project at this point. I might revisit it and polish it even further.
You're welcome :)
That the plan... initially. They had something come up and couldn't participate (like 1,5 days before jam start). We were initially awaiting a 2D artist to join as the 5th person (5 person team limit) so we didn't really bother looking for another dev... they never joined :). Welp. lesson learned, always have options and people ready beforehand.
Thanks for the appreciation. Programmer here :). Yeah we opted to only have a single mechanic (attack) with jump being a thought (I almost didn't implement it...).
I was very concerned with performance on the Web-Export but I think it runs well (apart from the usual shader stutters)... Maybe if I focused less on performance I could've managed another attack (like a simple dash/ram would've definetly been an option). <3
Not *much* difference at least when using the music file (it is also converted into an array of NoteData (custom class with some data like start_time, frequency etc)).
This array is checked every physics_frame (though the whole array is split into the 4 bins for the 4 lanes first, so there are maybe like 90-ish notes per bin per physics_process frame to check). For larger songs this could lead to problems but for this it worked fine :)
I think it might even be less prone to lag issues, at least the way we did it.
This way, the notes move always in sync with the music, if the music skips/lags, the visuals will also skip/lag.
This approach might lead to performance issues with very large songs (lots of notes), but for us this worked. For note detection we don't use physics at all btw, we just check if the note is withing a given timeframe of their start time. i.e.:
var min_time = note.start_time - tolerance_time
var max_time = note.start_time + tolerance_time
if current_playback_time >= min_time and current_playback_time <= max_time -> then note is hit
Thanks for the kind words! :)
About the missing the notes part: On web (hopefully only on web...) there is a bug with the AudioStreamPlayer playback duration (i.e. when you read how long the AudioStream has been playing). It sometimes jumps to 100% duration and then quickly fixes itself. This however is enough to trigger all notes as failed (and thus unhittable...).
Reading the playback duration is a pretty new feature on web (>4.3, so 4.4 dev/beta) and it seems there is still some bugs to iron out there :).
Thanks for playing! It indeed was quite the challenge to get three minigames ready in time.
About the rhythm game: No you're not the only one, a few people already mentioned that they don't know when to hit the notes. Most tried to hit when the note reached the pipe... oh well :). Lesson learned for another time!
Interesting concept that could be expanded further. Feels like a mix of 90s First Person Point & Clicks (Myst, Dracula etc), Flash Escape Room Games and the physics interactivity of Penumbra/Amnesia.
Here are some notes:
All in all a great entry though. Would love to see either a full point & click adventure with this mechanic sprinkled in, or a full game with this mechanic :)