Advanced Game Development (AGU301)
Vietnamese title: Phát triển game nâng cao
Credits: 3
Prerequisites: FGU301

Description:
This advanced Unity course builds on foundational skills to empower you with expert-level knowledge in creating professional, high-performance games. You'll dive deep into SOLID principles and design patterns for writing clean, scalable code, while mastering Unity's networking tools and cloud services to build engaging multiplayer experiences. Hands-on projects will help you optimize performance, integrate AI, and deliver polished games ready for consoles, PC, and beyond.

Key Learning Outcomes:
- Master SOLID Principles: Build a solid grasp of the five SOLID principles (Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation, and Dependency Inversion) and apply them to make your Unity code more modular and easier to maintain.
- Implement Design Patterns: Get hands-on with essential Unity patterns like Singleton, Observer, Command, Strategy, Factory, Decorator, and State to organize code, boost flexibility, and simplify complex game logic.
- Build with Unity Networking: Explore Unity Relay and Netcode to design smooth, reliable multiplayer systems that handle real-time interactions effortlessly.
- Integrate Unity Gaming Services: Use cloud tools like Player Authentication, Lobbies, In-Game Economy, and Leaderboards to add secure, scalable features that enhance player engagement.
- Optimize Performance: Discover profiling techniques and best practices to fine-tune your games for buttery-smooth gameplay, reduced lag, and efficient resource use on various devices.
- Create Multiplayer Games: Develop small real-time multiplayer prototypes using Unity's networking and collaboration tools, following industry-standard workflows.
- Leverage Unity AI: Incorporate AI models via Unity Sentis or similar tools to add intelligent behaviors, like smart NPCs or procedural content, to your game projects.

By the end of this course, you'll have the confidence and skills to solve tough game development problems, from code architecture to live multiplayer features, and produce professional-quality games with cutting-edge design and tech.

Learning outcomes:
Understand SOLID principles and design patterns in game development.
Ability to use common Unity design patterns, such as Singleton, Observer, Command, Strategy, Factory, Decorator, and State Pattern.
Understanding profiling in Unity
Understand how to optimize game performance.
Understand the Unity Netcode solution and Unity Services.
The ability to utilize Unity AI and apply AI models to game projects is essential.
Develop multiplayer game applications using Unity.
Collaborate effectively in a team environment for game development projects.

Student tasks:
- Students must attend more than 80% of contact slots in order to be accepted to the final examination.
- Student is responsible to do all exercises, assignments and labs given by instructor in class or at home and submit on time
- Use laptop in class only for learning purpose
- Promptly access to the FU CMS at https://lms-hcmuni.fpt.edu.vn/ for up-to-date course information

Tools:

Materials:
description: Unity 6.2 User Manual.
author: Unity Technologies
publisher: Unity Technologies
note: https://docs.unity3d.com/Manual/index.html
description: A tour of the C# language
author: Microsoft
publisher: Microsoft
note: https://learn.microsoft.com/en-us/dotnet/csharp/tour-of-csharp/overview
description: Unity’s official e-book: Level up your code with design patterns and SOLID
author: Unity Technologies
publisher: Unity Technologies
published_date: 2024
note: https://unity.com/resources/design-patterns-solid-ebook
description: Unity’s official e-book: Optimize your console and PC game performance
author: Unity Resources
publisher: Unity Technologies
published_date: 2023
note: https://unity.com/resources/optimize-your-console-and-pc-game-performance
description: Unity’s official e-book: Ultimate Guide to Profiling Unity Games
author: Unity Resources
publisher: Unity Technologies
published_date: 2023
note: https://unity.com/resources/ultimate-guide-to-profiling-unity-games
description: Unity’s official e-book: The ultimate guide to multiplayer networking for advanced Unity developers
author: Unity Resources
publisher: Unity Technologies
published_date: 2024
note: https://unity.com/resources/ultimate-guide-advanced-multiplayer-networking
description: Unity Gaming Services
author: Unity Technologies
publisher: Unity Technologies
note: https://docs.unity.com/ugs/en-us/manual/overview/manual/unity-gaming-services-home

