辅导案例-KIT109-Assignment 1
KIT109 Games Fundamentals Assignment 1 — Special Exercise — Pong Weighting: 5% Due Time/Date: 11:55pm Sunday 2nd of August (Weekend of Week 3) Aims of the Assignment The purpose of this assignment is to give you experience at applying the Unity practical work to creating games independently. It addresses the following criteria from the unit handout: • Students should be ICT professionals with the abilities and skills to: o design, identify required techniques, and apply knowledge of development principles and technical skills to develop games Assignment Requirements The assignment is to create an implementation of the classic Pong videogame (more details to follow later in this document). This is an individual assignment. Referencing It is possible that you will use art/sound assets from external sources in implementing your game. If you do, please reference the source of those materials in the itch.io devlog (see below). Assignment Submission – itch.io By the end of your tutorial in Week 3: • Upload a WebGL build of your Pong game to your itch.io account under a new project called “Pong” (or similar) o Instructions for this are posted on MyLO. o Please make sure your itch.io account is listed on the itch.io channel on Discord, and that we can access your game. Before 11:55pm Sunday 2nd of August (Weekend of Week 3): • Upload a WebGL build of your finalized Pong game. • Add a DevLog Post to your Pong Game with the following: o A list of sources, if you’ve used art that you haven’t created yourself. o A list of features, if you’ve attempted anything other than the basic version, detailing which features you’ve tried to create. Assignment Submission – MyLO Submit the following two files before 11:55pm Sunday 2nd of August (Weekend of Week 3): • A .zip file of your entire Pong project. o It’s okay to delete the “Temp” and “Library” files from your zip if you want (but DO NOT delete the “Assets” or “ProjectSettings” folders). • A signed individual assignment coversheet (available from the ICT website): http://www.utas.edu.au/__data/assets/word_doc/0006/161376/AssignmentCover.doc) Assignment 1 — Special Exercise — Pong In this exercise you’ll be using what you’ve learned in Practicals 1, 2, 3, and 4 to create a Pong clone: • Sprites; • Simple Scripting; • Triggers; • Input; • Rigidbodies; and • UI. Unlike previous tutorials, there is no step-by-step guide to follow, just broad guidelines. Getting Started Previous Practicals This exercise assumes you’ve finished the previous practicals (Practical 1–3 as well as Practical 4 if you are hoping to get a high mark). Launch Unity Launch Unity via the “Start Menu” (under “Development Tools”) as usual. Create a Project Create a new project called KIT109_Pong making sure to select 2D mode and set the window layout to “2 by 3”. Save the Scene Save the scene as “Pong.unity” and remember to frequently save the scene (Ctrl+S) throughout your work. Basic Pong Clone You need to try and make a Pong clone (with keyboard controls for both paddles). If you’re not familiar with Pong: • Original arcade machine: https://www.youtube.com/watch?v=fiShX2pTz9A • Online AI version: http://gsrca.de/games/129122 In the first version, just make a single round of the game: a ball starts in the middle of the screen, moves in a random direction, and bounces back and forth until one player misses (it’s ok if the ball just continues forever when this happens). You don’t need scores, or any notifications that one player has beaten the other. Approach This is considerably simpler than much of what we've done so far, but there's no step-by-step guide to hold your hand through the process. This is to get you to actually start thinking about the stuff we have been using up to now and to help prepare you for your own assignment implementation. There's two common approaches to making Pong in Unity: • just rely on the physics system o a moving ball o two fixed walls (a kinematic or positionally fixed rigidbody, or maybe just colliders) o two paddles that are just colliders (no rigidbody) or have a rigidbody that is kinematic • don’t rely solely on the physics system o everything is made from triggers and have small scripts to handle basic bounce physics o Top and bottom walls change the ball Y direction o Hitting the paddles changes the ball X direction I don't care which you decide to use – they each have their own advantages/disadvantages. Materials There are scripts (or parts of scripts) from previous practicals that should help you with parts of this exercise (and the further exercises below): • get the ball moving (StartMovingInRandomDirection) • move the player (PlayerMovement) • detect when the ball has left the screen (WrapAround or DestroyIfOffscreen) • scoring (PlayerCollectScore) Find images online for the ball, walls, and paddle, or to make them in Paint.NET or Inkscape (depending on your familiarity with these programs). There are lots of online tutorials for both programs. Further Exercise Once you've got that up and working (that’s enough to pass the assignment), attempt as many of the following as you feel able (in approximate order of difficultly): • ensure when the ball is lost off the edge of the screen, that it resets to the centre and chooses another random direction to move in • that the paddles don't leave the screen (this can be hard with the physics-based approach) • add scores (using UI techniques learnt in Practical 4) • add game logic, so when the first player to 10 points wins the game stops and a UI message is shown declaring the winner • add further game logic, so that when a game ends it should be possible for a new game to be started (again, with more UI) • make a rudimentary AI for the second player, with a title screen that allows players to choose a 1- or 2-player game (1-player is against the AI, 2-player is two set of keyboard controls) • add sound effects (we haven’t covered this in the Pracs, so you’d have to look up how to do this) • the ball slowly increases in speed the more hits it takes per round (resetting to normal speed each time it goes offscreen), and the location that the ball hit the paddle should change the angle that the ball bounces (the closer to the edge of the paddle the ball hits, the more vertically the ball should move) Note that there are more points available than 100% (see the CRA below), so you can attempt all of these (or as many as you wish) to try an ensure that your assignment gets the highest mark possible (the maximum mark you can score is 100%). Student Name: Student ID: Username: Assignment 1 — Special Exercise — Pong Individual Assignment (5%) criteria HD DN CR PP NN In your submission, you: In your submission, you: In your submission, you: In your submission, you: In your submission, you: ILO2 Apply knowledge of development principles and technical skills to develop games Basic Version (50%) ball starts moving in random direction (either left or right angles can happen) at an approximately similar speed no matter what direction ball starts moving in random direction (only one of left or right angles can ever happen) at an approximately similar speed no matter what direction ball starts moving in random direction (only one of left or right angles can ever happen) at very varied speed ball always starts moving in the same direction/angle ball doesn’t move at an angle, or doesn’t move at all, or there is no ball when the ball hits a wall, it bounces back at the correct reflected angle, and does not lose speed over time when the ball hits a wall, it bounces back at approximately the correct reflected angle all of the time when the ball hits a wall, it bounces back at approximately the correct reflected angle most of the time when the ball hits a wall, it bounces back when the ball hits a wall, it sometime bounces back, or never bounces back when the ball hits a paddle, it bounces back at the correct reflected angle, and does not lose speed over time when the ball hits a paddle, it bounces back at approximately the correct reflected angle all of the time when the ball hits a paddle, it bounces back at approximately the correct reflected angle most of the time when the ball hits a paddle, it bounces back when the ball hits a paddle, it sometime bounces back, or never bounces back paddles move independently with a different set of control keys for each, and never move sideways, rotate, or get stuck N/A N/A paddles move independently with a different set of control keys for each paddles move erratically, move from the same controls, or don’t move graphics for the ball, the paddles, the top and bottom wall, and the centre line graphics for the ball, the paddles, and the top and bottom wall N/A graphics for the ball and the paddles no graphics for the ball and the paddles Further Exercises (80%) when lost, the ball resets to the centre, and starts moving in a random direction every time (either left or right angles can happen) at an approximately similar speed no matter what direction when lost, the ball resets to the centre, and starts moving in random direction (only one of left or right angles can ever happen) at an approximately similar speed no matter what direction when lost, the ball resets to the centre, and starts moving in random direction (only one of left or right angles can ever happen) at very varied speed when lost, the ball resets to the centre, and starts moving in the same direction/angle when lost, the ball doesn’t reset to the centre paddles cannot go past the top and bottom walls, and never move sideways, rotate, or get stuck N/A N/A paddles cannot go past the top and bottom walls paddles overlap, or ignore, the top and bottom walls clearly legible scores shown for both players, and scores are correctly calculated as play progresses scores shown for both players, and scores are correctly calculated as play progresses scores for both players are correctly calculated as play progresses scores for one player are correctly calculated as play progresses scores are incorrectly calculated, or not kept game play proceeds to end of match (first to 10 points), then displays winning message that identifies winner, and gameplay ceases (ball doesn’t re-centre and paddles stop moving) game play proceeds to end of match (first to 10 points), then displays winning message that identifies winner, and gameplay ceases (ball might re-centre, but doesn’t move) game play proceeds to end of match (first to 10 points) and then displays winning message that identifies winner game play proceeds to end of match (first to 10 points) and then displays game over message game play continues indefinitely criteria HD DN CR PP NN In your submission, you: In your submission, you: In your submission, you: In your submission, you: In your submission, you: ILO2 Apply knowledge of development principles and technical skills to develop games upon gameplay ceasing (as above), a “play again?” message is shown, when clicked, game restarts with scores, paddles, and ball reset N/A N/A upon gameplay ceasing (as above), a “play again?” message is shown, when clicked, game restarts with scores reset no ability to play again at the end of a match player can select 1- or 2- player from the title screen, and play against either the AI or another human, at the end of a match, the game returns to this screen (i.e. it functions as the “play again?” option) player can select 1- or 2- player from the title screen, and play against either the AI or another human the second player can either be AI or keyboard controlled through a toggle in Unity (or keyboard shortcut) the second player is controlled by AI no AI player different sound effects added for each of the following: ball hitting the paddle, ball hitting the wall, ball going off the screen, and end of match sound effects added for all of the following: ball hitting the paddle, ball hitting the wall, ball going off the screen, and end of match sound effects added for two of the following: ball hitting the paddle, ball hitting the wall, ball going off the screen, and/or end of match sound effects added for one of the following: ball hitting the paddle, ball hitting the wall, ball going off the screen, or end of match no sound effects ball increases in speed with each hit (and speed resets every time it re-centres) and position ball hits the paddle affects how it bounces back in a way that is consistent and adds more fun to the game ball increases in speed with each hit (and speed resets every time it re-centres) and position ball hits the paddle affects how it bounces back in a way that is consistent ball increases in speed with each hit (and speed resets every time it re-centres) ball increases in speed with each hit ball keeps basic angle and speed that it gets when it starts (/re-centres) Comments Grade