Halo Section Bg

Angry Monkeys

Learn how to clean up your messy game code while building your own Tower Defense game! In this course, you’ll learn the art of clean and efficient game architecture by exploring design patterns like Singleton, Service Locator, and Dependency Injection, all while adding fun new features to the game!

What you'll learn

  • Singleton Pattern

  • Dependency Injection

  • Comparing Design Patterns

  • Tower Defense Game Features

  • Service Locator Pattern

  • Code Refactoring

  • Managing Dependencies

  • Game Architecture Principles

Requirements

  • Intermediate to Advanced proficiency in Unity.

  • Familiarity with Scriptable Objects, Unit Testing, Scripting in C#, and Animation in Unity.

  • Ability to read and understand existing Unity game code.

  • Prior experience working on Unity game projects.

  • A system with at least 8 GB RAM, i5 Processor, and 2 GB dedicated GPU.

  • Willingness to focus on design patterns, not Unity basics.

  • Ability to dedicate 15-20 hours per week for course activities.

  • Passionate about making games with a burning desire to become a game developer.

About This Course

Unlike traditional Unity courses that teach the basics, this course teaches you to improving code architecture and while understanding design patterns like Singleton, Service Locator, and Dependency Injection.. Starting with a fully functional but poorly structured Tower Defence game, you’ll incrementally learn how to refactor and optimize its architecture. Along the way, you’ll compare design patterns, explore their pros and cons, and implement new gameplay features to apply your knowledge.

This isn’t just about theory. It’s about hands-on learning. You’ll transform messy code into a robust, maintainable system while gaining insights into managing dependencies and designing flexible architectures. By the end, you’ll have a deeper understanding of architectural design patterns and the confidence to apply them to your future Unity projects.

Show More

Curriculum

7 materials
  • Angry Monkey Game - Project Goal
  • Preview

  • How to Fork Git Repository
  • Fork Project Repository
  • How to Clone Git Repository
  • Clone Forked Repository
  • How to Submit Assignments
  • How to make a WebGL Build
6 materials
  • Scriptable Objects and Enums - UAD
  • Preview

  • Enums (Bonus) - UAD
  • Preview

  • SRP, Scriptable Objects & Enumerations - UAD
  • Coroutines & Serializations - UAD
  • Coroutines & Serializations (Bonus) - UAD
  • Coroutines, Serialization & Async Await - UAD
12 materials
  • Introduction to Singleton - Chapter Goal
  • Introduction to Singleton - Chapter Setup
  • Architecture Overview
  • Architecture Overview
  • Placing Monkeys
  • Placing Monkeys
  • Implement Drag & Drop functionality
  • Why to use Singleton?
  • Why to use Singleton?
  • What is Singleton?
  • What is a Singleton?
  • Implement Singleton
8 materials
  • Generic Singleton
  • Generic Singleton
  • Implementing Generic Singleton
  • Implementing Generic Singleton
  • Implement Generic Singleton
  • Disadvantages of Singleton
  • Disadvantages of Singleton
  • [Solution] Generic Singleton
20 materials
  • Introduction to Service Locator - Chapter Goal
  • Preview

  • Service Locator - Chapter Setup
  • Shooting Bloons
  • Preview

  • Balancing shooting parameters
  • Preview

  • Balancing shooting parameters
  • Preview

  • Implement Shooting for Monkeys
  • Preview

  • Introduction to Service Locator
  • Preview

  • Introduction to Service Locator
  • Preview

  • Using Service Locator
  • Preview

  • Using Service Locator
  • Preview

  • Implementing Service Locator
  • Update Sound Service
  • Update UIService
  • Update UIService
  • Use Service Locator
  • [Solution] Introduction to Service Locator
  • How to make a WebGL Build
  • Asynchronous Operations in Unity WebGL
  • Upload and Share your Game Build
  • Your Game Page
27 materials
  • Dependency Injection - Chapter Goal
  • Dependency Injection - Chapter Setup
  • Sniper Monkey
  • Add Sniper Monkey
  • Disadvantages of Service Locator
  • Dependency Injection
  • Dependency Injection
  • Types of DI
  • Types of DI
  • DI in Player Service
  • DI in Player Service
  • DI in Player Service
  • Constructor vs Method DI
  • Constructor vs Method DI
  • DI in Wave Service
  • UIService Hint
  • UIService Hint
  • Use DI in all Services
  • DI in Bloon Controller
  • DI in Bloon Controller
  • Use DI in Non-Service Classes
  • Bug Fixing
  • [Solution] Dependency Injection for Service Classes - Chapter Solution
  • How to make a WebGL Build
  • Asynchronous Operations in Unity WebGL
  • Upload and Share your Game Build
  • Your Game Page
1 materials
  • Comparison For three design patterns
8 materials
  • Bonus Assignment Instructions
  • Preview

  • New Map
  • More Balloons
  • Upgrading Monkeys
  • How to make a WebGL Build
  • Asynchronous Operations in Unity WebGL
  • Upload and Share your Game Build
  • Your Game Page

Instructor

Mayank Grover

Founder, Teacher @ Outscal | EA, Kixeye, DeNA, Junglee, D.E. Shaw

Why you should learn from me:

  • Over 10 years of experience building games for major companies like EA, Junglee, DeNA.
  • Founder of Outscal, a thriving 9000+ member community dedicated to game development and career growth.
  • Proven track record of mentoring developers, with a focus on practical, career-accelerating skills.

Outscal Alumni

Vinay Kashyap
Gameplay Programmer at Ubisoft

Outscal delivers an unmatched journey into game programming: exceptional instructors, real-world projects, and a supportive community.

Sethunath R
Gameplay Engineer 2 at Zynga

The project-oriented approach at Outscal helped me make my portfolio and gave me a boost in getting my resume shortlisted with the studios I applied with.

Flemin Johnson
Consultant at Sagility

In a short span of 6 months, Outscal’s game development course helped me excel in my career and crack into one of the top gaming companies in India.

Swapnil Rane
Game Developer at Voodoo

Outscal boosted my confidence and taught me how to express my thoughts through game development.

Komal K
ASE at Light & Wonder

’I was a born genius, education ruined me.’ Outscal helped me rise again like a Phoenix contributing to my career transition from a sketch artist.

Ranjit Panjwani
Game Developer at Image Devices

Outscal helped me transition to my dream career in game development at the age of 32, highly recommended if you are looking to build a career in games.

Joy Kumar
Senior Software Engineer at Wildace

Outscal’s unique approach to online learning prepared me for future hurdles, the 1-on-1 mentor sessions accelerated my growth to the next level.

Milan George
Senior Programmer at Nytwolf Games

The project-oriented approach helped me completely grasp concepts better than anything taught to me during my conventional education.

Tanya Gupta
Unity 3D Developer at Terra

A great place to learn and grow in the video game development industry. The team is super supportive and went above and beyond to help me.

Chinmay Varmani
Indie Game Developer

The comprehensive game programming course offered by Outscal exceeded my expectations, highly recommended for aspiring game developers.

Aihasas Yadu
Unity Developer at Vapronix

Best part about Outscal is their 1-on-1 reviews for all codes and focusing on students individually.

Darren Henry
Game Developer at Redline Games

Outscal’s Game Development course is completely career-oriented, unlike traditional colleges which are just meant for exams.

Vidit Rawat
Engineer 1 at LightFury Games

With supportive and approachable mentors at Outscal and hands-on industry-level projects, I was able to turn my passion for game development into a career.

Choose Your Plan

CONTENT ONLY

$19.99

/ month

Access to all Content

Professional Certification

Mentor Support

Subscribe Now