BattleScripts TODO
Features To Do Before Release | |||
Area | Item | Priority | Status |
UX | Don't expose user's email address when using auth0 login. Figure out how to retrieve actual name, or hide the email. | H | DONE |
Branding | Branding: Establish official logo, colors, etc. | M | WIP |
Server | When a game is published, dynamically generate a social share image for the game from the template and game thumbnail. | M | WIP |
Server | Implement a more efficient leaderboard update process, instead of using a round-robin of all players (very inefficient and causes many games to be played). Consider a Swiss-style tournament, or perhaps a custom format that allows new players to quickly climb the leaderboard if they are good, by starting with the existing ranking and putting new players at the bottom. | M | |
Server + UX | "My Profile" in user menu with editable user details | M | WIP |
Player Editor: Show all user players for a game in the Opponents dropdown, to test a new player against one of their existing players | DONE | ||
Server | Allow a user to create a game from an existing game ID, to create another game similar to an existing one. | L | |
UX | Allow sorting of game list by name and/or difficulty. Default sort easy to difficult. | L | |
UX | Game Editor: Allow game runner to be resized or inspector minimized to focus on game rendering | L | |
UX | Consistently refer to players 1 and 2, not 0 and 1. Everything user-facing should show 1 and 2, even though players is an internal array with players [0] and [1]. | ||
Bug: When game editor launches, it runs two copies of the game simultaneously that overlap each other. | |||
Social | Create Facebook Page | ||
When creating a new game, allow the user to upload images. Perhaps store them as buffers in another Dynamo table? Or write them out to S3 using presigned urls? | |||
UX | Add warning of unsaved changes when navigating away from player or game editors |
Technical Debt | |
Item | Status |
Modularize components for reuse across screens | |
Implement Vite for build | |
Pull CSS out of individual pages and into common css files for better organization | |
New API to get "my players" for a specific game, not all games, for player editor opponent list | |
Add check for origin location in postMessage messaging API? | |
Create Game from Template id | |
Site: Warn user if using outdated browser that is not capable of running BattleScripts | |
Improve tooltip component so it never positions off screen | |
Game Editor: Only light up Save if logged in | |
Document "errors" attribute in GameDirective. Internal, need to revisit this part of the API/json. | |
Check for random id generation collisions, just in case | |
API throttling, including how many players a user can create, etc. | |
Add minlength check to attributes in API |
Games To Make
Pente
Elevator Action
Battle Tanks
Blockade?
Catan
Stratego
Future Features / Fixes | |||
Show leaderboard trend for players, moving up or down in the last 24 hours | |||
Email updates to users about leaderboard results? | |||
Test the idea of running a player in a different language, in an environment that would support multi-languages | |||
Allow players to create their own games and run matches/tournaments against friends in their browser - no security concerns, no AWS charges | |||
Let players share their player/code with someone else using a secret link or code? | |||
Organization vs Organization tournaments (call them League / Teams???) | |||
Should games have access to a standard library of util functions that are shared, rather than being duplicated in every game? | |||
Mobile App - Jus to check on your place on leaderboard etc, not to write player code. | |||
Organization Leaderboard | |||
Alexa integration to check on leaderboard status? | |||
Should the front-page game be something other than TTT? Maybe more of a single-playerish "beat the level" kind of game? |
DONE | |||
Player Editor - Finish state tester - Add error-checking and pop up MessageError. | DONE | ||
My Players: Delete | DONE | ||
My Players: Unpublish | DONE | ||
Social: Make sure that the "preview" looks good when sharing the site on Facebook etc. Use the proper meta tags in the HTML. | DONE | ||
Site: Make sure the user badge is in the upper right on every page, a home link is in the upper left, page layout and design are consistent, etc. | DONE | ||
Leaderboard: Make the pages look good | DONE | ||
Leaderboard: Display matches in match viewer when clicked | DONE | ||
Match Runner: Standardize media icons (play, pause, etc) using images or svg because they look ugly in chrome | DONE | ||
Add some help to Player Editor functionality - TITLE tags, tooltips, etc | DONE | ||
Add "Last Updated" on each Leaderboard to know when they have been refreshed | DONE | ||
Add a "BETA" banner to the top of the main page to tell users that this is a test version and all players/games may be removed before release | DONE | ||
Handling of re-auth when the token in sessionStorage is not quite right. When the token is expired it gets rejected by the API and the code tries to re-auth with Auth0 and store the refreshed token, but for some reason this doesn't always work right. | Temporarily Solved | ||
Fix the "Play" button on match runner interface | DONE | ||
Fix how the game runner uses up its space - it leaves a gap for some reason | DONE | ||
Create a user table to store users locally and map to auth0 users | DONE | ||
Handle popin/popup of game viewer on leaderboard page | DONE | ||
When viewing a match record, the game list pushes over the game display. Instead, the game display area should shrink a bit. | DONE | ||
"Play" when viewing a game plays a new game rather than re-playing the selected game. | DONE | ||
Editing player code should re-run the Move Tester as well | DONE | ||
"paste" link by Game State in Move Tester, to copy current game state as shown in the game runner | DONE | ||
Add tooltips all over, especially in editors | DONE | ||
How will users know which player theirs is in games, like if they are X or O? | DONE | ||
"Create Game" shouldnt have publish enabled until save. Might be picking up template game id 0? | NA | ||
Make a hamburger menu instead of just the profile picture | DONE | ||
Add "My Players" to game info page | DONE | ||
Unit Tests for players | DONE | ||
Filter objectionable / non-ascii content from player names, descriptions, etc. | DONE | ||
Game Editor: Make markdown editors wrap | DONE | ||
Player Editor - Make sure errors are shown properly so users know what to do if they have a problem when saving, etc. | DONE | ||
Players - Only allow users to publish one player for each game. If they have a previously-published player, make them unpublish first. | DONE | ||
Make editor panels scrollable and make sure main window doesn't scroll. | DONE | ||
Game Editor: Opening match runner in new window doesn't display the inspector panels | DONE | ||
My Players: Deleting a player should remove the row | DONE | ||
Fix "delay between moves" setting - it is broken | DONE | ||
Connect Auth0 to prod | DONE | ||
DNS entries for api.battlescripts.io and api-beta.battlescripts.io | DONE | ||
Switch API to use based on url | DONE | ||
Switch S3 data bucket name for DEV/PROD | DONE | ||
Check to see if all Dynamo indexes are created during deploy | |||
Switch to Node 16? | NO | ||
Extend timeout on leaderboard Lambda | DONE | ||
Create a battlescripts-dev AWS account and deploy beta there | DONE | ||
Don't allow publish if code contains console.log, aws calls, etc. | DONE | ||
"How It Works" page / Architecture diagram | DONE | ||
Move to dedicated AWS account | DONE | ||
Fix editor resizer quirks, drag doesn't work over the editor iframes? | DONE | ||
X to close a Green message is Red | DONE | ||
Add vm2 or other security check for player code | DONE | ||
Overall leaderboard by user, considering all games | DONE | ||
Handle token expiration correctly | H | DONE | |
Add overall leaderboard to home page? | DONE | ||
Add "Difficulty" field and display to all games (1-5) | DONE | ||
When running leaderboard, count the number of players and write that out in the index file, for display in game list. | DONE | ||
Make more mobile-friendly | DONE | ||
Game: Isolation | M | DONE | |
Content | Game: Othello | H | DONE |
UX | Allow games to have "slugs", or friendly names like "tic-tac-toe" instead of referencing them by id. When games are published, write out a file to their slug url which will also be usable for social sharing. | H | DONE |
UX | Allow players to be marked as Test players to show up in the Player Editor. These should be defined in the Game Editor. Or perhaps always allow the two test players to be playable. Give them names. | H | DONE |
UX | Allow selecting of test players to run against in Opponent panel. By default, run against the game's default opponent. | H | DONE |
Content | Game: Ultimate Tic-Tac-Toe | L | DONE |
UX | Force title in editor screens to never wrap | L | DONE |
UX | Player Editor: Allow user to pick if they want to go first or second | L | DONE |
UX | Make auth popups look better | L | DONE |
UX | Game Editor: When working on rendering template/code, errors should be shown in the display to help with debugging. | M | DONE |
Source | Separate battlescripts-platform repo into battlescripts-api and battlescripts-website | H | DONE |
Auth | During the login auth process, change the login badge to show that something is happening with a spinner etc | DONE | |
Fix editor hints to not suggest TypeScript etc. Make it clear that it should be ES20xx? | DONE | ||
Content | Update Game Template with better boilerplate code | H | DONE |