Outscal_Black.png
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

Start Your Journey with Outscal Now

Stop thinking! Reading this in 2025 is a sign to begin your game dev journey. Get, Set, Go!

Karen Samá

Karen Samá

Senior Player Support Specialist

Hello everyone!

I'm delighted to share that I'm starting my new journey with Outscal's Full Stack Game Development program! 👾

Ever since I first picked up an Atari controller as a kid, I've always had a passion for gaming. Besides gaming on PC, the next consoles during my childhood were a Game Boy Color and a Nintendo 64. The immersive worlds, the strategic gameplay, the storytelling — everything about gaming has captivated me since then. I love playing RPGs, card games, and anything that lets me get lost in a story or challenges my mind. I have always been a creator of sorts, creating my own budget board games, characters, and so on.

My trajectory to where I am now was far from the usual one. From graduating in Japanese Language, graduating from a Flight Attendant School, and experiencing the backdoor of players' game experience as a Mobile Game Customer Support, every step has brought me closer to this decision. After much thought, I decided to dive into the gaming industry and turn my passion into a career!

I'm incredibly excited to start this journey and while it may be a bit of a big dream of mine, I wish to create games that not only entertain but also inspire people as much as I've been inspired throughout my life by games.

Fun fact, my work setup can be seen in the photo and it includes a special spot for my comrades in gaming. 🐱

#GameDevelopment #NewJourney #Outscal #GamingIndustry

David Rogers

David Rogers

Aspiring Software Developer | Information Technology Graduate | Passionate About Building Innovative Solutions

Today, I am beginning my journey to become a game developer with Outscal's Full Stack Game Development program.

I've always known that I wanted to do software development. I've always been passionate about playing video games and fiddling with technology since I was a kid too. I surprised even myself when I obtained my bachelor's degree from the University of Phoenix in September after multiple obstacles. I proved to myself that no matter how bad things were, I've always found a way to improve myself.

With that in mind, I decided to pursue game development. I'm really excited to start! With my decent setup, and unopened Warhammer minis, I'm confident I'll succeed here too!

I wanted to sincerely thank Mayank Grover for helping me get into the program by offering me a plan that works for me to pursue my dream.

#gamedevelopment #gamedev #Outscal

Abhijith Biju

Abhijith Biju

Game Developer | 3D Artist | Outscal

Hello, Connections! I’m thrilled to share that I’ve embarked on a new adventure with Outscal’s Full Stack Game Development program.

As someone deeply passionate about playing games and bringing creative ideas to life through 3D art, I’ve always been fascinated by the magic behind games. Spotting little details in games sparked my curiosity about how these incredible experiences are crafted. This curiosity has now turned into a goal—to create games that inspire, entertain, and leave a mark. Joining the gaming industry feels like a natural step to combine my love for creativity, technology, and storytelling.

I’m super excited to learn, grow, and connect with like-minded individuals in this amazing field. Here’s to building something extraordinary—one line of code and one pixel at a time!

#gamedevelopment #gameindustry #gamecommunity #gamedeveloper #Outscal #ProjectsAtOutscal #connect

Ege Yilmaz

Ege Yilmaz

Game Developer | Interested in Tools and Gameplay Programming | Unity & UE5

I am officially enrolled in Outscal's Full Stack Game Development program!!
The best part of this last year has been the newfound understanding I have developed over a lot of underlying computer systems that we disregard as consumers. It has been a fairly silent process that involved a lot of lectures and just as many long nights of tinkering.

I want that to change. Going forward, I am hoping that my time with Outscal will push me to showcase my knowledge and not just sit on it. On the 20-something projects I'll be completing within the next 6-9 months, I will try to integrate my pre-existing expertise while filling the gaps that have naturally formed as I taught myself how to develop games during the last two years.

I am excited for what's to come.

Mayank Grover

Vimarsh Sharma

Vimarsh Sharma

Software Developer | XR Developer

I am glad to be joining Outscal's learning programme, Cohort clan-20.
I will make sure to give it my all, getting maximum out of this opportunity.
I would like to introduce my clanmates -> Tanya Gupta Kunal Khedkar Alok Hirekhan and many others which I will keep on adding as I keep on building my connection network via LinkedIn
My mentors for the session -> Malhar Devasthali Manas Gangwani

