You will be developing a mini-game based on soccer theme. This is a common project, in conjunction with game physics. Any physics-related topics will be graded for the physics assignment (Read the assignment details under Game Physics for the development criteria). As an alternative, you are also allowed to create and submit a separate physics assignment, if you wish.
For this mini-game, you have two options for the gameplay:
In this game, your net will be moving left and right at random speeds. Your aim is to kick the ball at the appropriate time to score a goal. For the game-end condition you can choose either of the following:
- a. Game ends when you finish a pool of X number of turns available (say 10 turns) OR
- b. The game ends after X (say, 60 or 120) seconds of game-play.
You are free to modify the above game rules to suit your purposes or to be more creative, you are allowed to come up with your own game idea revolving around soccer.
Depending upon the level of grade you want to target, you will include the following:
- (60% or higher) Multiple Scenes: At the minimum, you will have at least two unity scenes: i) Main Menu Scene and ii) Main Game Level Scene. Main menu scene will have a canvas that shows a main menu. Main menu should have a button to ‘play game’, ‘credits’, ‘quit’
- (60% or higher) You will use unity’s scene management to load and switch between different scenes.
- Use of prefabs & Instantiate:
- 3a. (70% or higher) Your game will include the soccer ball as a prefab and you will instantiate this ball each time once at the start of the game-play.
- 3b. (80% or higher) Your game will include at least two to three prefabs for different types of ‘balls’ (with different materials or textures for each type of ball). You will instantiate this based on the user selection via a game setup menu in the main menu level.
- (90% or higher) Use of PlayerPrefs. You will use ‘PlayerPrefs’ to store the final score and display it under a high score button via main menu.
- (70% or higher): GameManager and a scoring system: You will have a working scoring system. At the minimum, your game should keep track of the number of goals scored. For better grades, you can show more stats, such as balls missed, number of balls remaining etc.
- (70% or higher): Reset mechanism: Your game will have some reset mechanism. For example (depending upon your game-play), each time the ball is hit, and at the end of each turn, you will reset it back for the next turn.
Tip: If you wish, you can use a timer with ‘Invoke’ function call, to wait for X seconds and reset the ball, if a goal was not detected within this time period. Or you can use a trigger area behind the nets ( to catch the missed hits), and when the ball crosses that trigger area, it means it is time for the next turn.
- (70% or higher): Variable Force Meter/Control: You should have a UI showing the slider to select the amount of force to apply for the ball.
- Camera movement:
- 8a (90% or higher): You should have a camera script that will move or follow the ball’s movement.
- 8b (60% or higher): Your camera must be manually positioned and adjusted (as necessary) such that the goal is visible when the game level starts.
- (60% or higher): Level development: You will have an appropriate level developed with a decent grass, textured nets and other environment. Bonus will be given for visual improvements.
- (60% or higher): In-game UI/HUD: You will make proper use of UI elements to display the score and other information on HUD. Higher grades will be granted for proper application of UI development techniques.
- (60% or higher): Game Mechanics: Working game mechanics. You will either implement the game mechanics based on Option A or develop your own game mechanics and provide a brief write-up on how the game-play works.
- (80% or higher): Polished UI and look/feel of the game. For 90% or higher grades, you will include a game over screen with a summary stats (Such as accuracy or goal rate; how many balls you hit; etc).
- Errors & Overall Completion:
- 60% Game not playable due to compiler errors or due to missing core functionality.
- 60-69%: Game playable with few major errors but nothing that breaks the game-play.
- 70-79% Game works but with a major error and/or few minor errors/issues
- 80-89% Game works with few minor errors/issues
- >90% No errors
Note: If there is any ambiguity regarding any of the points above, you have the creative liberty to develop the project based on your assumptions. You will be graded based on the assumptions you made, if it is provided in writing along with your submission.