Exam Golf Game
Mouse to aim, press or hold left mouse to fire the ball. Try to complete every level by reaching the goal. Don't resize window at all
Everything from the specifications besides level 3 has been completed
- music from NAOKI, title is Ups and Downs, slayers theme from the guilty gear strive soundtrack: NAOKI 2024, Ups and Downs, YouTube, viewed 7 June 2024
- used chatGPT for help with coming up with ways to draw aiming line for player, I cannot link to the chat log as I was not logged into an account when I did it so it didn't save
The following code located in the DrawLineBetweenPoints script is what it helped me with:
Vector3 mousepoint = Camera.main.ScreenToWorldPoint(Input.mousePosition);
mousepoint.z = 0f;
Vector3 direction = (mousepoint - point1.position).normalized;
Vector2 dividedPoint = point1.position + (direction * 2f / refScript.maxDuration * refScript.clickforcetime); //mainly this line
mousepoint = mousepoint / 2;
-got help from a forum on how to apply force in direction of mouse:
Unity Technologies 2017, Adding force in the direction of the mouse, Unity Discussions, viewed 7 June 2024, https://discussions.unity.com/t/adding-force-in-the-direction-of-the-mouse/20059...
- used code from a brackeys youtube tutorial for aiming missiles:
Brackeys 2017, How to make a Homing Missile in Unity, YouTube, viewed 7 June 2024
- sound effects made in jsfxr
Specification table:
Core Functionality (all levels) | 20% | |||||||||||||||||
Done | Ball aiming and shooting | Shoot towards mouse, or pull back. Shot strength depends on how long you hold down the mouse button for. Ball is shot once button released. | ||||||||||||||||
Done | Ball aiming line | Line shows direction of shot. Line length represents shot strength. | ||||||||||||||||
Done | Ball sunk | When the ball collides with hole, show end of level text (if implemented), then move to next hole (if no end of level text, then wait for 2 seconds before moving to next level). | ||||||||||||||||
Done | Ball reset | Ball resets when offscreen. | ||||||||||||||||
Done | Ball stopping | Ball stops moving when touching ground and at low speed. | ||||||||||||||||
Extra Functionality (all levels) | 16% | |||||||||||||||||
Done | Visual style and feel | Game is aesthetically pleasing, and levels play well. | ||||||||||||||||
Done | Turbo boost | Hold space, makes ball speed 2x faster, limited for 0.5s per use. | ||||||||||||||||
Done | Divot particles | When ball is shot, a suitable particle effect is shown. | ||||||||||||||||
Done | Trail | Changes colour when turbo on (if implemented) (1 mark). | ||||||||||||||||
Done | Post-processing | Effect (or effects) matches overall visual style of game.is aesthetically pleasing, and levels play well. | ||||||||||||||||
Done | Sound effects | Audio when ball is shot (1 mark). Audio when ball is sunk (1 mark). | ||||||||||||||||
Done | Music | Music plays throughout whole game (1 mark). Music doesn't stop or restart when level is changed (1 mark). | ||||||||||||||||
User Interface (all levels) | 18% | |||||||||||||||||
Done | 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 (4 marks). | ||||||||||||||||
Done | In-game UI | Total shots (1 mark), current hole shots (1 mark), current hole number (1 mark) and par for this hole (1 mark). | ||||||||||||||||
Done | Start of level text | Display a message for 2 seconds: hole number (1 mark), brief description of that level's mechanics (1 mark). Animated (1 mark). | ||||||||||||||||
Done | End of level text | Display a message for 1.5 seconds after sunk (1 mark). Message should be from a random set ("well done!", "great!", "weird!") (1 mark), plus how far over par they are using terminology in the following table (2 marks). Animated (1 mark).
| ||||||||||||||||
Level 1 – Default | 2% | |||||||||||||||||
Done | Functionality | Simple level with no modifications. | ||||||||||||||||
Level 2 – Black Hole | 3% | |||||||||||||||||
Done | Functionality | Sucks the ball towards it (1 mark), and is fun to play (1 mark). | ||||||||||||||||
Done | Visual style | Uses an appropriate particle system OR sprite-sheet animation. | ||||||||||||||||
Level 3 – Maze Level + Cinemachine | 6% | |||||||||||||||||
Not Finished | Tilemap | Level is created with a Tilemap. | ||||||||||||||||
Not Finished | Cinemachine | Camera follows ball in this level (1 mark). Camera looks ahead of ball's movement direction (2 marks). | ||||||||||||||||
Level 4 – Doorway Triggered by Hits | 5% | |||||||||||||||||
Done | Doorway | Disappears after being hit 3 times by the ball. | ||||||||||||||||
Done | Visual Feedback | Doorway gets redder and redder on each hit.. | ||||||||||||||||
Level 5 – Checkpoints | 5% | |||||||||||||||||
Done | Checkpoints | Disappears after 3 checkpoint objects have been triggered. | ||||||||||||||||
Done | Visual Feedback | Each checkpoint changes coloured after being hit. | ||||||||||||||||
Level 6 – Doorway Triggered by Tripwire | 4% | |||||||||||||||||
Done | Doorway | Disappears when another object (NOT the ball) intersects the tripwire (1 mark). Reappears if the object is no longer intersecting the tripwire (1 mark). | ||||||||||||||||
Done | Visual Feedback | Line renderer representing tripwire (1 mark), and changes colour when tripwire is intersected (1 mark). | ||||||||||||||||
Level 7 – Sticky Walls | 3% | |||||||||||||||||
Done | Ball stops moving when it hits a wall | |||||||||||||||||
Level 8 – Homing Missiles | 6% | |||||||||||||||||
Done | Turret | Aims at player (1 mark). Fires rockets when player is near (1 mark), once every second (1 mark). | ||||||||||||||||
Done | Missiles | Seeks the player (2 marks). Graphics rotate toward the player (1 mark). | ||||||||||||||||
Level 9 – Free Choice | 6% | |||||||||||||||||
Done | Playability | |||||||||||||||||
Done hopefully | Uniqueness | |||||||||||||||||
Done | Functionality | |||||||||||||||||
Level 10 – Free Choice | 6% | |||||||||||||||||
Done | Playability | |||||||||||||||||
Done hopefully | Uniqueness | |||||||||||||||||
Done | Functionality |
other notes:
- avoid the red (level 10) didn't take too long, added some color changing to make it on par with the other levels (at least the checkpoint and door hit ones)
- on sticky walls, you will occasionally slip off them due to clipping the hitbox and moving out of it. This isn't the walls not being sticky, you were just going to fast
- You can get stuck on the black hole level, I've tried to make it as foolproof as possible, but considering it was in the example game aswell, I'm not working on it further
- you can only get stuck on the two black holes not in a wall, as the third lets you shoot yourself out of it
- Didn't do level 3 because Don't wanna
- Missiles don't do much to the player when they land, is intentional as nothing in rubric mentioned knocking player away from goal or resetting them
- bloom is chosen post processing effect, applied to the whole game
- I think it looks neat and aesthetically competent, at least I prefer it over the example game
Status | Released |
Platforms | HTML5 |
Author | patttriple |
Made with | Unity |
Leave a comment
Log in with itch.io to leave a comment.