Unity Microgame Project
We have been spent multiple days creating a basic game called Rollball. We have:
- Created a playing field, player, and collectable items using built in 3D shapes
- Added color to our 3D objects
- Applied both physics and transform based object movements
- Used the new Unity Input System to capture player movement and jumping
- Detected ridgidbody collisions and trigger events
- Applied physics materials for more realistic physics effects
- Added sound effects to actions to create feedback for the player
- Score tracking and display
- Win and lose conditions
Now it’s your turn! Using what we have learned from constructing the Rollball project I want you to create your own 3D Microgame. While it is expected that you will borrow concepts from the Rollball project, you must create A DIFFERENT GAME that has it own gameplay. A microgame doesn’t have to be advanced, it just needs to have basic gameplay mechanics and a solid gameplay loop implemented effectively. You can create lots of cool games with what you know already. If you are unsure about what you want to make here are just a few ideas:
- A maze game
- A platforming game
- A precision movement game (sometimes called a “Rage” game)
- A “runner” game where you roll and jump past obstacles and a “game over” trigger follows you
- etc.
You can also start from the mechanics and work backwards:
- Maybe there are good and bad collectables
- Increase/decrease gravity, speed, drag, etc.
- Maybe we can’t touch the floor, walls, etc.
- Maybe we have a time limit
- Maybe we need to find and collect a certain item and bring it to a location
- Maybe we need to perform actions in a certain order to solve a puzzle
- Maybe another shape chases us and if we touch, “game over”
- etc.
Be creative! This can easily be a portfolio project that you can add to your resume and put on your GitHub account.
Requirements
Read the following throughly so you understand the expections. If you have questions or concerns, please let your professor know!
Game Requirements
- The game is in 3D game
- Has a sensible/appealing color scheme
- Has clear “win”/”lose” conditions
- Make sure winning is possible (especially if you create a precision/”rage” game)
- Plays sound effects to match the visible feedback of your game
- Displays TextMeshPro UI Elements to show Win/Lose
- If the game has a score mechanic, that must display as well
- Uses the new Unity Input System we used in class (already imported into the project, you just need to add it to your “player”)
- Features distinct gameplay when compared to the Rollball demonstration
- Have ONE unique feature we DID NOT COVER in class!
- The feature should add something to your game (either presentation or mechanics) and be cohesive to the experience
- Can be a new Unity component or the application of a unique feature to your game using code
- Do a little research, watch a tutorial, read some documentation, etc.
Code Requirements
- Have clean, organized, and documented code scripts:
- APPLY YOUR KNOWLEDGE OF WRITING PROFESSIONAL QUAILTY CODE
- Appropriate use of variable scope (public/private/protected)
- Remember to use
[SerializeField]
for varibles that are private to your script (not needed externally), but you still want access to them from the Unity Inspector.
- Use of functional decomposition
- Appropriately name variables and functions
- Consistent coding style (indentation, whitespace, brackets)
- etc.
Documentation Requirements
You will also include a README.md (markdown file) that documents your game. The document should have no less than two well formed paragraphs of content. You can read up on the Markdown format if you are unfamiliar. VSCode can help syntax highlight a markdown document, but there are also some online markdown editors, such as https://dillinger.io/ or https://stackedit.io/app#, that can make things a bit easier . With an online editor, you can simply copy and paste the markdown code from the editor to your README.md file.
Your paragraph README.md should include:
- How is the game played?
- What are the features?
- Describes the unique feature used in your game
- What is it?
- What is it used for?
- How does it fit with your game?
- What resource(s) did you use?
Implementation
This is up to you…
Just follow the guidelines above. Remember to be distinct from Rollball and be creative.
HAVE FUN!
Submissions
All assignments will be submitted via gitkeeper.
Grading
A Rollball clone will receive a failing grade.
You will earn up to 80 points for this exercise, broken down as follows:
- 20 pts - Unique gameplay mechanic (how you play the game)
- 10 pts - Win and Lose Condition
- 5 pts - UI Elements are present
- 5 pts - Movement with the new Unity Input System
- 5 pts - Sound Effects
- 20 pts - Professional and well-organized script code with a consistent style
- Correctness - the software performs as expected and with the features outlined in the README.md
- Documentation - The Class (script) has a leading comment to describe its purpose, function purposes are documented, and any complicated sections of code are explained with a comment.
- Solution Design - Proper use of private/public functions and variables (use [SerializeField] when necessary), Classes (scripts) and functions serve a clear purpose, use of supporting functions to consolidate functionality and reduce code duplication
- Code Style - Variable and function names describe their purpose clearly and follow stylistic convention, whitespace is used appropriatly and consistently, and function curly braces and indentation are all placed consistently
- 10 pts - One new Unity or code based feature
- 5 pts - README.md documentation (properly formatted markdown you can preview it in the online editors)