Controls:

Aim: Mouse
Shoot: Left Mouse
Laser (Level07 only): Hold Space or Hold Fire
Teleport Ball: L


This game was designed and created according to an assignment specification in KIT109 Gaming Fundamentals at The University of Tasmania.

The aim of Peghoul is to use your cannon to destroy as many pegs as possible. Aim your cannon and fire with the mouse. Hit pegs to destroy them, and earn bonus points depending on which bucket the cannon ball ends up in. Some levels contain spooky ghosts to destroy for extra points.


Features list copied from assignment spec, minor modifications to remove number of marks. The game should tick all of the boxes in the original spec. Modifications from spec include some extra sounds, as well as slightly increased time of intro UI sequence to allow reading time, and the addition of Levels 09 and 10.


Features: Core Functionality (all levels)

Ball Shooting

When mouse button is pressed, ball shoots towards mouse.

Ball aiming constraints

Shooter can only be aimed within the 120 degree range pointing toward the bottom of the screen. If the shooter is aimed outside of this range, it clamps to the edge of the range and shoots at the clamped angle.

Ball movement

Ball follows a ballistic trajectory.

Ball collisions

Balls collide with the buckets and the environment/side of the screen.

Peg collision

Pegs disappear after a collision with a ball. 
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"). 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, or if 3 seconds have elapsed since it has been hit.

Next turn

The next ball can be shot only once the previous ball has come to rest in a bucket.

Ammo

The player will start each level with 5 balls. Each shot should reduce the ball count by one.

Level completion / game over

The level ends in two ways: when the player has run out of balls (and some of the pegs remain), and when all the pegs have been destroyed.

Scoring

The final score for a level is calculated and displayed correctly:

  • the sum of destroyed pegs; plus
  • the sum of the value of the buckets each ball is resting in at the end of the level; plus
  • any bonus awarded for a level.


Extra Functionality (all levels)

Visual style and feel

Game is aesthetically pleasing, and levels play well.

Trail

The ball has a trail.

Improved Score Display

The score is updated as each peg is hit. As score increases, the number "animates" to the next number. A in-world popup of score is shown for each individual peg, and for when a ball rests in a bucket.

Lindslay-Mode

Pressing L teleports the current ball to the current mouse position. Ball velocity is reset.

Sound Effects

Audio when ball is shot. Audio when ball hits a peg. Audio when a ball collides with a bucket. Added audio for when ball hits environment/side of screen, when points pop up from pegs, when points pop up from cauldron.

Music

Music plays throughout whole game. Music doesn't stop or restart when level is changed. 


User Interface (all levels)

Title screen with level select

Separate scene to levels. Has a title, a suitable background, and a way of jumping to all levels through the UI.

In-game UI

The amount of balls remaining is visually shown with a number of UI sprites. 

Start of level text

Displays a message for 2 seconds: level number and title, brief description of that level's mechanics. Animated. This has been modified to 2.5 seconds due to the time it can take to read level name plus short description.

End of level success text

Display a congratulations screen for 3 seconds after a level is completed. Message is from  random set of messages. Shows a final level score.  

End of level failure text

Display a failure screen for 3 seconds after all ammo is used without destroying all pegs. Also shows a random message.

Cumulative Score

Display the total running score across all levels. "Animated" like the per-level score display.

Game mechanics locked

Can't aim or shoot 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 once hit.


Level 3 – Button

Functionality

Level contains a button, which when hit by the ball opens up a not-so-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. Checkpoints can be passed through by the ball rather than a normal collision. If a checkpoint is hit out of sequence, the entire sequence must be restarted.

Visual Feedback

Pegs visually show which number in the checkpoint sequence they are, and correctly show when the checkpoint has been activated.


Level 5 – Moving Pegs

Functionality

Moving pegs follow a predetermined path and cause balls to bounce of them appropriately.

Correctly resetting

Pegs only reset when level is reloaded, not after each shot. 

Level 6 – Homing Missiles

Spawns

Missiles spawn from the sides of the screen every second when there is an in-flight ball. Missiles only collide with the ball, and not the pegs.

Functionality

Missiles seek the currently in-flight ball (and ignore the ball once it is in the bucket area) and destroy when they collide with it.


Level 7 – Laser Bomb

Functionality

If the player presses spacebar while the ball is in flight, the ball shoots lasers in four directions. Lasers that hit any pegs should destroy the peg. Lasers can't penetrate pegs.


Level 8 – Cinemachine

Level Introduction

Level is larger and camera initially shows the entire level for one second before focusing on the top of the level area.

During Play

After ball is fired, camera follows it. 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.


Level 9 – Ghostly Pegs

Functionality

Pegs wiggle and then teleport to another location. There will never be two pegs on the same location. Pegs cannot be shot when halfway through a teleport.


Level 10 – Moving Cannon, Moving Cauldrons

Functionality

 The cannon moves right and left at a constant speed, increasing the difficulty of aiming. The cauldrons also jump at set intervals to risk throwing the ball back out before it can come to a rest.

 

References

Music

Trick or Treat by HitCtrl
https://opengameart.org/content/trick-or-treat 
Skeleton Waltz Theme by Wolfgang_ 
https://opengameart.org/content/skeleton-waltz-theme 

Sound Effects

Ball hitting cauldron - Bell Ding by PWL
https://opengameart.org/content/bell-dingschimes 
Ball hitting environment/pegs - Thwack Sounds Created by Jordan Irwin (AntumDeluge)
https://opengameart.org/content/thwack-sounds 
Cannon firing - Cannon Fire by Thimras
https://opengameart.org/content/cannon-fire 
Peg score sound - Coins by StarNinjas
https://opengameart.org/content/12-coin-sound-effects 
Cauldron score sound - Ding2 by mashedtatoes2
https://freesound.org/people/MashedTatoes2/sounds/515643/ 

Pumpkin Background Art 

By Chupup Games
https://opengameart.org/content/halloween-pumpkin 

Tutorials Used

Smoke effects concept based on YouTube tutorial by Aqsa Nadeem. PNG for smoke created by Josh Daniels.
https://www.youtube.com/watch?v=jQivfs34Wb0 
Score tally effect used a modified version of code from YouTube tutorial by N3K EN. Removed a number of features from the code and altered to suit this project.
https://www.youtube.com/watch?v=1r_BXVRjXvI 

Font

Mountains of Christmas - Tart Workshop
https://fonts.google.com/specimen/Mountains+of+Christmas?query=mountains+of+christmas 

Programming

Parts of Missile Movement script modified from KIT102 tutorials.

End Level Comments

Jess Nunn & Josh Daniels


Generative AI was not used in the creation of this game. 

All other work, art, and programming by Josh Daniels

Updated 29 days ago
StatusReleased
PlatformsHTML5
AuthorJosh Daniels
GenrePuzzle

Leave a comment

Log in with itch.io to leave a comment.