Here's the following design document which is closer to the Tune Hopper game currently available in the App Store.
As an upcoming developer for iPhone apps it would be best to read through this document and download the game here: http://itunes.apple.com/us/app/tunehopper/id466431933?mt=8#
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Tune Hopper Design Document 1.5
1. Tune Hopper
Game Design v1.5
Tune Hopper
Game Design v1.5
Overview
Game Design Overview
Game Board
Basic Game Play
Game Difficulty Levels
Game Difficulty Variables
Rewards & Scoring
Successful End of Song
Unsuccessful End of Song
Game Over
Maximum Potential Score:
Point Deductions:
Wrong Notes
Player Time
Food Rewards:
Game Sound Engine
Song Notation
This will follow a similar model to what we implemented in version 1.0 where music
composer will deliver pitch files and sound sets to developer for integration into the
game.
Sprite Animation Engine
Idle Loop Animations
Animation Assets Needed
Menu Design
Main Menu
Options
Share
Contact Us
Credits
Help
Album Select
Song Select
Level Select
In App Purchase Menus
2. In-APP Album Store
Wireframe Mockup
Testing Plan
Overview
Tune Hopper is a musical Simon Says Game that will offer players a rich sound scape with
progressively more difficult game play. Version 1.5 of the game will be based on the previously
developed 1.0 version. This document mostly describes the upgrades and changes from
version 1.0.
Game Design Overview
Game play involves these primary components:
● Game Board (AKA “Tile Floor”)
● Game Controller (Game Rules)
● Game Sound Engine
● Sprite Animation Engine (“Greg”)
Game Board
The Game Board (also known as the “Tile Floor”) is comprised of columns of 8 rows. The
number of columns will be determined by the number of notes in a song. In future versions the
time signature of the songs may change, however for this version Common or “4/4” time will be
the only time signature. As such columns will always come in groups of 4 in this version which
we will call a game measure. The total number of game measures is variable. Easy levels will
have 4 measures. Advanced levels can have more measures, up to 16 maximum. The number
of measures will vary based on the needs of a song.
The game board will always have exactly 8 rows, never more or less. Each of these 8 rows is
associated with a specific sound on a scale, herein called a note. Different albums will have
various instrument sounds used to represent each note.
An iPhone screen is 320 Points Wide by 480 Points High. The previous version of Tune
hopper had each note on the game board represented by a 40 x 40 point square which was
chosen to fit 8 columns within the iPhone’s 320 Point wide screen. As the previous assumption
that 8 notes needed to be visible at all times is not necessary and to enhance usability and
engagement in game play we are increasing the size of each square to 54 x 54 points. This
allows a about 6 note columns to be visible at any given point and an additional 48 points of
space for menu buttons and other eye-candy. The majority of this space will be located at the
top of the game board, only leaving a few points of eye-candy (the cupboard doors) on the
bottom.
3. As we are not currently creating an iPad optimized version of this game, discussion of the game
board as it relates to the iPad will be skipped for now.
Users can only ever interact with one column of notes at a time. Advanced levels of game play
will introduce the possibility of users playing “chords” of two or three notes simultaneously within
each column.
Greg, the animated Character, who hopped along the bottom of the game board previously, will
now hop along on the board as players play notes. He will start out in a blank column and then
hop from column to column, landing on the correctly played note’s square. This means Greg
will now need to hop with variable heights instead of the fixed height he used previously. In the
case of chords, Greg will hop to the lowest note in the chord.
As the game opens, Greg will hop from off screen left onto a blank column on the game board
where he will idle and wait. As Greg hops onto the board, we will fade the numeric value of the
current difficulty level in and out.
In the upper left corner of the screen we will display the maximum potential score for the level.
As deductions are made to the score during game play, we will animate the score’s display
down.
Game Controller
This is what sets and enforces the rules of game play.
Basic Game Play
Basic game play will follow this pattern:
1. Computer will demonstrate a sequence of notes.
a. Initially this sequence will only be one measure of a song.
b. In more advanced levels of play this sequence of notes can span two measures.
Sequences will never be any longer than 2 measures in length.
c. The computer will play back the sequence using proper timing/rhythm as
provided for by the game’s sound engine.
d. Depending on the difficulty level being played, the visual representation of the
notes will change, starting with showing all notes in the measure to not showing
any notes in the most advanced levels. (See discussion on difficulty levels for
details)
2. The game will then wait for a player to repeat the sequence of notes the computer
played. The game will always prompt a player which column on the game board notes
will be played. The prompt will occur by a column highlight.
a. If a player plays an incorrect note, player can keep trying to play the correct note
until they get it correct.
b. Each incorrect note played will deduct points from the player’s final score. Greg
will also be disappointed and will react accordingly as specified by the Sprite
4. Animation Engine.
c. If the player’s score drops to zero at any point during game play then they
immediately loose the level and must begin again.
d. If a player takes too much time to play a note then point deductions are made.
These deductions are based on the song’s playback BPM and the difficulty level
being played.
e. The rhythm a user plays will be ignored by the computer. While we expect
users to attempt to emulate what the computer played, their success or failure at
following the song’s rhythm will have no effect on their score.
f. When a player plays a correct note the game will prompt and wait for the next
note in the sequence and Greg will react accordingly as specified in the Sprite
Animation Engine.
g. When a sequence is completed, Greg will celebrate as we loop back to # 1
5. 3. At the end of the song, Greg hops off the board. A refrigerator opens up and throws
food at Greg. The amount and type of food is based on the number of points a player
has received.
Game Difficulty Levels
There will be 12 difficulty levels. Users must achieve at least half of the maximum potential
score achievable on any level of game play before they can advance onto the next difficulty
level.
User’s will see level difficulty described as follows:
Easy Levels 1 - 4
Medium Levels 5 - 8
Hard Levels 9 - 11
Expert Level 12
We are providing multiple numeric levels within each difficulty level of easy, medium and hard
so that users see a progression of difficulty instead of large jumps (except in the case of Hard to
Expert where a bigger jump is made).
Users will see both the numeric value and the text description of the difficulty level at the start of
game play. Users will see the level number displayed in the song select screen where they will
be able to play any level up to the maximum level number they have played for a given song.
After users have passed a certain level on a certain number of albums, the ability to play at
various levels will be unlocked (this gives users an incentive to buy more albums beyond just
wanting more music, though there’s no reason users have to buy more albums to unlock more
levels as they can always play through all levels starting at 1 for any album they have):
Passed Level 11 on 1 Album Up to level 3 unlocked on all albums
Passed Level 2 on 3 Albums Up to level 3 unlocked on all albums
Passed Level 4 on 6 Albums Up to level 5 unlocked on all albums
Passed Level 8 on 3 Albums Up to level 5 unlocked on all albums
Passed Level 8 on 6 Albums Up to level 7 unlocked on all albums
Passed Level 8 on 10 Albums Up to level 9 unlocked on all albums
Passed Level 11 on 12 Albums Up to level 12 unlocked on all albums
6. When this “unlock” event happens, users will be congratulated with “Congratulations! You have
now unlocked level 3 on all albums. Play more albums to unlock additional levels.”
Game Difficulty Variables
The variables we will change to make game play more difficult with include:
● Playback BPM
○ This is the speed at which the computer will playback the notes in a measure.
○ 1 quarter note = 1 beat
● Visual Representations of the notes
○ This is what the user sees on the game boar as the computer plays each
sequence
○ Starts at Highlight notes and stays lit and eventually goes to no highlights at all
● User Playback Time
○ This is how long a user has to repeat the sequence before point deductions start
accruing.
● Length of Sequence
○ Either 1 or 2 measures. Varies up and down throughout the levels
● Total Number of Song Measures
○ Starts at 4 and goes up to the maximum of 16.
○ Songs will be composed to be flexible enough that they can be cut off at 4, 8 or
16 measures.
See the Tune Hopper Variables Spreadsheet for details on what these variables will be set at.
New Scoring System
On 2/19 we decided to change the scoring model so that the score is no longer based on a
deduction system.
Wrong notes have a deduction of
Rewards & Scoring
During song play, Greg will celebrate for every correct note played. Every wrong note played
will be met with disappointment from Greg but he quickly gets over his disappointment and
focuses on the correct notes users play.
There are two components of rewarding users when they complete a song:
1. Points accumulated for levels and songs played
2. Food that Greg eats based on the points a user scores.
Players will want to score more points to make Greg happier with the amount of food he eats.
7. Scoring is based on the maximum potential score a user can accumulate for a given level. We
will make deductions from the player’s score based on the number of wrong notes they played
and the time it took to play those notes.
Successful End of Song
When a user successfully completes a song, Greg hops off the board to a refrigerator.
Displayed next to or above the refrigerator we see:
● Max Score: 0
● Your Score: 0
● Wrong Notes: 0
Greg is anxiously waiting for the score tally then...
1. Wrong notes animates up from zero to the number of wrong notes played by the user.
a. If there are no wrong notes, then the zero flashes in green and Greg celebrates.
b. Maybe some applause sound effects here?
2. The max score animates up and away from zero to the maximum potential score
available for the level.
3. The refrigerator door opens (happens during 2)
4. Food is thrown at Greg.
5. Greg eats his food and the point value of the food appears and floats up to the players
score.
6. The point value fades out as the player’s score animates up in value
7. Greg is done eating when all the food he will get from the Player’s final score.
8. If a user has achieved a new record score we will display the text: “Congratulations, you
have achieved a new high score!”
9. Once Greg is done eating, Greg will wipe his face with a napkin while the following
buttons fade onto the screen above Greg:
a. Play harder
b. New Song
If a user has played all difficulty levels, then the only option will be New Song.
When a user picks one of the menu buttons, Greg will hop off screen right as the screen fades
out and a new game board fades in.
Various sound effects will play in sync with the animation, to include:
● Max score & Player Score Tally Animation Sound (2 notes & triplet?)
● Wrong Notes Tally Sounds:
○ Applause if no wrong notes
○ Tally sound as we animate up from zero
● Refrigerator Door Opening
● Food throwing
● “Ding” sound as food point value floats up to player score
8. Unsuccessful End of Song
When a user completes a song but hasn’t achieved a high enough score to advance difficulty
levels, we follow a similar pattern as when players successfully complete a song but with the
following changes:
3. The refrigerator door opens
4. A food scrap is thrown at Greg.
5. Greg eats the scrap and the point value of the food (the player’s score) appears and
floats up to the players score.
6. The point value fades out as the player’s score animates up in value to arrive at their
total score.
7. We will display the text: “Score higher to advance.”
8. Greg will beg for more food as the following buttons fade onto the screen above Greg:
c. Try again
d. New Song
When a user picks one of the menu buttons, Greg will hop off screen right as the screen fades
out and a new game board fades in.
9. Game Over
If a Player’s score reaches zero at any point in game play, the game board will fade out (in
future versions maybe the game board will crumble or some other cool animation) while an end
of game sound effect plays. Greg will hop to the center/bottom of the screen and then cry.
The following text & menu buttons will fade onto screen centered above Greg while he
continues crying: (This happens together in 1-2 sec)
● Sorry, your score has reached zero.
● Play Again
● Pick New Song
When a user picks one of the menu buttons, Greg will hop off screen right as the screen fades
out and a new game board fades in.
Maximum Potential Score:
Each levels maximum potential score is the level number multiplied by 100 points. So level 1
has a maximum potential score of 100 points while level 12 has a maximum of 1,200 points.
Point Deductions:
Wrong Notes
■ Easy Levels: Point deduction of 5 points * Level Number
■ Medium Levels: Point deduction of 10 points * Level Number
■ Hard & Expert Levels: Point deduction of 25 points * Level Number
Player Time
Player Time is based on a threshold value, calculated based on the level of difficulty.
The threshold value is used to determine the number of seconds a user has to
complete a sequence before point deductions begin to accrue.
The formula for determing is the threshold value is:
Threshold = 60 / BPM * LV * N
○ BPM is beats per minute associated with the level’s playback speed
○ LV is Level Value which is a variable we can tweak to change the amount of
time. For instance in easy levels, LV is set at 2 giving the user double the
amount of time it took the computer to play the sequence or what works out to
being about 6 seconds
○ N is the number of notes in the sequence. For instance 4, on easy levels.
Any amount of time a user takes to complete a sequence beyond the threshold value
will incur the following points deductions:
■ Easy Levels: 1 point * Level Number * Seconds past threshold
■ Medium Levels: 3 points * Level Number * Seconds past threshold
■ Hard & Expert Levels: 5 points * Level Number * Seconds past threshold
10. Food Rewards:
Food will be thrown at Greg based on a user’s score:
● If a user has achieved a score higher than 0 but less than or equal to half the maximum
potential points associated with a level, Greg is thrown a “token” scrap of food. He
eagerly eats the scrap and then begs for more food. A player can then either play the
level again or select a new song to play.
● If a user has achieved a score higher than half the maximum potential score, Greg is fed
an increasing amount of food proportional to the score a player has achieved. A player
can advanced to the next difficulty level or choose a new song to play.
Rewards will be randomly selected to throw at Greg. We will throw up to 3 pieces of food to
Greg at level completion. We will round-off the player’s score and will loosely match the point
value of the food items we throw at Greg:
Food Item Point Value
Food Scraps Score up to ½ the maximum level
score
Candy/Cookie/Pretzel/Cupcake 100 points
Fruit 200 points
Vegetables 300 points
Pizza/Pumpkin/Cake/Eggs 400 points
Examples:
Player Scores 650 points We could throw Greg (randomly chosen):
● 1 Meal Item, 1 Fruit Item
● 3 fruit items
● 2 vegetable items
● 1 Meal Item, 2 Candy Items
Player is on Level 1 and Scores 43 Points. We would throw Greg a food Scrap Item.
Player is on Level 8 and scores 350 points. We would throw Greg a food Scrap Item.
(In both of these situations the player doesn’t achieve a score high enough to pass them on to
the next level so Greg only gets a food scrap and then begs for more food).
Game Sound Engine
The game sound engine will be upgraded to playback notes and sound effects using Open AL.
All music will still be played back using Apple’s AVAudioPlayer as it is the most efficient way to
11. playback MP3 compressed music files using the hardware decoder provided in iOS devices.
Open AL will allow us to play up to 32 sounds simultaneously, giving us much more flexibility
with sound design and fading multiple note sequences. It also gives us the ability to play chords
of notes.
Tune Hopper Game Play will utilize these sound elements:
1. Music Files - encoded as MP3’s that are played back as rewards for users when they
finish playing a song. These can be stereo files.
2. Note Sounds - 8 Mono sound files comprising an octave of sounds which will be mapped
to each note on the game board.
3. Sound Effects - Noises Greg Makes & other miscellaneous sounds - Recommend Mono
sound files.
The menus will have music and sound effects as well but these will be operated separately from
the game sound engine and will fade in or out as we enter or leave the menu subsystem.
Sound Effects will include:
● Button select sound
● Loading sound
● Creature sounds (based on user touch action)
Song Notation
This will follow a similar model to what we implemented in version 1.0 where music composer
will deliver pitch files and sound sets to developer for integration into the game.
Because of the added complexity of chords and 1/8th notes, pitch files will have the following
additions:
● All notes will be a half notes by default. - 4
● A single * is placed after the note number (or chord) for a quarter note - 2
● A double ** is placed after the note number (or chord) for an eight note - 1
● A single ^ is placed after the note number (or chord) for a dotted quarter note -3
● Multiple note numbers on a given line will be assumed to be a chord (up to 3 values per
line)
● Note numbers in a chord can be separated by a /
Example Measure:
1
2*
4/6
6*
8
This will then be manually converted to the appropriate in game album file format.
12. Sprite Animation Engine
AKA “Greg”
Greg has 3 major states of being:
1. Idle, waiting for action
2. Reacting to Game Play
3. Eating Rewards
Idle Loop Animations
1. Menu Idle
○ A random selection of idle animations to include waving at users.
○ When a user touches Greg he sticks out his tongue and then resumes idle loop.
2. Game Board Idle
○ A random selection of idle animations while waiting for users to play notes or
while the computer is demonstrating sequences
3. Waiting for Food Idle
○ While scores are tallying and in between food being thrown at Greg (like a puppy
eager to get it’s dinner)
Animation Assets Needed
Hopping animation will have a mock up of the jump arch in pitch tiles to decide how this will
look.
● Complete Waving Animation
● Dancing Hula Hoop (in game reward)
● Dancing Jig (in game reward)
● Somersault (in game reward, possible added to )
● Cart Wheel (changed animation from sumersault)
● Disappointed and begs for More Food (when he only gets a food scrap)
● Waiting for food (excited, begging for food)
● Wiping Face with a Napkin
Menu Design
Section to put everything associated with menus.
Discussion:
● Ability for players to start at different difficulty levels.
● Greg Hopping on and off of menu screens
13. Main Menu
Greg randomly hops on the bottom of the screen, from left to right and then loops back to left
side of the screen.
Options and share functionality integrated on this screen through separate pages for each. This
change has happened since there is no room available for pop-up integration on the main menu
Share
Functionality also leads to separate page due to no room available in main menu screen.
14. .
Options
Redoing functionality for Options to click to separate page with buttons, Contact Us, Credits,
Reset Game in a row on this page with two ON / OFF switches below these buttons:
switch to turn Greg’s sounds ON / OFF
No Musical Scale switch in 1.5 now. Just Greg sounds switch.
Contact Us
(click Contact Us button on screen after clicking options button)
15. Credits
(click credit button on Options page)
Won’t have Greg on this screen.
Reset Game(button in Options page)
(click reset button on Options page)
Yes / No pop-up
Won’t have Greg on this screen.
Help
(click Help button on any page except Main Menu)
(HELP TEXT)
_________________________________________
Album Select
Will follow same model as currently implemented. See wireframe under in-app purchase for
changes
Won’t have Greg on this screen.
Song Select
Remove Stars.
16. Aesthetic changes TBD, will follow basic model of current screen.
When a song is selected, will go to the level select screen. If you’re on level 1 we will go
straight to the game board and skip the level select.
Will show score and the highest level user has played. If a user has not played a level, we
won’t show the level played.
When a user has played all levels with a perfect score, we will highlight the score and level #
with a bold, blue (same color as bg of Play button) font.
4,560
Level 12
Won’t have Greg on this screen.
Level Select
Displayed when a song is selected to play
No level locking.
Won’t have Greg.
In App Purchase Menus
See section on in-app purchase
Won’t have Greg on this screen.
17. In-APP Album Store
This is where users can buy more albums to play. Users will access the store using the “Buy
More” button on the bottom of the album selection screen.
For reference, Apple’s Server Product Model works as follows:
18. Tune Hopper’s development server will use a combination of Amazon Simple DB, Amazon S3
and a PHP Store Script to be written for this application and run on a web server.
19. Amazon Simple DB will store:
● List of Product (album) Identifiers and a link to album icon located on S3 and song
preview file links
○ Plan to add additional data fields including description and artist name as well as
more graphics for v2
○ Pricing information will be stored and configured in iTunes Connect.
● List of receipt data for all transactions (receipts will be verified with apple before insertion
into the database)
Amazon S3:
● Repository for storing albums to be downloaded by users
● Secured so only our app can download files. App will only download if a valid
transaction receipt for the album is found in Simple DB. S3 login credentials will be
secured inside the Application’s compiled code. A hacker would have to break Apple’s
app encryption, decompile the app and wade through a bunch of machine code to find
the credentials. (It’s easier to pirate music, movies and TV shows on the Internet) We
could do something more robust but this provides an adequate amount of protection for
content that is only usable within this game.
● Each album will be a zip file that includes song sounds, music XML files and icons that
will be downloaded and uncompressed inside the app.
PHP Store Script:
● Validates transaction receipts and inserts into Simple DB if a valid transaction
● Recommend setting up a good PHP host at inappstore.tunehopper.com
All app downloads will happen in the background allowing users to continue playing the game
while they wait for downloads to occur. If a user exits the game before the download completes,
when the app next launches it will continue downloading album(s) in the background.
Insertion of albums into Amazon Simple DB and S3 will be a manual process.
Wireframe Mockup
20. The $0.99 button imitates the same functionality on the iTunes stores of turning into a green buy
now button that then sends the purchase to the apple iStore. Basically it has the same look feel
as all other app purchases.
We must indicate album difficulty thru max score on the album page preferable btn the .99
button and the album icon or under the album icon. Song should also list their max scores as
well before the play button.
21. Testing Plan
There will be 3 phases of testing
● Alpha 1 (Silona and Reuel to verify functionality, timing, etc.)
● Alpha 2 (Add 5 users last week of Feb)
● Beta (Add 10 - 20 users first week of March)
Bug tracking will occur using Bugzilla or similar to be setup on Eskieman.com