scale's People
scale's Issues
Create skeleton project in Unity
I suggest starting with a blank 2D project unless everyone prefers the idea of going 3d with this?
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.
Install unity test framework
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.