fishfolk / punchy

A 2.5D side-scroller beatemup, made in Bevy
https://fishfolk.github.io/punchy/player/latest
Other
259 stars 30 forks source link

Poor performance in Firefox #283

Open odecay opened 1 year ago

odecay commented 1 year ago

Description

The game framerate and sound effects both seem to exhibit considerable stuttering when played in Firefox. I hadn't noticed this in builds previous to v0.2.0.

Performance seems fine in Chromium.

Maybe we are passing around too much metadata now? or maybe there is some other simple thing which didn't make itsself apparent. Not sure the best way to do web profiling but it may make sense to do some general performance profiling.

To Reproduce

Play https://fishfolk.github.io/punchy/player/v0.2.0/ in Firefox

Expected Behavior

no stutter

Additional Context

It may be helpful if others could test and report whether they have stutter in the current build above and previous web builds found on the releases page https://github.com/fishfolk/punchy/releases

Log Messages

No response

zicklag commented 1 year ago

To profile, you can open the dev tools in Firefox, go to the performance tab, and start recording.

For me the gameplay seems somewhat smooth, but the sound playback is horrible. I have never actually been able to get sound to play well in Firefox before, and if it's slowing up the game frame rate for you, maybe it's related to sound playback.

I feel like it's not something major in the game itself, but something fundamental to the way Firefox either handle's audio playback or something like that.

You may want to disable the sounds and see if you still have an issue.

Maybe we are passing around too much metadata now?

I highly doubt it. The assets are loaded once and then put into pure Rust structs, with no extra penalties for data access at that point, especially for the data that we copy directly into a Bevy component and don't access with the handle. I could doubtless still be wrong, and I'm no performance/profiling export, but it also doesn't look like there's anything suspicious in the Firefox profile.