Thanks

Manas Gangwani Malhar Devasthali Mayank Grover

Tanya Gupta

Tanya Gupta

Game Programmer

I'm excited to tell you all that I have joined Outscal Clan 20.
I'm looking forward to this journey of learning game development with my Clan mates Vimarsh Sharma Pramod Aradhya Kunal Khedkar Alok Hirekhan Kishore M Vatsal Maheshwari Rushabh Gohel
Thank you
Mayank Grover Malhar Devasthali Manas Gangwani

UNLOCK ACCESS NOW

Game Projects Built By Industry Experts

We brought together game dev professionals with decades of experience to create projects that leave a lasting impression. These are curated by Mayank, our founder, along with our in-house game developers who have worked on titles like Transformers, Temple Run 2, and many more.

When Mayank wanted to learn game development, he couldn’t find any online platform or bootcamp that provided enough knowledge to help him land a job in the industry. He had to move to the United States and take out a $100K USD education loan—a debt that took him over a decade to pay off.

Today, 60% of our team consists of game developers who initially joined our program as students, landed jobs in the gaming industry, and later returned to Outscal as employees. Their goal? To impact more lives and help others build a career in games.

MAYANK UPDATED#4.jpg

Project Updates

We encourage our clan members to build in public. Posting your progress on platforms like LinkeIin & Twitter holds you accountable and helps you reach the right audience. Imagine recruiters reaching out to you after seeing your daily progress. This is what our clan members have seen happening and its your turn now.

Kishore M

Kishore M

Unity Game Developer

Hello World!


This is a First-Person Hunter type Game. Developed this project in 4 days for Outscal's MAT assignment.


GitHub project link: https://lnkd.in/g4Ci29Gw

Playable Game link: https://lnkd.in/gXUHhnKw


Design Patterns ☟

  • Generic Singleton: Created Generic Singleton and made Service script as Singletons from Generic Singleton.
  • MVC-S: Created Model View Controller for Enemy, Weapon, and Bullet.
  • Scriptable Objects: Scriptable Object to store all different Enemy, Weapon, and Bullet data.
  • State-Machine: State Machine for Enemy to do assigned tasks only for that State.

Game Functionalities ☟

  • 3 types of Weapons: Single Pistol, Double Pistol, and Sniper.
  • 4 types of Enemies for Hunting.
  • Player can choose their Weapon and Enemy from Lobby.
  • Player can move into the world freely, but movement speed will be reduced according to Weapon weight.
  • Enemy will Patrol until Player enters the range.
  • No health for Player; if the Enemy reaches the Player, they will be Dead.
  • Different hit areas can reduce different damage for Enemy.
  • Zoom functionality for Sniper.

Clanmates ➾ Tanya Gupta, Vimarsh Sharma, Kunal Khedkar, P D Vivekanand, Pramod Aradhya, Ashwin Rajpurohit, Shakil Hassan, Tarun Rankawat, Rushabh Gohel, Vatsal Maheshwari.


Outscal Mentors ➾ Mayank Grover, Malhar Devasthali, Arindam Bharati, Praful Joshi.


#outscal #projects #outscalassignments #gamedesign #unity3d #unitygames #gamedev

Felipe Assis

Felipe Assis

I am a developer specialized in C# and Unity, with considerable knowledge in c++, Unreal, Java, Javascript, Node.Js, Angular and React

I’ve started the State Machine Pattern module in the Game Development Advanced course at Outscal! ⚙️

The State Machine Pattern is a fundamental approach in game development for managing different system states, such as character animations, AI logic, or game phases.
It helps organize and control transitions clearly and efficiently, reducing code complexity.

I’m excited to dive deeper into this pattern and see how it can make my projects more robust and scalable!

Darshan Sahay

Darshan Sahay

Jr. Software Engineer

Hello everyone,

I want to share an update on the project "Home Calling" that I have been working on as a part of Outscal Gamejam.

I have created a 3D Hack and Slash game which features 2 playable characters.
To create the project, I have used State Behaviors for the enemies and Animation Events for characters.

