Git Product home page Git Product logo

atoms-beats-and-eats's People

Contributors

gtakpsi avatar mynameisnotpa avatar namethatfollows avatar tlight6 avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

atoms-beats-and-eats's Issues

Keyboard Controls for Level Select Menu

The player should be able to use the keyboard to navigate the level select menu.

Left/Right Arrows: Navigate through the levels left and right
Up/Down Arrows: Navigate between practice and play
Enter; Launch practice or play

Hamburger Art

We need art for these items:

  • Hamburger bun (bottom)

  • Hamburger patty

  • Hamburger bun (top)

As a reference, the art would look similar to this:
Reference

Scoring

Currently, the game does not keep the player's score. We want to fix this:

Create a new ScoreManager. This class keeps a list of HIT_RESULTs.
The Hit event of Engine gives you a HIT_RESULT when the player hits or fails to hit the button in time during a recipe.

ScoreManager should be able to calculate the player's total score as a percentage (from 0 to 100). A 100 result would be a list full of HIT_RESULT.HIT. A 0 result would be a list full of HIT_RESULT.MISS.

So, when calculating the total score, for each HIT_RESULT, a result of HIT adds 100 / (length of list) to the total score, a BARELY adds 50 / (length of list) to the total score, and MISS adds nothing.

Make new Recipes

There are several new images for recipes uploaded in the project Resources folder.

You can make new Recipe objects for these images and assign a beat map to them so that level designers can use them to vary levels.

See the existing recipes in Scripts/Recipes for examples.

Level Select Menu Background

The level select menu will be a ticket carousel.

image

We should have one ticket facing the 'camera' that we will put the level information on.

Make the Restart button work

In the PauseMenu, currently nothing happens when you click the Restart button. We want clicking this button to restart the level.

I expect this to only take one or two lines of code. Make sure nothing gets messed up when the level restarts!

Chef Art

The chef is the player character in the game. As such, it will be the most complicated set of sprites in the game. The chef will be behind a counter for the whole game, so will only need to be drawn from the waist up.

The art style for this is much like the UPA cartoon style. The chef is dressed in the typical soda fountain fashion.

As for shape, the most similar character design I have found is the chef's asset image in the game files.

For the chef, we need these sprites:

Minimum:

  • Standing (idle)

  • Slipping (Unsteady tripping pose, this will show when the player fails to hit an ingredient in time.)

  • Adding food to plate (Facing left, upper arms down, lower arms forward)

Optional: (Each of these is not required for release, but will give us more options and make the game look super cool. Each of these is only one frame/pose.)

Keyboard controls for Pause Menu

Pressing Enter should select the currently selected option in the PauseMenu. Pressing up or down on the keyboard should cycle through the currently selected option in the PauseMenu as well.

Note: Each time you open the pause menu, the selection should start at "Resume".

Level Select Menu Backend

The level select menu should be able to call level scenes. It should also be able to display if a level is locked.

For the backend, we just need a scene that can load other scenes. The other scenes will go back to this one when the quit option is selected on the pause menu, and when they are done.

There will also be a static class that holds on to which levels are currently unlocked.

Add support for button holding recipes

This issue deals with the backend, so will be harder than the other issues to finish.

Currently, we can only make recipes out of HitEvents, which limits us to the player only having to tap the spacebar.

We want a new event, a HoldEvent.

This event will have both a start and end time.
It first checks to see if the player presses the key within leniency on the start time. After that, every tick, it checks to see if the player is still holding the key. It also checks to see that the event is released within leniency of the end song time.

If all requirements are met, it has succeeded and it is done.
If at any point the requirements are not met, the event is failed.

To handle the key being held down, let's have a public function of engine, getKeyPressed().

Data Persistence

https://docs.unity3d.com/ScriptReference/PlayerPrefs.html

We can use PlayerPrefs to store the data for the game.
At the start, only the first level should be unlocked, and all games should have a 0 high score.
We should have a way to unlock the next level from within any level.

If the player gets a score above 70, they will unlock the next level. I will be putting the function call for this in the game, we need a way to actually unlock the next level (preferably calling the function of some static class).

The data storage could be a static class so that it can be accessed anywhere, and interface directly with PlayerPrefs to get and load if a level is unlocked or the high score on a level.

Functions:
is level unlocked
get high score for level

set high score for level
unlock level

Ingame Music Track #1

We need a simple, short music track with a steady, strong beat for the ingame music.
It shouldn't sound too futuristic, it would be awesome if it sounded somewhat old-timey, in fact. For example, electro swing or rockabilly would be super cool.

The song length should be a little less than 1 minute. The BPM should be about 100 - make sure it's a whole number!

Make Orders maintain OrderResult properly

Currently, Orders only can have ORDER_RESULT.SUCCESS or ORDER_RESULT.FAILURE. We want orders to have ORDER_RESULT.BARELY if one or more, but not all, recipes were successfully made by the player.

Gamepad Support

Now that we have keyboard support, we can add in gamepad support.

This was originally a stretch goal, but hey, we're ahead.

Acceptance Criteria:

  • Can press X to hit HitEvents
  • Can pause with Start
  • Can navigate pause menu
  • Can navigate level select screen
  • Can press B to back out of level select screen to main menu

Feedback for pass/fail HitEvents

When a HitEvent is passed or failed, we should show some sort of feedback to the user.
It's up to you to decide what that would be like, maybe a flash about the player character or something.

Ingredient Art

We need art for hamburger ingredients.

Some examples:

  • Lettuce

  • Tomatoes

  • Pickles

  • Ketchup

  • Mustard

  • Onions

As a reference, the art would look similar to this:
Reference

Customer Art

Art for a Customer consists of three sprites:

  • Standing (ordering)

  • Running, left foot forward

  • Running, right foot forward

These will be used to animate the customers.

For MVP, we need one customer. Ideally, we would have multiple variations, but only one is certainly viable.
Example

Make Quit Button Work

In the PauseMenu, currently nothing happens when you click the Quit button. We want clicking this button to Quit the Application.

Only 1 line of code, but requires the application to be built and run (File -> Build and Run) as it will close the application and that won't happen in a play test.

Pause menu Sound Effects

We want sound effects to play when:

  • The player opens the pause menu

  • The selection in the pause menu changes

  • The player selects an option in the pause menu

Main Menu Music

Music for the main menu.

A quiet love song/doo-wop 50's track.

Background Art

We need the background of a diner for the game setting.
The image should be about 16:9 aspect ratio so that we can show it on most screens.

The left side of the image is the seating area, the right side is a kitchen-like area which will have a counter in the foreground. Customers will walk from the left to the center and order at the counter. The player character will be behind the counter.

Example art style references:
1
2
3
4
5 (Kitchen)

Create TripleRecipe

Create the code for a Triple Burger. A Triple Burger requires the user to press the button 3 times: on beats 2, 3, and 4.

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.