Giter Club home page Giter Club logo

gamebuilder's People

Contributors

alicelisisi avatar apsdehal avatar herbertli avatar maskyyoung avatar yangyangluo avatar yoav-zibin avatar

Watchers

 avatar  avatar  avatar  avatar

gamebuilder's Issues

No images displayed while building spec

In the latest update and as discussed in the class, GameBuilder does not display images for boards and pieces to save bandwidth. It was harder to create specs this way. User experience could be improved if we could show all the images again. One solution is to cache images. Professor also discussed another solution where we will save lower resolution images in firebase specifically for this purpose.

Use auth state to determine whether to call firebase or not

In some places, we are calling firebase for queries even before determining whether the user is logged in or not. Use auth's onAuthStateChanged event to determine whether the user is logged in (check if (user)), and then only start calling firebase.

Feature to upload all images for a game with a single click.

Currently GameBuilder only allows to upload images one at a time. Some games have quite a lot pieces and thus its very time consuming to upload dozens of pieces one by one. Adding feature to select multiple images and upload them with a single click would greatly improve user experience.

Issues with upload and modify

Hi,
I wanted to modified the games I created before.
Unfortunately it didn't allow me to do that.
Then I tried an alternative way to solve the problem by creating a new game.
But the GameBuilder is not working.

Lazy Loading

With the amount of data that is there in the firebase DB, I am currently making changes to restrict the images shown only to my uploads. Bring back rest of the dropdown menu filters like standard toggleable etc. by implementing lazy loading. This will require implementing pagination with firebase.

Load on demand

This is a direct solution for #25. Currently, everything is loaded in one go (all of the images, all of the board images, elements are loaded at componentDidMount for some elements). This is not ideal as the data is huge. Fetch only what is needed and on demand not before. This will help in showing images also as there won't be memory bloats.

User Experience

For example: The steps for creating games with toggleable pieces, and these toggleable pieces should be part of piecesDeck:

  1. Upload image for each piece.
  2. Create an element(toggleable) using these images.
  3. Create another element(piecesDeck) using the above created toggleable elements.

As user is performing same action again and again, user experience can be improved if above steps can be combined in some way. (Don't have any solution in my mind yet)

Remove unused code

At lot of places there is code which doesn't have usage anywhere. Preferably use chrome devtools Memory screenshots to find these left over hanging JS heap variables. This will help in recovering some memory and fix memory issues.

Remove dependencies on all Images

Instead of get an image data from all images sections and loading all of that in memory, instead uses Promise.all to get image data for each element.

This has to be majorly refactored in case when we fetch user uploads for elements. We need to remove all of the dependencies on all images and use only necessary stuff.

Issues Creating Game

As a game designer
I would like to submit a game spec
But an issue within the GameBuilder is preventing me from uploading my spec.

Steps to reproduce:

  1. Create a new spec
  2. Select game board "roulette_board.001"
  3. Place elements "roulette-wheel" onto spec, as well as 10 * the following elements:
  • roulette-chip-100
  • roulette-chip-50
  • roulette-chip-25
  • roulette-chip-10
  • roulette-chip-5
  • roulette-chip-1
  1. set the wikipedia link to https://en.wikipedia.org/wiki/Roulette
  2. set the game icon to roulette_wheel.024
  3. set the spec title to "roulette"
  4. try to submit.

What is supposed to happen
The spec should be successfully loaded into firebase

What actually happens
The UI presents with a simple error message, "unable to load spec"
Looking into console logs, it is a permission denied error - usually the result of some part of the request not adhering to one of the firebase rules.

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.