Assessments:
category: Assessment (PBL milestones check)
type: on-going
weight: 30.0
duration: 20'/group
question_type: Assessment 1 (Week3): CLO1, CLO2
Assessment 2 (Week 6): CLO3, CLO4, CLO7
Assessment 3 (Week 8): CLO5, CLO6, CLO7
no_question: The student presents slides, gives a demonstration, and answers questions from the lecturer.
knowledge_and_skill: By instructor
grading_guide: Assessment 1: CLO1, CLO2
Assessment 2: CLO3, CLO4, CLO7
Assessment 3: CLO5, CLO6, CLO7
note: in class, by instructor
category: Final Project Presentation
type: on-going
weight: 30.0
duration: 30'/group
question_type: CLO7, CLO8
no_question: The student presents slides, gives a demonstration, and answers questions from the lecturer.
knowledge_and_skill: By instructor
note: in class, by instructor
category: Progress test (Quiz)
type: on-going
weight: 15.0
duration: 30'
question_type: Quiz 1: Chapter 1; CLO1, CLO2
Quiz 2: Chapter 2; CLO3, CLO4
Quiz 3: Chapter 4, 5, 6; CLO5, CLO6
no_question: Multiple choices
Marked by Computer or a suitable format
knowledge_and_skill: 25
grading_guide: Quiz 1 cover content: Chapter 1, 2
Quiz 2 cover content: Chapter 3, 4
Quiz 3 cover content: Chapter 5, 6, 7
note: by exam board,
using computer
category: Final Exam
type: Final exam
weight: 25.0
duration: 60'
question_type: CL1 - CLO6
no_question: Multiple choices
Marked by Computer
knowledge_and_skill: 50
grading_guide: concepts, algorithms;
all studied chapters
note: by exam board, using computer

