Code Monkey home page Code Monkey logo

scale's People

Watchers

 avatar

scale's Issues

Create UI for gameplay

Gameplay UI will consist of a score, a combo display (i.e. hit 10 notes in a row) and 4 buttons that correspond with the rows of the fretboard. Buttons need to change colour when down but should return to unpressed and unselected state after press is released.
UI should be touchscreen compatible for mobile but there should also be keyboard shortcuts assigned to the 4 buttons so that the game can be played on a PC. It may be desired to configure for gamepad also which in turn could lead to custom controllers such as guitar type controller etc.

Make a plan: Game menu ui

When you start the game you will have to have a UI where you select some options (configurable controls etc) and with a button to start searching for an opponent.
Discuss this

Create balanced scale

Start with a simple asset of a shape (rectangle) and attach a script with public methods to adjust rotation based on weight on each side. It will require methods to add weight to either side. It may be worth in these early stages allowing for removing weight and resetting both sides to 0.
Create a public property that defines the maximum rotation angle allowed in either direction so that we can easily configure the animation later.

Create note asset

There should be a note pool.
A note should be created with a float distance to perfect publicly settable property. It should then look to the game manager for tempo and on fixedUpdate should reduce the distance to perfect property by the required amount based on the tempo. It should move this distance on the screen too.
It should have a private float that starts at 100 and reduces to 0 in the same time it takes to reach the perfect line.
It should have a method (Played) which will be called when the user plays the note. This method should look at the private float value and return the value to the caller.
Once played the note should be returned to the note pool.
It should have a public float property for the maximum value at which the note is playable. Anything above this value it is not played.
It should also have a public float minimum value (must be negative value) below which the note is classed as missed and will trigger a missed note event.

Discuss game manager

How will we take audio and be able to break it down to 4 timed columns easily. Does something already exist. We will also need some original music to avoid copyrights, royalties etc. We can probably create a few simple tunes easily with any of the "ultra superstar DJ audio creation tools" available for free.
Game manager will maintain local user score and display remote user score etc.. plus publish local gameplay to remote (via a server). The idea being that the server will record the user session so that if no real user is available to play against a pre recorded session can be provided. Simple file format for these sessions would be:

time(float) : notePlayed(int)
10, 1
12, 3
13.5, 2

etc.

Sessions should be overwritten so that only a certain number are maintained on the server... Don't want to go bankrupt.

Can we use Azure for this ? I think we should be able to use gRPC or rabbit for comms ?

Loads more to plan here.

create fretboard type asset

To run the height of a landscape screen, the fretboard will be where the notes scroll down. Basic function is that is will have 4 spawn points at the top to create 4 columns of falling notes, and a configurable perfect timing line near the bottom.
It should have a public method which will create a new note in one of the 4 columns (public void NewNote(int column) for example).
When it creates the new note the distance from it's start position to the perfect line. This distance should ideally be calculated one and all 4 columns should start the same distance away. Going by the idea of a vertical drop it should be easy enough to ensure they start at the same height.

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.