I would like to thank my mentors Mayank Grover and Malhar Devasthali from Outscal for guiding me and helping me in creating the project.
I would also like to thank my clanmates who constantly supported me throughout the project.

You can download the project from the link below and share your feedback and suggestions, as the project is still in development.

RAHUL PARGI

RAHUL PARGI

Game Developer @ Pixent Interactive | Unity | Unreal Engine

Hello Connections,


Excited to share my project "Mech Ninja: Rogue Hunter" - a 3D action game that puts you in the shoes of a Mech Ninja on a mission to take down rogue mechs and their formidable boss!


Experience it with its high-quality graphics and captivating audio effects.


Features:


Core Gameplay:

A. Player actions include running, rolling, and attacking with swords.
B. Three types of attacks:

  • Normal Attack
  • 2-step Combo Attack
  • 3-step Combo Attack
  • Dash Attack (slide forward and attack from a distance)

Healing Orbs:

  • Defeating enemies causes them to drop healing orbs that restore the player's health.

Enemy AI:

  • Enemies spawn as you enter their area, and they patrol the vicinity.
  • They will chase you when detected, attacking until you are defeated.

Boss Fight:

  • The boss enemy launches a barrage of fire orbs that players must skillfully evade to minimize damage.

Code Structure:


MVC-S (Model-View-Controller-Service):

  • The codebase is organized using the Model-View-Controller-Service (MVC-S) architectural pattern.
  • This approach maintains a clear separation of concerns:
    • The Model manages data.
    • The View is responsible for UI-related tasks and input handling.
    • The Controller is responsible for updating both the View and Model.
  • Classes for Player, Enemy, Pickups (Healing Orb), DamageOrb (FireOrb), GameManager, GameUI, Level, and Score have been implemented following the MVC pattern.

Singletons:

  • Centralized control is ensured through the implementation of Singleton patterns.
  • Essential services such as PlayerService, EnemyService, PickupsService (Healing Orb), DamageOrbService (FireOrb), GameService, GameUIService, and LevelService are designed as Singletons.

State Pattern:

  • Utilized the state pattern to manage player and enemy states.
  • Player States: Idle, run, roll, attack, dash attack, hurt, and death.
  • Enemy States: Idle, run, patrol, pursue, hurt, attack, and death.

Observer Pattern:

  • Employed the observer pattern to decouple classes and facilitate event handling for events such as player death, enemy hit, enemy death, and enemy group death.
  • This facilitates the activation of the game over screen and the opening of the gate when the enemy group is defeated.

Scriptable Objects:

  • Scriptable objects were utilized to configure player and enemy data, providing a flexible and efficient approach for handling their attributes.

Performance Optimization:

  • To optimize performance, object pooling is implemented for enemies, damage orbs, pickups, and various VFX, effectively managing memory and CPU usage.

Play the game (WebGL): https://lnkd.in/dMuuMyFd


Download the .exe file for the best performance from my GitHub repository: https://lnkd.in/dBQSJSYD


Mayank Grover, Malhar Devasthali, Arindam Bharati


#GameDev #Unity3D #MechNinja #RogueHunter

Adrien Gooding

Adrien Gooding

CSM | I've got a passion for production and I'm not afraid to use it!

I'm still plugging away at Outscal's Full-Stack Game Dev course, and while I'm still feeling totally lost most of the time, I'm definitely learning!


Before I started, coding seemed like sorcery. You use a bunch of letters and numbers to conjure an app, a website, a game out of thin air. I'm still nowhere close to being able to code a game, but I'm starting to get a grasp of how things work under the hood. It's not much to look at, but here's where I've gotten so far.


I've always thought coders/programmers were awesome for doing what they can do, but after taking this course and learning how complicated it can be just to get a window with a ship that moves left and right working, I have a much deeper respect for what all you devs out there are doing. You're all crazy tech wizards and total badasses.

Sarangu Baisil Sanal

Sarangu Baisil Sanal

Full Stack Game Developer(Trainee) at Outscal | Unity | C++ | SFML

If you had ever told the kid who played Duck Hunt on a secondhand game console his father bought him that he'd be developing this game in the future, he would have never believed it. Yet, years later, I've created a clone of one of the first games I ever played and loved as a child.