Schedule:
session: Course Introduction & Topic Allocation.
learning_outcomes: IT
materials: AGU301
session: Course Introduction & Topic Allocation.
learning_outcomes: IT
materials: AGU301
session: Chapter 1: SOLID and Common Design Pattern in Game Development
1.1 The SOLID principles
learning_outcomes: T
session: Chapter 1: SOLID and Common Design Pattern in Game Development
1.1 The SOLID principles
learning_outcomes: T
session: Chapter 1: SOLID and Common Design Pattern in Game Development
1.1 The SOLID principles
learning_outcomes: T
session: Chapter 1: SOLID and Common Design Pattern in Game Development
1.1 The SOLID principles
learning_outcomes: T
session: Chapter 1: SOLID and Common Design Pattern in Game Development
1.2 Design patterns for game development
learning_outcomes: T
session: Chapter 1: SOLID and Common Design Pattern in Game Development
1.2 Design patterns for game development
learning_outcomes: T
session: Chapter 1: SOLID and Common Design Pattern in Game Development
1.2 Design patterns for game development
learning_outcomes: T
session: Chapter 1: SOLID and Common Design Pattern in Game Development
1.2 Design patterns for game development
learning_outcomes: T
session: Chapter 1: SOLID and Common Design Pattern in Game Development
1.2 Design patterns for game development
learning_outcomes: T
session: Chapter 1: SOLID and Common Design Pattern in Game Development
1.2 Design patterns for game development
learning_outcomes: T
session: Assessment 1 (Week3): Milestone 1 Review & Evaluation
learning_outcomes: TU
session: Assessment 1 (Week3): Milestone 1 Review & Evaluation
learning_outcomes: TU
session: Quiz 1
learning_outcomes: U
session: Chapter 2: Optimize your game performance
2.1 Profiling
learning_outcomes: T
session: Chapter 2: Optimize your game performance
2.1 Profiling
learning_outcomes: T
session: Chapter 2: Optimize your game performance
2.1 Profiling
learning_outcomes: T
session: Chapter 2: Optimize your game performance
2.2 Use the Memory Profiler
learning_outcomes: T
session: Chapter 2: Optimize your game performance
2.2 Use the Memory Profiler
learning_outcomes: T
session: Chapter 2: Optimize your game performance
2.2 Use the Memory Profiler
learning_outcomes: T
session: Chapter 2: Optimize your game performance
2.3 Programming and code architecture
learning_outcomes: T
session: Chapter 2: Optimize your game performance
2.3 Programming and code architecture
learning_outcomes: T
session: Chapter 2: Optimize your game performance
2.3 Programming and code architecture
learning_outcomes: T
session: Chapter 2: Optimize your game performance
2.4 Unity profiling and debug tools
learning_outcomes: T
session: Chapter 2: Optimize your game performance
2.4 Unity profiling and debug tools
learning_outcomes: T
session: Quiz 2
learning_outcomes: U
session: Chapter 3: Unity networking solutions
3.1 Netcode for GameObjects and Netcode for Entities
3.2 Setting up your first Netcode project.
Network synchronization
learning_outcomes: T
session: Chapter 3: Unity networking solutions
3.1 Netcode for GameObjects and Netcode for Entities
3.2 Setting up your first Netcode project.
Network synchronization
learning_outcomes: T
session: Chapter 3: Unity networking solutions
3.1 Netcode for GameObjects and Netcode for Entities
3.2 Setting up your first Netcode project.
Network synchronization
learning_outcomes: T
session: Chapter 4: Third-party networking
learning_outcomes: TU
session: Chapter 4: Third-party networking
learning_outcomes: TU
session: Chapter 4: Third-party networking
learning_outcomes: TU
session: Assessment 2 (Week 6):Milestone 2 Review & Evaluation
learning_outcomes: TU
session: Assessment 2 (Week 6):Milestone 2 Review & Evaluation
learning_outcomes: TU
session: Assessment 2 (Week 6):Milestone 2 Review & Evaluation
learning_outcomes: TU
session: Chapter 5: Inference Engine (Unity Sentis)
5.1 Understand the Inference Engine workflow
5.2 Models in Inference Engine
learning_outcomes: TU
session: Chapter 5: Inference Engine (Unity Sentis)
5.1 Understand the Inference Engine workflow
5.2 Models in Inference Engine
learning_outcomes: TU
session: Chapter 5: Inference Engine (Unity Sentis)
5.1 Understand the Inference Engine workflow
5.2 Models in Inference Engine
learning_outcomes: TU
session: Chapter 5: Inference Engine (Unity Sentis)
5.3 Use tensors
learning_outcomes: TU
session: Chapter 5: Inference Engine (Unity Sentis)
5.3 Use tensors
learning_outcomes: TU
session: Chapter 5: Inference Engine (Unity Sentis)
5.3 Use tensors
learning_outcomes: TU
session: Chapter 6: AI Assistant
learning_outcomes: TU
session: Chapter 6: AI Assistant
learning_outcomes: TU
session: Chapter 6: AI Assistant
learning_outcomes: TU
session: Assessment 3 (Week 8):Milestone 3 Review & Evaluation
learning_outcomes: TU
session: Assessment 3 (Week 8):Milestone 3 Review & Evaluation
learning_outcomes: TU
session: Quiz 3
learning_outcomes: U
session: Chapter 7: AI generator
7.1 Sprite Generator and Texture2D Generator
7.2 Sound Generator
learning_outcomes: TU
session: Chapter 7: AI generator
7.1 Sprite Generator and Texture2D Generator
7.2 Sound Generator
learning_outcomes: TU
session: Chapter 7: AI generator
7.1 Sprite Generator and Texture2D Generator
7.2 Sound Generator
learning_outcomes: TU
session: Chapter 7: AI generator
7.3 Animation Generator & Material Generator
learning_outcomes: TU
session: Chapter 7: AI generator
7.3 Animation Generator & Material Generator
learning_outcomes: TU
session: Chapter 7: AI generator
7.3 Animation Generator & Material Generator
learning_outcomes: TU
session: Final Project Presentation
learning_outcomes: U
session: Final Project Presentation
learning_outcomes: U
session: Final Project Presentation
learning_outcomes: U
session: Final Project Presentation
learning_outcomes: U
session: Final Project Presentation
learning_outcomes: U
session: Final Project Presentation
learning_outcomes: U