Peggle
Basic Controls and Goal
text
Implemented Features
Core Functionality (all levels) | ||
Ball Shooting | When mouse button is pressed (1 mark), ball shoots towards mouse (2 marks). | |
Ball aiming constraints | Shooter can only be aimed within the 120 degree range pointing toward the bottom of the screen (2 marks). If the shooter is aimed outside of this range, it clamps to the edge of the range and shoots at the clamped angle (1 mark). | |
Ball movement | Ball follows a ballistic trajectory, i.e. like a ball thrown through the air (1 mark). | |
Ball collisions | Balls collide with the buckets and the environment/side of the screen (1 mark). | |
Peg collision | Pegs disappear after a collision with a ball (2 marks). Pegs that have collided with a ball only disappear once the ball has come to rest in a bucket (i.e. at the end of a "turn") (1.5 marks). Pegs that have collided with a ball visually show that they have been hit and can still be collided with, until the turn is over (1 mark), or if 3 seconds have elapsed since it has been hit (0.5 marks; to prevent the ball getting stuck in the level and never reaching the bucket). | |
Next turn | The next ball can be shot only once the previous ball has come to rest in a bucket (1 mark; +1 mark for detecting ball is at rest for a short period of time, and doesn't incorrectly trigger when at velocity is low at the "top"/peak of a bounce). (Note: Removed the requirement in this item about "5 seconds") | |
Ammo | The player should start each level with 5 balls (1 mark). Each shot should reduce the ball count by one (1 mark). | |
Level completion / game over | The level ends in two ways: when the player has run out of balls (and some of the pegs remain) (1 mark), and when all the pegs have been destroyed (2 marks). | |
Scoring | The final score for a level is calculated and displayed correctly:
| |
Extra Functionality (all levels) | ||
Visual style and feel | Game is aesthetically pleasing, and levels play well. | |
Trail | Ball has a trail (1 mark). | |
Improved Score Display | Score is updated as each peg is hit (1 mark). As score increases, the number "animates" to the next number (1 mark). A in-world popup of score is shown for each individual peg (1 mark), and for when a ball rests in a bucket (1 mark). | |
Lindslay-Mode | Pressing L teleports the current ball to the current mouse position (1 mark). Ball velocity is reset (1 mark). | |
Sound Effects | Audio when ball is shot (1 mark). Audio when ball hits a peg (1 mark). Audio when a ball collides with a bucket (1 mark). | |
Music | Music plays throughout whole game (1 mark). Music doesn't stop or restart when level is changed (1 mark). | |
User Interface (all levels) | ||
Title screen with level select | Can be same or separate scenes (note that if using separate scenes, SceneSwitcherKeys script will need to be modified -- see exam lecture). Should have title (1 mark), a suitable background (1 mark), and a way of jumping to all levels through the UI (3 marks). | |
In-game UI | The amount of balls remaining is visually shown with either a number (1 mark) OR with a number of UI sprites (2 marks). | |
Start of level text | Display a message for 2 seconds: level number and title (1 mark), | |
End of level success text | Display a congratulations screen for 3 seconds after a level is completed (1 mark). Message should be from a random set of messages of your choosing (2 marks). Shows a final level score (1 mark). | |
End of level failure text | Display a failure screen for 3 seconds after all ammo is used without destroying all pegs (1 mark). | |
Cumulative Score | Display the total running score across all levels (1 mark). "Animated" like the per-level score display (1 mark). | |
Game mechanics locked | Can't aim (1 mark) or shoot (1 mark) while the start or end level text is being shown. | |
Level 1 – Default | ||
Functionality | Simple level with no modifications. | |
Level 2 – Multi-Hit Peg | ||
Functionality | At least one peg in the level which requires more than one hit to be destroyed. | |
Visual style | Uses an appropriate visual representation to show the state of the peg (e.g. different visuals with 2 hits remaining to 1 hit remaining etc.) | |
Level 3 – Button | ||
Functionality | Level contains a button, which when hit by the ball opens up a secret area that contains a bonus pickup. | |
Bonus Pickup | Bonus pickup displays an onscreen bonus message including the bonus amount upon collision with the ball. | |
Level 4 – Checkpoint Bonus | ||
Functionality | Level contains at least 3 checkpoints, which when hit in order by the ball result in a bonus which appears on-screen after the final peg is destroyed (1 mark). Checkpoints can be passed through by the ball rather than a normal collision (1 mark). If a checkpoint is hit out of sequence, the entire sequence must be restarted (2 marks). | |
Visual Feedback | Pegs visually show which number in the checkpoint sequence they are (i.e. have a number on them), and correctly show when the checkpoint has been activated. | |
Level 5 – Moving Pegs | ||
Functionality | Moving pegs follow a predetermined path (1 mark) and cause balls to bounce of them appropriately (1 mark). | |
Correctly resetting | Pegs only reset when level is reloaded, not after each shot (1 mark). | |
Level 6 – Homing Missiles | ||
Spawns | Missiles spawn from the sides of the screen every second when there is an in-flight ball (1 mark). Missiles only collide with the ball, and not the pegs (1 mark). | |
Functionality | Missiles seek the currently in-flight ball (and ignore the ball once it is in the bucket area) (1 mark) and destroy when they collide with it (1 mark). | |
Level 7 – Laser Bomb | ||
Functionality | If the player presses spacebar while the ball is in flight, the ball shoots lasers in four directions (i.e. in a + pattern) (2 mark). Lasers that hit any pegs should destroy the peg (1 mark). Lasers can't penetrate pegs (i.e. it only hits pegs which are within line-of-sight) (1 mark). | |
Level 8 – Cinemachine | ||
Level Introduction | Level is larger and camera initially shows the entire level for one second (1 mark) before focusing on the top of the level area (1 mark). | |
During Play | After ball is fired, camera follows it (1 mark). Continues to do so until ball comes to rest in a bucket and a new turn begins, and then smoothly transitions back to framing the top area of the level (1 mark). | |
Custom Levels were made for Level 9 and level 10 |
Sources
End of round messages generated by ChatGPT: https://chat.openai.com/share/60e17e20-8ee5-4c46-9156-24d1b5fa761f
"At Launch" Kevin MacLeod (incompetech.com)
Licensed under Creative Commons: By Attribution 4.0 License
http://creativecommons.org/licenses/by/4.0/
Brackeys. (2017a, May 31). Introduction to AUDIO in Unity [Video]. YouTube. https://www.youtube.com/watch?v=6OT43pvUyfY
GGBotNet. (2021, December 26). Public Pixel Font | GGBotNet | FontSpace. fontspace. https://www.fontspace.com/public-pixel-font-f72305
Imaginelabs. (2018, February 10). Breakout (brick breaker) tile set - free. OpenGameArt.org. https://opengameart.org/content/breakout-brick-breaker-tile-set-free
Kenney. (2020, February 11). Interface sounds · kenney. Home · Kenney. https://kenney.nl/assets/interface-sounds
Kyzerole. (2019, May 26). Target. OpenGameArt.org. https://opengameart.org/content/target
PauR. (2016, January 12). Sky background. OpenGameArt.org. https://opengameart.org/content/sky-background
Rounddroid. (2020, July 10). 2D pinball sprites. OpenGameArt.org. https://opengameart.org/content/2d-pinball-sprites
Status | In development |
Platforms | HTML5 |
Author | Sutherwin |
Made with | Unity |