quasilyte / roboden-game

An indirect control real-time strategy game about robot colonies
https://store.steampowered.com/app/2416030/Roboden/
MIT License
429 stars 33 forks source link

XM Audio Glitching [possibly problem from ebitengine] #24

Open adlai opened 2 days ago

adlai commented 2 days ago

There are several scenarios where the audio skips, glitches, loops, or sounds otherwise undesirable; most notably, while still loading with the Splash Screen.

Some potential players might not be patient enough for tolerating such glitches, and conclude that music will cause the remainder to be "totally unplayable" rather than only occasionally glitchy.

adlai commented 2 days ago

I've not isolated yet whether this never happens when using the offline build; however, it definitely happens when loading the webassembly build from the itch.io site.

quasilyte commented 2 days ago

Hmm. Can you record a video reproducing this issue? Or maybe just an audio.

Also, can you try making a dev build for webasm that would use ogg instead of xm player? I'm using xm-only for web build do reduce the download size, but it was working with ogg before.

If it glitches with ogg too, then there is just not enough throughput in a single threaded Go (wasm context) for playing music and the actual game at the same time. I had better experience in Chrome than in Firefox, you can check whether it affects the results too.

The XM player is not part of Ebitengine, it's my own project, so it could have some issues (and I'm interested to solve them, if we can track them down).

adlai commented 10 hours ago

XM player is not part of Ebitengine, it's my own project

interesting, thank you for correcting me.

adlai commented 7 hours ago

Hmm. Can you record a video reproducing this issue? Or maybe just an audio.

I recorded half-minute audio of the music glitching during the menus, from the wasm build in Chromium; recording video is more difficult for me with my current setup. GitHub is not happy about uploading the Opus audio file, can I send it to you over Telegram or some other way? (contacting me on Telegram should be easy, same username))