For this project, you’ll build a 2D game in Unity — starting from a completely blank project with no assets provided, you’ll create the entire game from start to finish. In the game, you fly a simple triangle-shaped ship using mouse clicks (or screen taps on mobile). Your goal: stay alive for as long as you can by dodging flying obstacles while your score increases over time.
Along the way, you’ll learn the fundamentals of working in 2D, from navigating the Scene view to coding simple gameplay interactions. You’ll also explore key Unity systems like a user interface (UI), particle effects, audio, and publishing. By the end, you’ll not only have a complete, playable game, but you’ll also have the skills to start building your own original 2D projects.
Component | Points | Criteria |
---|---|---|
Base Game Implementation | 70 | |
Player Movement | 15 | - Ship moves correctly with mouse/touch input - Ship rotates to face cursor - Movement feels responsive |
Obstacle System | 15 | - Obstacles spawn randomly - Physics/bouncing works correctly - Proper prefab implementation |
Collision Detection | 15 | - Collisions properly detected - Game ends on collision - Explosion effect triggers |
UI & Score System | 15 | - Score increments properly - UI displays correctly - Game over screen functional |
Core Game Loop | 10 | - Game starts properly - Can restart after game over - No major bugs in flow |
Extensions | 20 | |
Extension Implementation | 20 | - Minimum 20 points from extensions - Features work as described - No breaking of base game |
Documentation | 10 | |
README Quality | 10 | See detailed rubric below |
Aspect | Excellent (2 pts) | Good (1 pt) | Needs Work (0 pts) |
---|---|---|---|
Game Overview & Link | Unity Play link works, clear description, complete controls/instructions | Basic description and link provided | Missing link or inadequate description |
Base Implementation Status | Thorough status checklist, all bugs documented, limitations explained | Basic status provided, some bugs noted | Incomplete or missing status |
Extensions Documentation | Each extension fully documented with implementation details, impact, and issues | Extensions listed with basic descriptions | Extensions poorly documented or missing |
Technical Writing | Professional tone, well-organized, proper markdown formatting, no spelling/grammar errors | Generally clear with minor issues | Difficult to read or understand |
Credits & Reflection | All assets credited, thoughtful reflection on learning and challenges | Basic credits and reflection | Missing credits or reflection |
Extension | Points | Description |
---|---|---|
Cohesive Color Scheme | 2 | Unified visual theme using color palette |
Change Game Concept | 3 | New theme while keeping mechanics |
Swap Sprites | 3 | Replace shapes with custom/free sprites |
Destroy Borders on Game Over | 4 | Obstacles fly off-screen when game ends |
Ambient Background Particles | 4 | Atmospheric particle effects |
Increase Difficulty Over Time | 5 | Progressive difficulty scaling |
Sound Effects & Background Music | 5 | Audio feedback and ambiance |
Animate Booster with Audio | 6 | Visual and audio thrust feedback |
Minimum Passing (70%) - Base Game: 70 points (all features working) - Extensions: 0 points (none implemented) - Documentation: 0 points (missing/inadequate) - Total: 70/100 = C-
Good Submission (85%) - Base Game: 65 points (minor bugs) - Extensions: 15 points (implemented 3-4 extensions) - Documentation: 5 points (adequate documentation) - Total: 85/100 = B
Excellent Submission (95%+) - Base Game: 70 points (polished, no bugs) - Extensions: 20+ points (creative implementations) - Documentation: 10 points (professional quality) - Total: 100/100 = A+
Follow the complete “2D Beginner Game: Sprite Flight” tutorial course on Unity Learn. This includes:
The base game must be fully functional with:
Choose extensions from the list below to earn up to 20 points. You may implement any combination that totals at least 20 points.
Use an online color palette generator to create a unified visual theme. Apply consistent colors to your player, obstacles, background, and UI elements using hex codes.
Transform the theme while keeping the mechanics. Examples: mouse escaping cats, alien dodging meteors, or pizza slice flying through space. Use Unity’s 2D primitives (triangles, rectangles, capsules) to create new visuals.
Replace default shapes with custom sprites or free assets from Unity Asset Store, OpenGameArt.org, or Kenney.nl. Add sprites as child GameObjects and properly configure sprite renderers.
Modify the PlayerController script to disable screen borders when the player dies, allowing obstacles to fly off-screen. Requires creating a reference to the Borders GameObject and calling SetActive(false)
on collision.
Create a particle system for atmospheric effects (stars, dust, sparkles). Configure emission area, particle size, lifetime, and velocity to create subtle background motion.
Make the game progressively harder by adjusting obstacle physics. Set the Physics Material’s bounciness slightly above 1.0 (e.g., 1.05) so obstacles gain speed with each bounce. Optionally clamp maximum velocity in code.
Implement audio feedback including:
Create responsive controls with visual and audio feedback:
Example 1: Visual Overhaul (20 points) - Color scheme (2) + Change concept (3) + Swap sprites (3) + Particles (4) + Sound effects (5) + Change concept (3) = 20 points
Example 2: Gameplay Enhancement (21 points) - Destroy borders (4) + Difficulty scaling (5) + Sound effects (5) + Animated booster (6) = 20 points
Example 3: Complete Package (24 points) - Color scheme (2) + Swap sprites (3) + Particles (4) + Sound effects (5) + Difficulty (5) + Borders (4) = 23 points
Your README.md must demonstrate professional technical writing and thorough documentation. This is worth 10% of your grade and will be evaluated on completeness, clarity, and professionalism.
v1.0
, v1.1
for iterationsCreate a comprehensive README.md file in your repository root with the following sections:
For each extension implemented, include:
# [Your Game Title]
## Play the Game
**Unity Play Link**: [Your Unity Play URL]
## Game Overview
[Brief description of your game and its objective]
### Controls
- [List controls here]
### How to Play
[Instructions for playing the game]
## Base Game Implementation
### Completion Status
- [x] Player movement and controls
- [x] Obstacle spawning system
- [x] Collision detection
- [x] Score system
- [x] Game over state
- [ ] [Any incomplete features]
### Known Bugs
- [List any bugs in base game]
### Limitations
- [List any limitations]
## Extensions Implemented
### 1. [Extension Name] (X points)
**Implementation**: [How you implemented it]
**Game Impact**: [How it changes gameplay]
**Technical Details**: [Key technical changes]
**Known Issues**: [Any bugs specific to this extension]
### 2. [Extension Name] (X points)
[Repeat format for each extension]
## Credits
- [List any external assets used]
- [Credit sources for sprites, sounds, etc.]
## Reflection
**Total Points Claimed**: [Base: 70 + Extensions: X + Documentation: X = Total]
**Challenges**: [What was difficult]
**Learning Outcomes**: [What you learned]
## Development Notes
[Any additional notes about your development process]
Before submitting, ensure you have:
While you may use tutorials and external assets, all code modifications and game design decisions should be your own work. Properly credit any external resources in your README file.
Remember that this project becomes part of your professional portfolio. A well-documented, polished game with thoughtful extensions demonstrates your ability to:
Take pride in creating something you’d be excited to show potential employers!