Giter Site home page Giter Site logo

zots's People

Contributors

countgizmo avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

zots's Issues

Client side performance is not amazing

There's a noticeable delay after I click a zot on the screen. It's only client-side action + rendering without any network so it shouldn't have so much delay. Investigation is required. More info available in the notes.

Here's an extract from my dev notes:

There are ways to improve the current algorithm:

  • select targets better (don't include already surrounded cells)
  • stop filling as soon as any direction touches a wall

Need to check if applied that the surrounded status and walls marking mechanisms still work as before. This requires adding a more complex tests best on UI experiments.
UI experiments require additional UI hints (colors or added symbols). We need to see which cells are walls and which are surrounded. Then it should be easier to create test data manually by simply playing the game.

Then I can probably run time function against smaller pieces to find out where the slowness is.

Also, need to check the performance of react by using some browser tool. I have a suspicion that the engine re-renders the whole board instead of a small dot. It's probably easy to check if I decrease the board size - if the time decreases significantly - then it's that. But I guess debug tools will let me know how many renders we're doing after clicking on one dot.

Be HTTPS only before going live

Just follow these steps: https://www.troyhunt.com/the-6-step-happy-path-to-https/

I know it's not going to be a super important web app. I will not require to even login or register to play the game. But I do want to support the trend of converting all the web traffic to being secure. Also, it's not difficult these days at all and there are free certs providers. So I don't see no reasons NOT to do that.

Keep the player's color consistent

Currently the text for "Your Turn" and "Not your turn" keep changing color depending on who's turn it is. After playing a while it's getting difficult to remember which player are you. Especially if you have more than one game going. My idea is that if the color is consistent players will realize this and will know that it's their color and have a quick feedback about it.

Walls are not drawn correctly

I've tried to play a little bit with the test version of the game (client side only) and noticed that in a more complex scenarios the walls are drawn in a weird way sometimes.

A better approach is required. I already have couple of ideas in the notes but to track this we have this issue created.

Track game on the back-end (Datomic integration)

Currently the game is only happening on client side. It needs to be kept track of on server as well. For this I want to use Datomic, so the task also include installing, configuring and learning some basics of Datomic.
Should be fun.

Add a notification signal in browser tab

This feature was requested after test playing. In order to know when the second player made a move without staying on the game tab or keep switching to and from it I will show a small sign in the tab that attract user's attention. (*) will do for starters. I don't have a designer to create fancy icons so text should do.

Connect client-side to server-side

Currently all the actions on the client-side does not get propagated to the server.

We need several scenarios supported:

  • initial game creation;
  • loading an existing game;
  • making a move.

Start with EDN as a data format to make sure we can use all of the code (we can think about Transit in the future).

Create REST API

I need a simple REST API on the backend to support these functions:

  • get a new game
  • get an existing game
  • save a player's move for an existing game.

Increase the active area of zots for easier targeting

Zots should continue to look small (as per design) and nimble. But I want an invisible area to be added around each zot. There's a lot of empty space between zots so it shouldn't be a problem. And it will improve the UX a lot cause at the moment you really need to point your cursor accurately.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.