As part of the Module Assessment Test by Outscal, I was tasked with creating a Duck Hunt clone in just five days using C++ and the SFML libraries.


Here are some highlights of the game:

  • Wave System: The game includes three waves, each requiring the completion of specific tasks to progress.
  • Enemy Types: There are two types of enemies, each with distinct behaviors, adding complexity to the gameplay.
  • Design Patterns: The game's architecture employs design patterns like MVC, Object Pool, and Singleton to ensure clean and efficient code. I also utilized the State design pattern to manage different game states.

To make the game more challenging, I added a feature where the duck changes random direction every few seconds.


Currently, the game includes:

  • The player starts with three lives. If the task is completed, the player can progress to the next level; if not, the wave is repeated and one life is lost.
  • The main task is to eliminate a set number of enemies within a time limit before running out of ammo.
  • If the player completes all three waves with at least one life remaining, they win the game.
  • There are two types of ducks, each with different scores based on which one is shot.
  • The background color of the screen changes based on whether the player wins or loses.

Thanks to Mayank Grover, Arindam Bharati, Aditya Ajith, and Harsh Patel for all the support and guidance throughout this project.


Feel free to check out the game by following the link in the comment.


#buildinginpublic #gamedev #gamedevelopment #gameprogramming #CPlusPlus #SFML #Outscal

Abhijith Biju

Abhijith Biju

Game Developer | 3D Artist | Outscal

Hello Connections,


"This is the first game I’ve ever created! I didn’t have a specific concept in mind—I just made it while learning from tutorials and from Outscal.


It’s not finished yet, but I’d love to hear your suggestions on how I can improve it. Here’s a video of the game.


Let me know what you guys think!" 😊


#gamedevelopment #unity #2dgame #programming #GameIndustry #IndieGame #csharp #game #outscal

Utkarsh Sharan

Utkarsh Sharan

Full Stack Game Developer | Outscal | Unity, C#, C++, SFML

Outscal Game Jam!


I'm thrilled to share that I successfully created an Angry Birds-like mechanism within a 2-hour timeframe at the latest Outscal game jam!


Tasked with building a drag-and-shoot feature, I rose to the challenge and brought my idea to life, and I'm proud of what I achieved.


Vnsh Kumar, Vishal Deshmukh, Arindam Bharati, Avinash Yadav, Mirza Ali


#gamejam #gamedev #Outscal #angrybirds #gamedevelopment #programming #Unity #CSharp

Akash kapoor

Akash kapoor

Experienced Unity Game Developer | VR & Mobile Game Specialist | Expert in Unity3D, C#, and Multiplayer SDKs

Excited to Share My Latest Learning Journey!


I’m thrilled to announce that I’ve successfully completed the Sorting Module as part of my learning journey with Outscal. This module covered key sorting algorithms like:

  • Bubble Sort
  • Insertion Sort
  • Selection Sort
  • Merge Sort (In-Place and Out-of-Place)
  • Quick Sort
  • Radix Sort

To put my learning into practice, I developed an interactive Sorting Visualizer Project!


Project Highlights:

  • Visual representation of sorting algorithms in action.
  • Tracks the number of array accesses and comparisons for each algorithm.
  • Displays time complexity and space complexity insights dynamically.
  • Randomly spawned "sticks" are sorted using different algorithms, showing their unique efficiencies.

Key Learnings:

  1. Understanding which algorithms perform best in various use cases.
  2. For example:
    • Merge Sort: Excels with large datasets due to its stability and guaranteed O(n log n) performance.
    • Quick Sort: Great for in-place sorting when memory is limited, but careful pivot selection is key to avoiding worst-case scenarios.
    • Radix Sort: Shines in cases with fixed-length integers or strings, making it non-comparative yet highly efficient.

This hands-on experience has deepened my understanding of sorting algorithms and their practical applications. Special thanks to Mayank Grover and the amazing Outscal community for designing such engaging assignments that enhance learning through real-world projects.


Would love to hear your thoughts and feedback!


#LearningByDoing #SortingAlgorithms #DataStructures #Outscal #CodingJourney #VisualLearning

Deependra Das

Deependra Das

