ppy / osu

rhythm is just a *click* away!
https://osu.ppy.sh
MIT License
14.64k stars 2.16k forks source link

Make a game pause when alert window appear on iOS (or mobile) #12239

Closed HelloYeew closed 3 years ago

HelloYeew commented 3 years ago

Describe the new feature: This is not a new feature (or a new feature?) but I think when alert windows appear during play like battery warning or call, the game still run or continue in background. So I think

https://user-images.githubusercontent.com/68165621/113100865-2d382980-9226-11eb-9963-8dbe0d1032d0.mov

Proposal designs of the feature: Just make a game auto-pause when something interrupt the gameplay and A battery level warning like this (This game is BanG Dream!. This image is from r/BanGDream) image I think in osu!lazer just show a battery warning in game's notification center like 0% sound warning that you already have in game before.

Cublibre commented 3 years ago

Me and @marlinabowring would like to work on this!

bdach commented 3 years ago

@Cublibre @marlinabowring Note that we don't consider this feature to be particularly important (see the priority:3 label), but if you wish to take a look at this, it's probably safest to (re-)use GameplayMenuOverlay, to make sure that this low battery alert is visually consistent with other (fail, retry) menus.

Additionally I'm not too sure whether this shouldn't extend to desktop platforms as well, as laptop players do exist. Probably best to get some more opinions on that, as it might impact how this is implemented (namely, whether this overlay should be specific to the mobile projects somehow, or just be in the osu.Game project itself, and just triggered differently on each platform).

Cublibre commented 3 years ago

@Cublibre @marlinabowring it's probably safest to (re-)use GameplayMenuOverlay, to make sure that this low battery alert is visually consistent with other (fail, retry) menus.

We were thinking of opening the pause menu when an alert appears. Should we also show a low battery warning in the notification center when the battery level is low?

bdach commented 3 years ago

I'm not super sure off the top of my head if that will work. Notifications don't always immediately show when they're raised. I'm pretty sure it depends on a screen's OverlayActivationMode, and in gameplay that mode is Disabled when actual gameplay is taking place, and UserTriggered when gameplay is paused/a replay is playing/a break is happening. Both will suppress notifications from automatically showing, I think. Something to try.

Oh, and also a side note: do make sure to implement visual tests for this. Some sort of automated testing here is paramount since a low battery is not an easily manually testable state to achieve.

peppy commented 3 years ago

This should not be an overlay. It should be a notification at most, similar to other notifications for things like this.

Nothing should open. Just fire a single notification, debounced per game session (see the volume-is-zero notification for an example).

HelloYeew commented 3 years ago

This issue is merged in https://github.com/ppy/osu/pull/12330. So I close this issued.