Giter Site home page Giter Site logo

just-smash-bricks's People

Contributors

parkercouch avatar

Watchers

 avatar  avatar

just-smash-bricks's Issues

Add special bricks that create an extra ball when hit

Add a different type of brick that will create an extra ball when it is hit/destroyed. It can be a different color or maybe just randomly placed in the grid. This will also be an experiment in how to implement different types of bricks in the future (like bricks that drop powerups, unbreakable bricks, bricks that move, etc).

Add varying level layouts

All the levels currently are the same layout but just increase in hp for bricks. It would be better if the levels had some variety in the shape (and strategically placed special bricks) so it doesn't get boring.

Initial idea is to just have lists of brick coords/type and use that to generate the level. (basically how it already is but with another piece of data with the coords)

Add github actions auto-deploy

To make it easier to update the live version of this project there should be a GitHub actions deploy step.

Acceptance Criteria:

  • Add deploy action to GitHub actions
  • Trigger deploy action when PR is merged with main
  • Make sure deploy action can be run without a merge if a deploy fails for spurious reasons

Convert project to Typescript

Mostly for my own interest, this project could be converted to Typescript. In doing so might need some refactor work, but that is for another time. All files and build step should be updated to .ts and type issues resolved. Avoiding any unless it would require significant refactor.

Acceptance Criteria:

  • All .js files converted to .ts
  • Update all type signatures (No any unless actually needed)
  • Integrate compile step with build system
  • Keep refactor to minimum (will refactor in another step)

Major Refactor

Since this was initially made in a time crunch, there was not a lot of thought in how to easily update this in the future and add more levels, etc. There needs to be a major refactor that will include splitting up large functions, moving things into multiple files/directories. The main goal is to have a bit more modular and testable code

Acceptance Criteria:

  • PINNING TESTS!
  • <100 line functions (ideally closer to 10-50 lines)
  • Separate files for different game levels
  • Game engine separate from menu, levels, assets, etc
  • Update to latest kontra if possible

Add build/package/bundler script

To make working on the project easier and to make deployment easier/automatic there should be a build step in this repo to deal with minifying code and bundling assets.

(This project will move to Typescript so keep that in mind when setting up the build step as some tools are easier to integrate with TS than others.)

Random Notes:
Probably need to decided between using vite to build or experiment with deno and it's packaging capabilities.

Acceptance Criteria:

  • Can call build script with (npm/yarn/deno/vite) build command
  • Packaged assets should be bundled in an output/dist directory

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.