Game Developer | Learning Game Development at Outscal | Unity | C# | C++

Hello #Connections,


I want to share the progress about my learning about Design Patterns through the #AngryMonkeyDefense game. This week, I learned about the Singleton, Service Locator, and Dependency Injection to manage the code architecture of the game projects. I also learned about their advantages and disadvantages along with the use cases to evaluate their feasibility.


  • Singleton: Ensures a single instance of a class throughout the game lifecycle, reducing memory usage and providing global access while hiding the dependencies, which makes it hard to unit test.
  • Service Locator: Provides a central point to access services, promoting decoupling of classes from their dependencies.
  • Dependency Injection: Allows passing dependencies like service references through the constructor or method parameters of the dependent classes. This improves flexibility, the ability to test individual modules and services, and decoupling of components.

Along with that, I was able to extend some of the features of the tower defense game by using Scriptable Objects and Injecting Dependencies while refactoring the existing code to add types of monkeys, balloons, etc. Going forward, I plan to add more features like an upgrade system for monkeys, more maps, and balloon variations.


Thanks to Mayank Grover, Arindam Bharati, Malhar Devasthali, and other talented mentors and team for all the guidance.


#buildinginpublic #gamedev #gamedevelopment #gameprogramming #Unity3D #AngryMonkeyDefense #TowerDefense #DesignPattern #Outscal


I have added the GitHub link in the comments if you want to check it out and will add a playable build soon. For now, sharing the short gameplay video:

Gabriela Filipović

Gabriela Filipović

FINALLY!


Here it is, my first text-based adventure game in C++. Fresh out of the oven, baked with much love in my first BEGINNER C++ module...


I enjoyed this lesson (and the previous ones) so much! The videos were so well-structured that it was always crystal clear what the goal of each phase and code segment in this game's development was for.


Big shoutout to Malhar Devasthali, who made me laugh out loud so many times, that it felt like sitting with a friend making the seemingly hard things so easy to understand. Also, not to forget my dedicated mentor Mridul Agrawal, and the ongoing support of Arindam Bharati. And the reminders from Piyush Gautam and others, to always stay on track with the tasks.


Once more, a HUGE THANKS to the entire Outscal team with Mayank Grover and other members for accepting me into their clan. As I'm mentioning our Clan, I'm also using this opportunity to say "Hi!" to other members of my #Outscal #Clan35. See you in the Networking session this weekend! I always learn a lot from all of you new and experienced members—be it by #playing #games with you, or hearing about #GameDevelopment approaches and concepts.


ABOUT MY GAME:


My game is called KHUSHALI, my hero is called SHAKTI, and her enemy is called LOBH. Both ladies are good at what they do. And they have a lot to say...


If anyone is interested, I posted some screenshots of my game's output, where it's visible how the Player can interact. And I posted some segments of the code, where I used classes, objects, members, loops, conditions, randomization, etc.


In the game development phase, we had to think of a game story and give the characters—well—character, by deciding what they will say. It's a text-based game, after all.


Now I'm very excited to enter the next Module of the Course.


Until my next post about my progress in this course—stay healthy and curious!


#GameDevelopment #GameDev #Games #C++ #CPP #Outscal #Fullstack #Gamedeveloper #ProjectsAtOutscal #BuildInPublic

Matteo Lo Piccolo

Matteo Lo Piccolo

Always open to new job opportunities!

Yesterday I had a great chat with Mridul Agrawal about data structures and coding in general.


It was interesting to talk about how, when you start to understand in more detail how data structures work, every time you play a video game your mind starts to imagine how certain mechanics could have been implemented, or in any case, you have a slightly clearer idea about how you might approach problem-solving in general.


In the meantime, I continued to delve further and further into the "rabbit hole," taking a closer look at stacks and some of the issues related to them. The stack concept is linked to LIFO (Last In, First Out), so every time we insert data, the last one inserted will always be the first one returned.


For example, a stack of int 1 -> 2 -> 3 will return 3 -> 2 -> 1.


The interesting part was implementing the stack with an array and a LinkedList, considering that the functions of a stack,


push(), pop(), peek(), and isEmpty() all work in O(1).


The next step will be the Queues. I will keep you updated! ^^


