allkaraoke
allkaraoke copied to clipboard
ToDos
Missing E2E tests
- [x] Song issue reporting/rating
- [x] Remote Song list new features - searching, filtering, adding to the persisting list, selecting directly
In-game features:
- [ ] Play applause (intensity based on score) after the last note (before a longer break?)
- [ ] Perfect/great/ok/poor on section end
- [x] Support for other than 2 players (1-6?)
- [x] Co-op game mode (points from each player sum-up)
- [ ] Make photos with the camera if it's accessible
Features:
- [x] Remote mic calibration to avoid it detecting background noise (either manual slider or "automatic")
- [ ] Store & Sync data with Google Drive
- [x] Playlist management
- [x] Step-by-step song conversion
- [x] Multi-microphone support
- [x] Control game via remote mic (maybe first check how often they are used)
- [x] Show newly added songs (detect when the user opened the app last and check what songs were added in the meantime)
- [x] Some way to get feedback (FB/Insta)?
- [x] Support for running in mobiles (eg. just 1 line of lyrics, force horizontal mode)
- [x] Show volume meter in game (so it's more visible if mic works)
- [x] Show players that still have to confirm readiness
- [x] A background music/sound and smooth transition to the song (eg this https://www.youtube.com/watch?v=a-AlJd3ttg8 and some crash once everyone confirmed)
- [x] Proper lag compensation mechanism rather than hardcoded values there are now
- [x] In Phone view, when Name input is empty and user clicks "Connect", it should focus the input
Bugs
- [ ] Fix SingStar mics on Chrome + Windows
- [x] Test on other browser - Firefox
- [x] More robust remote mics (reconnection mechanism)
- [x] QR code on the phone is not pointing to the game to which it is connected (making it useless)
- [x] Backspace/back button on Setup Mic on Song Selection should close the modal
- [x] Frequency detection on remote mic is not precise enough
- [x] In Phone, when refresh is requested, the whole view should be cleared before reload, so it doesn't look misleading
- [x] In Phone, after refresh and when the mic is auto selected its safe to assume that readiness will be requested - it could be displayed as soon as possible to reduce the lag
- [x] When entering Sing a Song, the first song is always selected (should be a random one; write a e2e test to detect future regressions)
Optimization:
- [ ] Optimize rendering for <1080p displays
- [x] Triangle particle as sprites for optimisation
- [x] Virtualisation of song selection menu
Technical:
- [ ] Refactor keyboard navigation so it uses contexts so that the "newest" context is controlling the keyboard - this way there shouldn't be a need to manually enable/disable leading to bugs where a keyboard control "leaks" (eg when you open QR Code modal on top-right the enter key clsoes the modal and is propagated to the menu beneath it)
- [ ] Refactor folders/files - eg "modules" folder, group input related code into single place, flatten "Game" scene (eg to select song/sing song)
- [ ] Create/extend documentation, eg on. inputs, remote mics mechanism (webrtc), events system, singleton gamestate ( + ADRs for why its like that)
- [x] Use self-hosted peerjs server (through fly.io)?
- [x] ~~Get rid of AubioJS to some JS algorithm https://github.com/peterkhayes/pitchfinder/tree/master/src/detectors~~
- JS only implementation is 3 times slower (1ms compared to 3ms+ for each computation). There might be faster ones, but the effort and risk of lower quality detection wouldn't be justified by just scraping couple of kbs of the bundle
- [x] Improve routing so it doesn't use hash
- [x] Create and use proxy for Sentry
-
[x] Refresh remote mic after each song - sometimes after Refresh of remote mic it's colour isn't updating
-
[ ] Mode to randomise songs across playing people connected with phones one by one and they can accept or decline - is one declines next song is select is both accept they start singing it