Skip to content

grunklejp/mmo-tic-tac-toe

Repository files navigation

Current goal:

  • design flow chart
  • generate random snapshotfile
  • read snapshot file
  • in dev mode, read from snapshot on startup on the server
  • build testing websocket client app
  • broadcast updates
  • fix snapshot size bug
    • what should size be? (4bytes sequence num) math.ceil((boardcount _ 9) / 8) _ 2 = 1,195,748 bytes
    • is server or client setting wrong size? server
  • store moves with sequence number
  • 🐞 after a long time x's start to overwrite Os, no clue why.
    • SOLVED: when loading the snapshot we were loading the Os in to the X bitset, thus flushing the buffer to disk wrote them back into the X's byte range. It was intermittent because if we didnt have a snapshot we'd never call loadSnapshot.
  • fetch delta
  • 🐞 fetching delta not working fast enough on page refresh
    • SOLVED: just needed to trigger a rerender
  • show "disconnected" message and button to reconnect (refetch latest snapshot and resync)
  • set team cookie
  • make move from the client
  • check win
    • don't let user click on boards that are won
    • don't let user click or submit for entire sections that are won
  • recursively check win & update state on the server
    • test this
  • define level specific updates for protocol
  • level selector
  • make levels show proper state
  • make non max level board not trigger a move
  • check for stalemate
  • clear boards recursively on stalemate
  • validate on server that users can only make moves on the highest level (6)
  • empty cells in won boards should be greyed out
  • cell tint color (i level < max_level) should be determined by number of number of wins in that section in higher levels
  • jump to correct board grid when clicking on higher level cell & highlight correct board
  • rerender screen when a board resets
  • stalemates cause scroll to update
  • team indicator
  • 🐞 clients aren't recieving messages that were sent just before connecting
    • test if this has been fixed
  • 🐞 higher level grids aren't aligned
    • need to assign boardIds based on the alignment
  • 🐞 memory on client continues to grow...
    • looks like it was cause by memory leak in react dev tools????
  • reverse levels & make playable level the default
  • only show tint on level 1 for users own team
  • make level picker mobile friendly
  • board search

POLISH 🇵🇱

  • pick more playful font
  • resize & center level 0 & 1 boards
  • dim all unplayable boards

For launch

  • write a "how to play" info icon
  • track player stats (cells played, wins triggered)
  • snapshot + syncing loading state
  • rate limitter
  • make live canvas of game state

About

A Massive Multiplayer Online Tic Tac Toe Game

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published