Outscal Mayank Grover Malhar Devasthali Arindam Bharati


Chetan Rautela Syed Zainul Abedin Aryan Khera

Start Building Now

Our Alums Work Here

Banner #2.jpg
Become A Game Dev

Our Alums Work Here

BECOME A GAME DEV

Placements

We cut a cake every time one of our students gets placed—and the bakery’s on speed dial because these job offers just keep rolling in.

Bhawesh Agarwal

Bhawesh Agarwal

Game Programmer @ Kwalee | Unity , C# l Outscal Mafia

🎉 Exciting News! 🚀 Thrilled to announce that I've secured a Junior Game Programmer role at Kwalee! 🎮 Grateful for this incredible opportunity to contribute to innovative game development.

🙌 Big shoutout to Outscal for providing me with the top-notch education and practical skills that paved the way to this achievement. The comprehensive program and supportive community have been instrumental in my journey. Thank you, Outscal, for empowering me to pursue my passion in the gaming industry! 🎓💡

Looking forward to the exciting challenges ahead and continuing to grow in this dynamic field. ✨ #NewBeginnings #GameDeveloper #KwaleeAdventure #OutscalSuccess 🚀

Yash Sadhukhan

Yash Sadhukhan

Game Programmer | DOTS | Multiplayer | SOLID | DESIGN PATTERNS | XR | Unity | C#

I’m happy to share that I’m starting a new position as Unity Developer at Virtualize Technologies Private Limited!


Thanks to Virtualize Technologies Private Limited for this amazing opportunity and special thanks to Rohini Gupta, Outscal, and Mohit Sharma for their faith, guidance, and support.

Roopesh Verma

Roopesh Verma

Passionate Game Dev and Filmmaker

After an amazing time at MyyHashstash, I joined Outscal to upskill myself in DSA and Design Patterns, especially in Game Dev. The journey has been great and quite enriching.


I have now joined Octro Inc. as a Game Developer. I would like to thank Neha Rana, Himani Chugh, Anshul Bhardwaj, and Rohit Kumar for the smooth onboarding process.


I would love to thank the great mentor team at Outscal - Mayank Grover, Malhar Devasthali, and Arindam Bharati for their support and guidance throughout these past 8 months.


#newjob #octro #outscal

Roshan Singh Kalra

Roshan Singh Kalra

Game Developer | Unity | C# Talks about Gaming, System Design, User Experience, Game Mechanics

I would like to announce that I will be starting my role as a Game Developer at Dirtcube Interactive from May, 2022.
I would like to thank everyone who's been a part of my journey.
I would like to thank the whole community at Outscal, especially Malhar Devasthali, Shubham Behl, Satnamji Arora, and Mayank Grover for mentoring and guiding me throughout this journey.
I would like to thank my clan mates at Outscal Ranjit Singh Panjwani, Vasudev Kulkarni, Viral Ghag, Shashikanth Bhat, Mridul Agrawal, Dhiraj Magdum (everyone else who I may have forgotten to mention).
I would also like to thank Padmakumar Palas, Abhijith Narayan, and Raj Soni for mentoring me and guiding me.

Praful Joshi

Praful Joshi

MS CS @ NC State University | Software Engineer - Games & Tools

Hello everyone! I'm very excited to share with you all that I'm joining MlympiX as a Game Developer.
This wouldn't have been possible without the continuous guidance, training & support from the team at Outscal.
Special thanks to Deeksha Chawla for making the entire recruitment process so effortless.
And how could I not mention the OGs, Malhar Devasthali & Mayank Grover! Their passion towards Game Dev & honest efforts in building a community is unmatched. Big thanks!
Looking forward to this new & exciting journey ahead.

Shikhar Garg

Shikhar Garg

Software Development Engineer || Game Developer Loading

Hola Linkedin Fam,

I would like to announce that I am starting my role as a Game Developer at Photon Tadpole Studios in April 2022.
I would like to thank everyone who's been a part of my journey.
I would like to thank the whole community at Outscal, especially Mayank Grover, Malhar Devasthali, Shubham Behl, and Satnamji Arora for mentoring and guiding me throughout this journey.
I would like to thank my clan mates at #Outscal - Darshan Sahay, Sachin Wagde, Dhiraj Magdum, Mridul Agrawal (everyone else whom I may have forgotten to mention).

