Coder Social home page Coder Social logo

supercilex / grocery_bagger_9000 Goto Github PK

View Code? Open in Web Editor NEW
7.0 7.0 1.0 3.53 MB

A Tetris-like puzzler with a twist

Home Page: https://supercilex.github.io/grocery_bagger_9000/

License: GNU General Public License v3.0

Shell 0.11% Rust 88.06% HTML 6.38% Python 5.45%
bevy game puzzle-game rust tetris

grocery_bagger_9000's People

Contributors

petersencw avatar supercilex avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

simrit1

grocery_bagger_9000's Issues

Ideas to make scoring more transparent

  • Change the color of placed pieces according to their score
  • Add a meter below bags that shows score or num blocks placed
  • Show +num_points every time you place a piece

Midgame ideas

  • "Candy" which is a single block to help players patch up holes. Could be doled out for doing well or maybe if the player is doing poorly. Case could be made for either. From the original doc:
    • Candy is awarded after a bag is completed.
    • Candy is unlocked with multipliers as player fills bag
    • Candy is 1x1 piece
    • Candy is rainbow, counts for any color, but not as additional colors
  • Power ups. You can have N of a certain power up at a time. Every M seconds you receive a power up. Power ups have a cooldown timer so they cannot be stacked (that is, you can’t use two slow times right away). If a power up lasts for X seconds, then the cooldown timer is X+Y seconds.
    • Slow time
    • Piece any piece from the conveyor belt (instead of just the front 3)
  • Trash/broken items. Some items could be grayed out (to mean they are bad) and need to be placed in a trash can or you lose a ton of points.
  • Express lane as a breather from longer levels with just one bag and one color.

Implement full blown level generator pipeline

Export level files and load them at runtime (probably baked into the binary though because web makes a request per asset and we don't want playability to be dependent on internet connection).

Stuff the files would contain:

  • Conveyor belt pieces
  • Robot
  • Bags

Bevy 0.8 upgrade

Keyboard input ideas

Original idea:

  • Left/right, A/D, Z/C to change the highlighted piece
  • Space, Enter to select the piece
  • It now appears above the center-left bag
  • ShiftA/ShiftD, ShiftQ/ShiftE to change bags
  • A/D, Left/Right to move the piece above a bag (and go to the next bag on wrap around)
  • Q/E to rotate piece
  • W/S, Up/Down to shift pieces into slots
  • Enter/Space to place piece
  • Esc to back up one step

Undo placing a piece?

People want this, but I have no idea how it interacts with the robot: the issue is that you can place a piece, the robot places on top of you, and now you undo which leaves a floating piece. Or we disallow undo after robot placement, but that feels inconsistent.

Generate level pieces at compile time

  • Doing everything at compile-time ensures everyone has the same experience.
  • Use a sliding shuffle for piece ordering. This makes sure pieces stay relatively close where they started so the level is easier to solve.
  • Use code to generate human readable and machine readable configs. The human readable format should probably use RON while the machine readable one should be bincode. Load machine configs for game as include file. Add golden test that verifies configs were generated from code. Include the seed in the config so it can be re-generated.
  • This would be a binary you run that has config as code and generates the persisted configs that are loaded in the game.
  • A bag of pieces would be selected from the set of all possible fillings.
  • See if bit manipulation can be used for the tetris solution finder (bag filling finder) instead of array accesses. Also check dancing links paper to see if they already solved this problem.

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.