31263 / 32004 Introduction to Game Development Assessment 3 and 4 Recreate a Classic Game
Overview:
Assessment 3 and 4 are two parts of a linked assessment. In these assessments you will recreate a specified classic Atari-era game by developing nearly all the assets yourself. The game will look and feel different to the original but will have the same core game design. You will then innovate on the game to push your self-study skills and explore new game development topics on your own. These are individual assessments and it is expected that all the work done here is your own.
Primary Design and Development Constraints:
Regardless of the game that is chosen, there are some important constraints that must be adhered
to:
1. You must use the Unity version that is used on in the lab room and specified on UTSOnline.
2. The game must be made in 2D, using sprites.
3. Your final game (in Assessment 4) will have at least three scenes – one that is for the main
menu, one that is a recreation of a level from the original game, and the last that shows off
you design innovation. You may have more scenes in your project structure if you wish.
4. All visual assets must be entirely your own creation. These must be different in appearance
to the original game.
5. You must have sprite animations in your game. You may also create your own particle system
effects with 2D sprites.
6. Audio must be included for all major interactions in the game but the audio clips do NOT
need to be your own creation. They must be different to the original game but you may
source these from royalty-free audio websites.
7. All scripts in the game must be your own creation. You may use learning resources such as
the Unity manual, forums, Unity Answers, and video tutorials, but you must not use any downloaded scripts from the Unity Asset Store, GitHub, or similar. Sophisticated plagiarism checking software will be used to ensure that your code has not been substantially copied from any single source, whether that is other students or online resources.
8. You may NOT use the Unity Rigidbody physics functionality or the standard Unity CharacterController component (or similar). Therefore, all motion must be coded by you as frame-rate independent continuous movement (see Week 5 lecture). If you have a Rigidbody or Rigidbody2D component on a gameobject for the purposes of collision detection, it must be set to “Is Kinematic” at all times.
9. Assessments 4 stacks on Assessment 3 – anything you miss in Assessment 3 will likely affect your Assessment 4 grade as well.
Created by: Dr William Raffe UTS CRICOS PROVIDER CODE 00099F
11.09.2020
Assessment 3
Pac-man
Visual Assets, Audio Assets, Level Layout, and Git
Reference Example:
For a reference example of Pac-man, go to Google and type “Pac-man” ( https://www.google.com/search?q=play+pacman+doodle ). On the first page, you will find a playable Google Doodle version of Pac-man that you can play in your web browser. This is the reference that these specifications were built upon (other than the Level Generator). Features found in other versions of Pac-man and Ms Pac-man are not included here. If a specific feature or design consideration isn’t mentioned, then you can use your own judgment to design it into the game – only what is listed in “Task and Grade Overview” below will be graded.
Due Dates:
Unity Project Files:
Due via Canvas before 11:59pm Monday 21st September
Deliverables:
Unity Project Files:
This is your entire Unity project folder (including your .git folder and .gitignore file), zipped up (as a .zip, no other format), with the specified naming convention. Before creating the zip, delete the “Library” folder.
Created by: Dr William Raffe UTS CRICOS PROVIDER CODE 00099F
11.09.2020
Task and Grade Overview:
In Assessment 3, you will be assessed on the first half of the semester worth of lecture and lab content by preparing visual and audio assets for your game, setting up and beginning to use your Git repository, and planning for your future development. In this way, you will demonstrate not only foundational knowledge and skills in development, but also your ability to analyse an existing game, decompose it a set of required assets and coded systems, and identifying your own knowledge gaps for future development plans.
Below is an overview of the grading, with an indication of what should be included in your Unity project. Doing more than what is specified below will not get you additional points for this assessment.
11.09.2020
Criteria
Details
Marks
Visual Assets
You must create all of your visual assets yourself. You may use any tool you feel comfortable with. If you do not have much visual design background, it is recommended that you use https://www.piskelapp.com/ .
You must not to recreate the assets exactly as they appear in the original game. Instead, you should create your own visual style for the game. These also do not need to be works of art, we are NOT grading you on the quality of your visual assets (we are not an arts faculty). Instead, you will be graded on the completeness of them – you must have a different visual asset and animation for each of the items listed below. The assets should also make sense and be of an appropriate size in your scene such that it is easy for the player to understand what is going on in the scene.
The following is a list of visual assets that you will need to create your own version for:
Pac-man
Four Ghosts in normal state
Ghosts in scared state (dark blue in original game)
Ghosts in dead state (just eyes in original game)
Normal pellet
Power pellet
Bonus score cherry
Pac-man life indicator (bottom left in original game)
Wall segments for each wall type (see Level Generator section
below)
5
Created by: Dr William Raffe UTS CRICOS PROVIDER CODE 00099F
11.09.2020
You will also need to create an equivalent Animator Controller (and associated animation clips) for the following animations found in the original game:
Pac-man movement (mouth opening and closing in the original game)
Flashing power pellets
A single Animator Controller called “GhostAnimator” One or
more Animator Controllers with the prefix “GhostAnimator_”
that do the following:
o A Walking state for moving in each cardinal direction (up,
down, left, right) and an associated sprite or animation clip for each (eyes look in direction of movement in original game).
o A Scared state
o A Recovering state for when the ghosts are transitioning
from their scared state back into their normal walking
state (flashing between white and blue in original game) o A Dead state
All visual assets must be imported into Unity and all visual assets must be placed in the scene view. Animations and Animator Controllers must be established so that they can be previewed in the Game View when the Play button is pressed. E.g. Pac-man’s movement animation should play, power pellets should flash, and the ghost animator controller should cycle through states on “Has exit time” for 3 seconds per state or for the whole animation clip (in the case of the Recovering state).
Audio Assets
You must source all audio that you will need for your game. Like the visual assets, the audio clips used must be different from the original game so as to give your game its own audio style.
You do not need to create the audio yourself. You should only use “Royalty Free” or completely free audio from the internet and not copyright protected audio. If you want to make your own audio, we recommend the use of https://www.bfxr.net/ as an easy online tool to randomize and mix sound effects.
Again, you will not be marked for the quality of your audio, but rather the completeness of your audio assets (per the list below) and whether they make sense – e.g. an explosion sound for Pac-mans movement doesn’t make sense.
The audio assets that you will need to include are:
3
Created by: Dr William Raffe UTS CRICOS PROVIDER CODE 00099F
11.09.2020
Background music for the game intro (when the level first starts)
Background music for when ghosts are in their normal state
Background music for when the ghosts are in their scared state
Background music for when at least one ghost is in its dead state
Sound effect for when Pac-man is moving but not eating a pellet
Sound effect for when a pellet is eaten
Sound effects for when Pac-man collides with a wall
These audio clips must be imported into Unity and in the Project Window, in a folder named “Audio Clips” and with an appropriate name for each clip.
You must also have at least one Audio Source in the scene that, when the Play button is pressed, plays the intro background music and then when that finished plays the background music for the normal state ghosts.
Level Generator
Your level in the game recreation will be created programmatically. You must have a script called LevelGenerator.cs . In the Start() or Awake() method of this script, you must step through the 2D array below and use Instantiate(…) for each the pieces of your level to construct the whole level.
int[,] levelMap =
{
{1,2,2,2,2,2,2,2,2,2,2,2,2,7},
{2,5,5,5,5,5,5,5,5,5,5,5,5,4},
{2,5,3,4,4,3,5,3,4,4,4,3,5,4},
{2,6,4,0,0,4,5,4,0,0,0,4,5,4},
{2,5,3,4,4,3,5,3,4,4,4,3,5,3},
{2,5,5,5,5,5,5,5,5,5,5,5,5,5},
{2,5,3,4,4,3,5,3,3,5,3,4,4,4},
{2,5,3,4,4,3,5,4,4,5,3,4,4,3},
{2,5,5,5,5,5,5,4,4,5,5,5,5,4},
{1,2,2,2,2,1,5,4,3,4,4,3,0,4},
{0,0,0,0,0,2,5,4,3,4,4,3,0,3},
{0,0,0,0,0,2,5,4,4,0,0,0,0,0},
{0,0,0,0,0,2,5,4,4,0,3,4,4,0},
{2,2,2,2,2,1,5,3,3,0,4,0,0,0},
{0,0,0,0,0,0,5,0,0,0,4,0,0,0},
};
The legend for the above is shown below. Each of these pieces will require their own sprite image and, as with the other visual assets, should be in your own visual style.
0 – Empty (do not instantiate anything)
1 – Outside corner (double lined corener piece in orginal game)
5
Created by: Dr William Raffe UTS CRICOS PROVIDER CODE 00099F
11.09.2020
2 – Outside wall (double line in original game)
3 – Inside corner (single lined corener piece in orginal game) 4 – Inside wall (single line in orginal game)
5 – Standard pellet (see Visual Assets above)
6 – Power pellet (see Visual Assets above)
7 – A t junction piece for connecting with adjoining regions
When properly constructed, this should look similar to the below image, which is the top-left quadrant of the original Pac-man layout for Level 01.
Note that in order to accomplish the full level you will also need to:
Determine a way for your code to decide which rotation angle
each of the wall and corner pieces should be at to align with each
other.
Mirror the above 2D array or instantiated pieces three times
(horizontally, vertically, and horizontally-and-vertically) to get the other three quadrants of the level to make the full level.
o For the vertical mirroring, you will need to ignore or delete the bottom row of the 2D array so that there is only a single row of empty spots.
o Note that this will appear different to the original Pac- man Level 01 (this is on purpose.
Pac-man Movement
Use frame-rate independent motion and programmatic tweening from Weeks 6 and 7 to move Pac-man.
Move Pac-man clockwise in a cycle around the top-left inner block of the level (as seen in the previous image).
Pac-man must play his movement animation and his moving audio (for when he is not colliding with a pellet) as he moves.
For Assessment 3, you do NOT need to:
o Respond to user input
o Detect collisions with walls
3
Created by: Dr William Raffe UTS CRICOS PROVIDER CODE 00099F
11.09.2020
o Detect collisions with pellets. o Move the ghosts at all
Project Structure
The Project Window in Unity should have a logical and organised layout of folders and sub-folders. Folders and assets should be appropriately named such that other potential team members (e.g. your tutors) could easily navigate that project and find the asset they are looking for.
The Hierarchy Window of the Recreated Level scene should also be well organized, with use of parenting to form groups of gameobjects and each gameobject with an appropriate (short but clear) name.
2
Git Repo
You must setup a Git repository, hosted on Bitbucket, GitHub, or GitLab. This git repository must:
Have the “.git” folder at the root level of your Unity project folder you should see “.git” next to “Assets”, “Logs”, “Project Settings” etc. in the file structure.
Have the .gitignore file from https://github.com/github/gitignore/blob/master/Unity.gitignore . This should also be at the root level of your project, along with the .git file
You must have at least four branches:
o Master – this should be the branch that is active before
the submission .zip file is created)
o Development – this branch is where the below feature
branches are created from and are merged into
o Feature-Visual – this branch should be committed to
when adding the majority of the visual assets and
animations into Unity and the main scene.
o Feature-LevelGenerator – this branch should be
committed to during the creation of the
LevelGenerator.cs script.
o For more on this style of branching structure, see the Git
Workflow branching strategy. You may have more
branches if you wish.
You must commit to your git repository often – e.g. after a few
hours of working on the project or every time you reach a minor milestone.
For this part of the assessment, you will be graded on the following that are extracted from your .git folder:
The use of the above branching structure
The consistency of commits throughout the project life-cycle.
2
Created by: Dr William Raffe UTS CRICOS PROVIDER CODE 00099F