I would also like to thank Hrishi Oberoi and Keyur Rana for the smooth onboarding process. I'm excited to start my new job! #newjob

Rushabh Gohel

Rushabh Gohel

Game Developer | Unity, C#, C++

I’m happy to share that I’m starting a new position as Game Developer at IDZ Digital Private Limited!

Shobhit Rawat

Shobhit Rawat

Game Developer | Full Stack Developer | Chess Content Creator

I’m happy to share that I’m starting a new position as Game Developer at Saathi!

Komal Kurundwade

Komal Kurundwade

A New Perspective of Life as a Game Developer.

I’m happy to share that I’m starting a new position as Associate Software Engineer at Light & Wonder India!

UNLOCK ACCESS NOW

Choose Your Plan

DO IT YOURSELF

$29.99

/month

Monthly Subscriptions, Cancel Anytime

Content For 20+ Game Projects

Certificate of Completion

Networking Sessions

Placement Support

1-on-1 Mentorship

7-day Free Trial

MENTORSHIP PLAN

Custom

Lifetime Access To All Content

Code Reviews

1-on-1 Mentorship

Placement Support

Networking Sessions

Book A Call

FAQ?

What is included in the DIY Plan?

You get full access to our entire library of 20+ game projects covering Unity, C++, Data Structures and Design Patterns. Plus, any future projects added will be included at no extra cost.

I am an existing student enrolled in an Outscal program, do I need a subscription for DIY?

If you are already enrolled at Outscal in any of these courses: Full Stack Game Developer, Game Development Advance, Game Dev Fast Track, then you already have full access to out content library, no extra subscription is needed.

What happens to my progress if I cancel my subscription of DIY?

Your progress stays saved. If you renew later, you'll pick up right where you left off.

What content is included in the projects?

Each project focuses on a specific skillset like Design Patterns, Unity, C++, or data structures and guides you through building a real game while you learn these technical concepts. Hence the name "Projects.”

What is the difference between DIY and Mentorship plan?

The DIY plan gives you full access to our entire content library. The Mentorship plan includes everything in DIY plus one-on-one guidance from industry veterans, code reviews, placement prep, and job support.

Does the content include live classes?

No, all content is text-based or pre-recorded , allowing you to learn at your own pace. If you want one-on-one guidance, you can opt for the Mentorship plan.

Does the content include video content?

The core material is text-based. It is engaging text-based format enriched with images, GIFs and videos where helpful. Yet text remains the primary medium.

When will the payment for the subscription be deducted?

Your subscription payment is deducted at the beginning of each 30-day cycle.

Is placement support included in the program?

Placement support isn’t included in the DIY plan (subscription). It’s part of the Mentorship plan, which also offers one-on-one mentorship with industry veterans, code reviews, and placement preparation.

How can I get my doubts solved while I do the courses?

We have a 24/7 Discord community of thousands of game developers who help each other daily. For serious issues, you can directly contact our internal ops team.

Will I get access to all future content that gets added to the library?

Yes, as an active subscriber, you’ll have access to any new projects we add, at no extra cost.

How can I cancel my subscription?

To easily cancel your subscription, simply send an email to admissions@outscal.com or reach out to your payment provider (PayPal or RazorPay). We're here to help you!

What is the best order to complete the 20 projects?

We recommend following the sequence displayed on the “Courses” page, which progresses from beginner to advanced levels (top to bottom). Each project includes a difficulty rating, so if you are already confident with the basics, you can use the intermediate or advanced difficulty filters to advance more quickly.

Which payment methods are supported?

For users in India, payments can be made using RazorPay, while international users can utilize PayPal.

How do I get access to the content?

You will receive a payment confirmation email. Access to all content will be granted within 24 hours after you receive this confirmation.

Do I need to create an account on Outscal platform?

Yes, please make sure that the Email ID you have used with your payment provider (PayPal/RazorPay) is the same Email ID you have registered with on Outscal’s platform in order to unlock access to content.

Projects Included in Do-It-Yourself Plan

