Game Engines and Graphics
Assignment 2 Part B – Unity3D
Simple MOBA
Assignment Specification 1
Marking Scheme 1
Submission Details 4
Due Date 5
Assessment Feedback 5
Academic Misconduct 6
Assignment Specification
In this assignment, you have been requested to create the basic framework for an upcoming Multiplayer online battle arena (MOBA) game. You will use the Unity game engine. Before beginning I would suggest becoming familiar with the how Unity works through some online tutorials. We will be using Unity in our class tutorials from now on. There are also lots of tutorials available on the Unity website and other popular websites such as YouTube.
A list of features has been provided for you to implement. This includes basic MOBA game mechanics (basic enemies, structures and playable characters). I recommend you complete the features in the order presented, although doing some variation probably won’t hurt. I would highly suggest planning out your inheritance structure first though. Demonstration videos will be posted online to help guide you for each. Although, these videos will only show basic implementations.
Marking Scheme
Please copy past the below into a text file called “Assessment.txt” and fill in your self assessment mark. You should also include any relevant comments on what you have implement successfully and/or not included. You can achieve a maximum of 100 points although you can implement all the options below that total >100.
FREE ASSETS ONLY OR SEEK APPROVAL FOR PURCHASED ASSETS (Via email or online forums)
I have separated this section into different parts. You can create one entity (such as the tower) then develop the mechanics (health, firing projectiles etc). Or you can develop all entities and then develop the mechanics, it’s up to you!
All scripts must be written by you. Do not use any prebuilt scripts from packages.
ARENA
[2 Marks] Setting up an arena
oEnsure no characters can fall off the arena (test with basic objects or develop some characters first)
oMake it believable, no invisible walls.
oApply materials to the floor and walls, give it a certain theme of your choosing
BASIC ENTITIES
[5 Marks] Class Inheritance Structure (You may include advanced entities in this structure or separate, provide reasoning for either).
oProvide base classes with generic variables and methods
oChild classes should utilize those variables efficiently
oIn your self-assessment, write why you chose the inheritance structure you did.
[5 Marks] Towers
oStructure that attacks enemies when they come into range
oShoot projectiles which appear as a fire particle. (see Targeted-Projectiles below for more details)
Projectiles should only fire every X seconds
oAdvanced: If the player is within range of a tower attack radius, visually display the tower attack radius.
[5 Marks] Bases
oStructure that spawns the basic minions
oSpawn a minion in one of two locations (location chosen randomly)
oIf this structure is destroyed the other team wins (display winner to screen)
[5 Marks] Boxes and Balls (Basic minions)
oSimple movement in a direction towards the enemy base
oProvide some form of movement animation (bouncing, rotating etc)
oAttack enemy minion/structures/characters when in range.
Stop moving when attacking
Projectiles should only fire every X seconds
oFire small projectiles at a target within range (see Targeted-Projectiles below for more details)
oAttach materials to your minions (higher marks for fancier looking materials)
BASIC ENTITY MECHANICS
[5 Marks] Health Bars
oAppear above all minion/character/structures and update in real time
[5 Marks] Targeted-Projectiles
oProjectiles that move towards a target
oThe target should be obtained from the minion/structure/player firing it
oThe projectile should destroy itself on impact with the target.
oThe target should take damage (You determine the damage values for your game).
[5 Marks] Target Radius
oA circle/sphere around the minions/tower which determines if they can attack an enemy
oOnly attack enemies within range (range determined by you)
oIf something leaves their range (either moved or died) they must stop attacking that entity
[5 Marks] Death indications (Use shaders and/or particle systems)
oTowers should collapse
oBases should explode before showing the winner
oCharacters should fall down (or death animation if you are using animations)
oAfter animation has played, entity should be destroyed.
CHARACTERS AND THE PLAYER
[7 Marks] Player character
oPlayer is able to move around the map by right clicking
oThe camera will follow the player character
oPlayer will basic attack enemies (minions/structures) when they are right clicked
Lock onto that target and attack until player moves or chooses a new target.
Basic attacks should happen based on an attack speed value (for example: every 1 second)
oPlayer will not basic attack minions/structures on their own team
oPlayer will respawn near their base after X seconds of being dead
[3 Marks] Character Selection
oThe player should be able to select their character before loading into the game
oIdeally, they should select the character in a menu scene, and then load into the game scene as that character.
oOptional: also select the enemy character they will vs
[5 Marks] Character 1 – Range character
oRanged auto-attack
oAbilities should have cooldowns before they can be used again.
oAbility 1 – fires a projectile that vanishes after a set distance or contact with enemy or ally
Only damages enemy minions/characters/structures
Ability 2 – Fires a large projectile that goes across the entire map
Damages enemy minions/characters
[5 Marks] Character 2 – Melee character
oMelee auto-attack (very short range)
oAbilities should have cooldowns before they can be used again.
oAbility 1 - Increase their basic attack speed for a short while. Makes the character glow.
oAbility 2 – Deal passive damage to enemies around the character for a short while (within their attack radius). Visualize the area of effect.
[5 Marks] Basic enemy character
Act like minions but will prioritize the player character if they come into range.
Will be able to use abilities of the character they are
Will activate abilities and fire towards the player if they are within range
Don’t make them too overpowered though! (Maybe a chance to misfire abilities)
Will respawn near their teams base if they die
[5 Marks] User Interface
oDisplay player character image, health and other variables you may have added (eg if add mana, exp to level up etc)
oDisplay image or information of target entity the player is basic attacking if any.
oDisplay abilities of the player character with cooldown icons (MOST IMPORTANT)
oDeath timer for if player dies.
ASSESSMENT
[3] Self Assessment - Provide marks for each deliverable you have completed and comments on the features you wish to highlight to the assessors. Copy paste this section into a text file called “Assessment.txt” to be included with your submission.
[5] Video – develop a video to demonstrate each of the features you have implemented. I suggest allowing 20seconds of video content to demonstrate each feature you have implemented (You may use more for the HD components). This is a compulsory part of the assignment. No marks for any part of the assignment can be awarded if you do not complete the summary video.
HD MARKS - OTHER
[20 Marks] To get a HD, you must implement some additional features of your choosing. Below are some ideas, but you can also propose your own expansions that will attract additional marks. Marks will be allocated based on difficulty of implementation, max 20 marks.
oSwitch to first person camera + movement controls (Something like Smite [The MOBA]).
oMore complex minion and enemy character movement
Spawn multiple minions at once
They must not collide
If a minion in front stops moving to attack, the others should move around to also attack
oCharacter/s with advanced concepts. For example:
Portal abilities (jump to and from positions)
Picking up and moving minions (Syndra w ability from League of Legends)
Minions should also move back to correct placement so they don’t walk into walls
Character with hinderances (such as freezing enemies, stopping them from moving, and visually showing it)
oAdvanced enemy character
Give them more custom movement and behavior.
oLevel up system for characters
Defeating enemies will grant exp
Passively gain exp
Gain levels based on exp, abilities will unlock or become more powerful upon level up
Submission Details
Please provide a single zip file with all your files with your emailID as the name (i.e. bondj007.zip). Your assignment deliverables should be contained in 3 folders that use the exact names as shown below:
-“source” contains all Unity project files, source etc. allowing an assessor to compile your project
-“application” contains the executable application for your game (make sure your scenes are ordered correctly)
-“media” contains a video or youtube link demonstrating your project features (user your emailID for the filename)
-“assessment” contains a text file called “Assessment.txt” which provides your own assessment marks of your assignment.
Due Date
10th Nov 2022
Assessment Feedback
Feedback will be available through the course webpage using the Gradebook system.
Academic Misconduct
Deliberate academic misconduct such as plagiarism is subject to penalties. You are advised to become familiar with the University’s policy available at http://resource.unisa.edu.au/mod/book/view.php?id=72184 and also the slides which were presented during the first week of the course.
Note that we have a number of electronic systems in place to quickly and easily check for plagiarism amongst students. All of the assignments are compared using special tools designed to look for similarities between Java programs. The plagiarism checking programs do not just compare the actual Java code, but instead perform comparisons on the code after it has been compiled. Performing cosmetic changes such as reformatting code, renaming variables, or reordering code may fool a human under casual inspection but will still be detected by the plagiarism checker as being similar.
Any assignments found to be in violation of the university’s rules on academic misconduct will automatically receive zero. Furthermore, you may also fail the subject and/or receive an official note in your academic transcript.
The best way to avoid being penalised for plagiarism is to not cheat on your assignment. Do not share your code with anyone, do not let any one else do your assignment for you, and do not leave your computer unattended or share your password with anyone. If you are working with friends it is ok to discuss the assignment and possible ways of solving it, but you should not share your code. Sharing code with others is still considered academic misconduct. The golden rule for working on your assignments is never show another student the material you intend on handing up.