Published using Google Docs
BattleScripts TODO
Updated automatically every 5 minutes

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