Create A Text Based RPG In C++ From Scratch
Free
·
Beginner
·
Course
Create A Text Based RPG In C++ From Scratch
25 Lessons
14 Assignments
13 Quizzes
C++
OOPS
Free
Learn C# While Creating A Turn Based Battle Game
Free
·
Beginner
·
Course
Learn C# While Creating A Turn Based Battle Game
24 Lessons
10 Assignments
11 Quizzes
C#
OOPS
Free
Build Your First Game In Unity - Mr. Blocks
Beginner
·
Course
Build Your First Game In Unity - Mr. Blocks
56 Lessons
4 Assignments
13 Quizzes
Unity
C#
Learn Git And Build Confidence In Version Control!
Beginner
·
Course
Learn OOP In C++ By Building A Text-Based Pokémon Game!
Intermediate
·
Course
Learn OOP In C++ By Building A Text-Based Pokémon Game!
81 Lessons
45 Assignments
24 Quizzes
C++
OOPS
Coming Soon
Learn Fundamental Concepts Of Unity By Creating A 2D Platformer Game
Intermediate
·
Course
Learn Fundamental Concepts Of Unity By Creating A 2D Platformer Game
39 Lessons
55 Assignments
11 Quizzes
Unity
Physics Simulations
Learn SFML And Create The Classic Pong Game
Beginner
·
Course
Learn SFML And Create The Classic Pong Game
26 Lessons
18 Assignments
9 Quizzes
SFML
Master 1 Dimensional Arrays Through A Puzzle Game
Beginner
·
Course
Master 1 Dimensional Arrays Through A Puzzle Game
48 Lessons
18 Assignments
21 Quizzes
C++
SFML
Array
Learn 2D Arrays By Building The Classic Game: Minesweeper!
Beginner
·
Course
Learn Linked Lists Through Snake Game
Beginner
·
Course
Learn Linked Lists Through Snake Game
98 Lessons
68 Assignments
22 Quizzes
C++
SFML
Linked Lists
Data Structure Fundamentals
Beginner
·
Course
Data Structure Fundamentals
21 Lessons
32 Assignments
6 Quizzes
Data Structures
Stacks
Master Searching Algorithms by creating a Searching Visualizer in SFML
Intermediate
·
Course
Master Sorting Algorithms By Building A Sorting Visualizer In SFML
Intermediate
·
Course
Master Sorting Algorithms By Building A Sorting Visualizer In SFML
43 Lessons
14 Assignments
6 Quizzes
SFML
Sorting
Learn Architectural Design Patterns While Building Your Own Tower Defense Game!
Beginner
to
Advanced
·
Course
Learn Architectural Design Patterns While Building Your Own Tower Defense Game!
52 Lessons
18 Assignments
19 Quizzes
Unity
Design Patterns
Implement Player Skins Using MVC (Model-View-Controller)
Advanced
·
Course
Implement Player Skins Using MVC (Model-View-Controller)
25 Lessons
11 Assignments
4 Quizzes
Unity3D
Design Patterns
Learn Observer Pattern And Create A Horror Game From Scratch
Advanced
·
Course
Learn Observer Pattern And Create A Horror Game From Scratch
55 Lessons
22 Assignments
24 Quizzes
Unity3D
Design Patterns
Learn To Implement Object Pools In A Fast-Paced 2D Space Shooter Game
Advanced
·
Course
Learn To Implement Object Pools In A Fast-Paced 2D Space Shooter Game
39 Lessons
15 Assignments
18 Quizzes
Unity
Design Patterns
Create Mechanics Like Undo And Replay In A Turn Based Combat Game Using Command Pattern
Advanced
·
Course
Learn To Implement Complex Enemy AI Using State Machine In This Top-Down Stealth Game
Advanced
·
Course
Coming Soon

Discord Community

We have a close-knit community of 13000+ game devs — artists, designers, programmers, producers, testers, and more.
Network, build connections, attend events, and get referrals.

Karma system on our Discord server motivates everyone to help other folks in the community. All you have to do is tag the right role and ask your question. From basics of C++ to helping you choose the right design pattern for your complex game — our community members will unblock you in less than 15 minutes.

START YOUR STREAK