Welcome to the repository for Minor Game Design & Development - Unity Development (Rotterdam University of Applied Sciences - CMGT).
This curriculum guides students from foundational 2D game prototyping to advanced 3D game architecture, visual effects, shader development, and performance optimization using the Universal Render Pipeline (URP) in Unity.
- Interactive Course Presentations Portal
- Unity Tips & Complete Reference Manual
- C# Unity Code Snippets Library
- GDD Resources & Asset Catalog
- Curated Video Tutorials & Documentation
- Git & Team Collaboration Guide
- Project Starter Files & Packages
- Target Engine: Unity 6 (6000.x) with Universal Render Pipeline (URP)
- Primary IDE: JetBrains Rider / Visual Studio 2022
- Language: C# (.NET Standard)
- Version Control: Git + Git LFS (Large File Storage)
| Week | Lesson Code | Topic & Content | Material & Assignment |
|---|---|---|---|
| 1.1 | 01_basics1 |
Introduction Unity 2D (Workshop) • GameObjects, Components, Prefabs • Script Lifecycle ( Awake, Start, Update, FixedUpdate)• 2D Physics ( Rigidbody2D, Collider2D, Physics Materials)• New Input System & Cinemachine 2D Camera Follow |
Lesson 1.1 Material Slide Deck |
| 1.2 | 02_basics2 |
Object Communication & Data Containers • Physical Collisions & Stomp Detection ( OnCollisionEnter2D)• Component Safety ( TryGetComponent, CompareTag)• Data Architecture (Arrays, Lists, Dictionaries, ScriptableObjects) • Asynchronous Coroutines & Event Decoupling |
Lesson 1.2 Material Slide Deck |
| 1.3 | 03_UI |
UI Layouting & Data Persistence • Canvas Scaler (1920x1080 Match 0.5) • Anchors & Pivots Responsive Layout • TextMeshPro & Decoupled UI Events • JSON Data Persistence ( JsonUtility) |
Lesson 1.3 Material Slide Deck |
| 1.4 | 04_architecture |
Game Architecture 1: Decoupling & Prefab API • Prefab as an API (The Black Box Pattern) • ScriptableObject Event Channels & Memory Safety • Robust Generic Persistent Singletons • Multi-Scene Additive Loading ( LoadSceneAsync) |
Lesson 1.4 Material Slide Deck |
| 1.5 | 05_release_polish |
The Release Candidate: Polish, Lifecycle & Telemetry • Screen Faders & First-Run Onboarding Detection • Mobile App Lifecycle ( OnApplicationPause) & State Protection• Procedural Micro-Animations ( AnimationCurve) & Audio Randomization• Online Leaderboards & Google Sheets Playtest Telemetry |
Lesson 1.5 Material Slide Deck |
| 1.6 | -- |
Concept Presentations 2D Project & Feedback | -- |
| 1.7 / 3D.1 | 06_block_prototyping |
3D Block Prototyping & Greyboxing • Level Design Metrics (1 unit = 1 meter) • ProBuilder In-Engine Geometry & Snapping ( Ctrl & V)• Camera-Relative CharacterController & Ballistic Jump• Cinemachine 3.x Third-Person Rig & Modern NavMeshSurface AI |
Lesson 3D.1 Material Slide Deck |
| 1.8 | 08_gamejam2 |
Blocktober Demo & Midterm Milestone Playtests | Coming Soon |
| 1.9 | 09_problemsolving |
Debugging, Profiling & Problem Solving | Coming Soon |
| 1.10 | 10_architecture2 |
Game Architecture 2: Finite State Machines & Refactoring | Coming Soon |
| Week | Lesson Code | Topic & Content | Material & Assignment |
|---|---|---|---|
| 2.1 | 21_optimization |
Performance Optimization & Rendering | Coming Soon |
| 2.2 | 22_materialsandshaders |
URP Materials & Shader Graph | Coming Soon |
| 2.3 | -- |
Concept Presentations 3D Project & Review | -- |
| 2.4 | 24_3Danimation |
3D Character Animation & Rigging | Coming Soon |
| 2.5 | -- |
Milestone Playtesting & Polishing | -- |
| 2.6 | 26_VFX |
Visual Effects & Post-Processing (URP) | Coming Soon |
| 2.7 | 27_audio |
Audio Systems & Dynamic Sound | Coming Soon |
| 2.8 | -- |
Final Project Polish & Profiling | -- |
| 2.9 | -- |
Final Presentations & Expo 3D Project | -- |
- Zero Compilation Warnings: Code must compile cleanly without unassigned variables or deprecated API warnings.
- Separation of Concerns:
- Visuals (Renderers, Animators) on child object.
- Physics (
Rigidbody,Collider) on root object. - Logic in modular, decoupled C# scripts.
- Framerate Independence:
- Movement in
Update()must multiply byTime.deltaTime. - Physics mutations must occur in
FixedUpdate().
- Movement in
- No GC Allocation in Loops: Avoid
new, string concatenation, and LINQ queries insideUpdate()andFixedUpdate().