This section is a tentative to-do-list for GamesmanUni from most important to least important.The latter tasks may directly or indirectly dependent on earlier one.Follow subtasks for decision and implementation process.
Unless said otherwise, all those tasks are for SDE team members.The order may change without notice.
If you are interested in working on one of these problems/updates,
make a PR with description at the top level below as issue title.
(Don't include the number since the order may change here!)
Write custom animation API.
Learn how to animate SVG with Web Animation API.
Let user save game as animated video using Web Animation API.
Figure out a way to do two ways data binding with Vuex so that user can live update the settings.
The problem is we need to call get set functions to update class objects right now, and you cannot change it directly whereas Vue's two way data binding syntax uses a single object for both directions of data flowing. So, somehow we need to bridge between the two. The hard code way is to make temporary objects for all the settings and option objects. But, is there a simpler way?
Implement a class for global app settings.
What should include in global app settings?
Current Theme
Current Animation Preference (On/Off)
Current Animation Speed (if On)
Where should global app settings button would go?
Upon clicking global app settings button, it should show the settings in popup like game options.
Decide whether to use internal or external authentification.
If so, just Google or also Facebook, Email, Microsoft, GitHub, etc.?
If so, implement cross-account protenction to prevent duplicate login by choosing unique id per user and let users merge accounts.
Implement computer player with its own profile using delta remoteness.
Choose random best move if there are more than one move with best delta remoteness.
Implement PVC and CVC game options for each game.
Decide whether user preference data should be save in either Google Drive or nyc server.
Update default themes so that texts are more readable and it is easy to eyes.
Use either cookies or local storages to save user preference data in current session.
Collect user feedback from GamesmanUni user on website.
Collect user feedback from GamesmanUni developer on GitHub.
Implement documentation for GamesmanUni.
Implement front end team (including design team) member page.
Figure out a way to streamline implementation of translations for global app settings, game options and data from back end.
Implement an option to let user build their own custom theme.
Add "Custom..." at the top of theme drop down list.
Upon clicking "Custom...", it should show up a popup where user can select custom colors and custom fonts with new custom name.
Should we also let user to add custom background image?
Implement animation API class controlling animation app-wide.
Rewrite VVH in SVG like game boards are written instead of using Canvas.
Let the height be the same as game board height.
If it goes bigger than game board, start scrolling bars.
Rescale the space between bars as the bars a.k.a remoteness grew.
Add ability to click previous move dot on VVH to undo back to that position.
Add slider next to VVH to animate going back and forth between past moves.
Decide whether to keep the same game options across games.
If so, they will be controlled by app settings.
If not, need to save as user preference data for each game.
Update game page.
Live Search Games
Masonry
Use those as NPM packages. Don't directly import them to HTML!
Filter System
Checkbox
You might need to work with back end on this one and manually keeping track of which games have GUI too!
Possible Options
Has Web GUI
Has Variants
Variant Count
Stable Backend Data
What else?
Update Update Page with profile picture of commit author(s).
Clicking on it should lead to author's profile!
Research how we can dynamically import class style components.
[Bug] Figure out the reason behind auto scrolling on mobile sometimes.
[Bug] Fix dropdown menu error in iOS.
Probably reimplement it using HTML select element instead.
Implement options for "Don't Show Next Move", "Show Next Move" and "Show Next Move Hint" probably with checkboxes.
Custom scroll bar styling for VVH and the whole page?
Make delta remoteness on default game board optional.
Let user enable or disable from game options.
Let users change font sizes.
Basically, set 100% at body for based font size. The rest of the font sizes are relative to this.
Then, adjust it dynamically via script for letting user change the font size.
https://stackoverflow.com/questions/891980/allow-users-to-change-font-size-in-a-webpage
Add ability to let user download current game board SVG as SVG or PNG or JPEG.
[Bug] After the language is changed, "open in new tab" script for external markdown component doesn’t work. How to make that script persist across different languages?
Implement color correction as accessibility setting in global app settings.
Is the repository README up-to-date?
Is the documentation up-to-date?
Are the external dependencies up-to-date? If not can they be updated without breaking existing code?
Has the member page been updated with current front end team (design team) members?
Do all the implemented games have instruction page completed?
[Design Team] Do UI/UX need updates for prettier interfaces and better user experiences?
[Design Team] Is there any game which is missing game logo?
Are all the existing games updated to work with new animation guidelines?
Is there anything that is breaking somewhere in the site?