Unlock your complete game development potential with personalized 1-on-1 online mentorship, meticulously curated to help you land a job as a game developer.
Get the guidance you need to get a top job in game development. Mentors are professionals working at top game development studios
Personalised guidance to move forward
Regular 1 on 1 video calls with an experienced game development mentor, ask the questions that matter to you
Accountability till you get a job
Your mentor will help you stay on track and as you tackle your curriculum, project, and career goals.
Code Reviews and Mock Interviews
Get continuous feedback on your code and portfolio. Prepare for interviews before you start appearing in front of companies
Who is this course for?
Aspiring Game Developers
Freshers aspiring to learn the fundamentals & launch a career in game development.
Experienced Game Developers
Those with prior game development and coding experience seeking entry into their dream companies.
Working Professionals
Both technical and non-technical professionals aiming to pivot their careers to game development.
Entrepreneurs
Individuals interested in creating their own game development studios.
Skills you’ll gain
Unity Game EngineData Structures FundamentalsUnity Game Engine Advanced conceptsData Structures and Algorithms AdvancedCode ArchitectureProgramming PatternsObject PoolingObserver PatternSingletonModel View ControllerState MachineSolid PrinciplesDynamic ProgrammingC++C#OOPs2D3D
Designed to work with your schedule
Duration: 6 - 12 months based on your prior experience
Lifetime Access to the program's course content
Schedule weekly 1-on-1 mentor sessions with mentors
Unlimited async code reviews with senior developers
Active discord community for doubt solving
Dedicating six hours daily is recommended
Complete Game Development Curriculum
Intro to Game development with C++ (4 weeks)
C++ Fundamentals - Text-Based Adventure Game (1 Week)
Make a text-based adventure game while learning the fundamentals of C++ and OOPs concepts
Data & Data Types - Get a complete understanding of different data types in C++ and the best scenarios to use them in programming
Size of Data Types - Learn how different data is stored in C++ by understanding the size of different data types.
Conditions and Operators - Start adding selection options in your game and program a complete game by using if-else conditions and operators in C++
Functions - Make use of functions in C++ to avoid writing complete blocks of code again and again
Loops - Complete your game loop by using loops like for, while, and do-while in C++ programming
Basics of Classes & Objects - Understand the basics of Object Oriented programming by learning fundamental concepts of classes and objects
Constructors - Initialize your Objects by implementing constructors for the different classes that you program
C++ Intermediate (2 Weeks)
Learn SFML and Intermediate OOPs concepts by making a game complete with 2D art assets like Sprites and Textures
SFML Introduction - Get introduced to SFML (**Simple and Fast Multimedia Library) basics and how to use them for making games in C++**
Setting Up SFML - Set up SFML in your C++ program so you start importing art assets
Creating Game Window - Complete your setup by opening your project in a game window
Textures, Sprites & UI in SFML - Import Textures, Sprites, and UI elements in your C++ SFML project
Movement & Collision Detection - Allow movement to your C++ project by making your character move and adding physics to your game by adding collisions
Animations in SFML - Add life to your player by learning how to add animations in SFML
Understand the fundamentals of Object Oriented Programming and start using them in your C++ project
Classes and Objects - Start implementing Object Oriented Programming in your game by setting up Classes and creating Objects using the same classes
Get a complete understanding of intermediate Object-oriented programming (OOPs) concepts in your game
Inheritance
Polymorphism
Abstraction
Encapsulation
Pointers
Friend Function
Friend Class
Abstract Class
Interface
Constructors and types
Struct vs Class
Static variable keyword
Namespaces in C++
C++ Advanced -2D Brick Breaker Game (1 Week)
Learn advanced C++ concepts like memory management by making a Arkanoid style Brick Breaker Game
Exception Handling - Handle different errors that a player might run into in your game by getting a complete understanding of exceptions in C++
Learn the fundamentals of Memory Management in C++ and learn how to make the best use of memory in your Brick Breaker game
Creating Game Window - Complete your setup by opening your project in a game window
Memory Management in C++
Memory Allocation
Memory Deallocation
Memory Leaks
Learn how to use memory allocated to different classes by understanding the fundamentals of pointers completely
Pointers
Smart Pointers
Types of Smart Pointers
Use the C++ Standard Template Library (STL) and learn how to make template classes of your own
Templates
Iterators
STL in C++
Learn how to find issues in your game by understanding how to find issues in your project in Visual Studio
Debugging
File Management
Placement Phase 1
Resume Building
Presenting yourself on LinkedIn
LinkedIn Networking
Self-Branding on LinkedIn
Build a kickass Portfolio
Game Development with Unity (3 weeks)
Unity Fundamentals - Mr.Blocks Game (1 Week)
Learn C# and Unity fundamentals by building a block-style 2D Mr.Blocks game
Setup Unity using the Unity Hub and setup your project environment
Downloading & Installing Unity
Downloading & Installing VS Community
Creating a Project in Unity
Familiarize yourself with Unity fundamentals and learn how to use the various components of Unity to start building your game
Game Objects
Components
Transform
Learn the basics of C# and how to use it to script different behaviors in your game
C# Scripting
Unity Mono Behaviour Lifecycle Methods
Serialized Fields
Walk through the different tools that Unity gives you to set different fundamental components in the game.
Add UI to your game by adding buttons, start screens along with different texts
Layout Overview
Basics of UI
Unity Canvas
Event System
Buttons
Text
Text Mesh Pro
Anchoring
Add music and sounds to your Mr. blocks game and learn how to trigger the same using C# in Unity
Learn how to make different scenes in your game and the scenarios in which you should use them using Unity’s Scene Management tools.
Add movement to your player and create designated play areas using walls by using Unity’s 2D Physics system
2D Physics
RigidBody
Triggers
Colliders
Add polish to your game by using Unity’s particle systems to add collision effects, etc.
Create a playable game build in Unity that you can share with others so they can play the game
Creating a game (Mr. Blocks)
Making a build
Unity Intermediate - 2D platformer Game (2 Weeks)
Learn Intermediate Unity concepts while making a 2D platformer game
Unity Prefabs and Variants - Use Unity Prefabs and Variants to create multiple types of platforms which in turn will help you build levels
Add complex physics to your 2D platformer by using intermediate 2D Physics concepts
Collision Matrix
Types of Rigid Bodies
Raycasts
Understand the complete Unity script execution order and the different scenarios in which Unity’s internal C# functions can be used
Fixed Update
Time.deltaTime
Time.fixedDeltaTime
Time.timescale
Add 2D animation to your game by animation to your player using sprites and spritesheets, and manage different animation states of the player like Jump, Crouch, Attack, etc.
Sprite sheet Animations
Slicing a Sprite Sheet
Mecanim
Animation States
Animation Transitions
Animator Controller
Simple Enemy AI - Add enemies to your game that will cause damage to the player by making a simple patrolling Enemy AI
Tilemaps - Use Unity’s tilemaps to quickly make multiple levels in the game
Intermediate UI concepts - Handle complex device resolutions completely by using Unity’s intermediate-level UI tools
Layout Groups
Scaling for any device/resolution
Different UI Controllers instead of one UIManager
Coroutines - Use Coroutines to suspend the execution of a function. Ex Delay in the game
Player Prefs - Save player preferences locally ex. Settings in the game using Player Prefs
Saving and Loading the game - Save player progress ex. Levels Completed when user closes the game and load the same when user comes back to the game
Data Structures Fundamentals through Games in C++ (4 Weeks)
Data Structures, Arrays - 2D Minesweeper Game in C++ (1 Week)
Data Structure fundamentals - Create the classic 2D Minesweeper game while learning how to use Arrays and get started with using Data Structures in C++
Get answers to basic questions on Data Structures and why they should be used in games
What is Time Complexity?
What is Space Complexity?
How does time and space complexity affect games?
Learn the fundamentals of Arrays and how they are stored in memory
Get a better understanding of different types of Arrays
1-Dimensional Array
High-Dimensional Arrays
Operations on Arrays - Setup a 2D grid for your Minesweeper game by using Array operations in C++ and understand how to optimize these operations
Accessing
Traversing
Searching
Adding
Deleting
Time Complexity of different operations on Array
Learn about the disadvantages of Arrays and how to fundamentally overcome them
Dynamic Arrays
STL → Vectors
Jagged Arrays
Data Structures, Linked List - 2D Snake Game in C++ (1 Week)
Learn how to use dynamic C++ programming and Setup a Snake Game using Linked List Data Structure
Understand the internal working and how to implement a Singly Linked List in C++
Operations on Linked List - Setup behavior for your snake-like growing and shrinking in size and increasing its size using Linked List Operations in C++
Adding a node
Deleting a node
Time and Space Complexity of Linked List Operations - Optimize Linked List Operations by understanding about their Time and Space Complexity in C++
Linked List Variations - Add more complex features to your Snake Game by using different variations of a C++ Linked List
Doubly Linked List
Implementation of a Doubly Linked List
Operations on Doubly Linked List
STL for Lists → Make use of templates to set up different types of Lists using C++ STL
Data Structures, Stacks - Spider Solitaire Card Game in C++ (1 Week)
Implement a variant of the Solitaire card game called Spider Solitaire in C++ using Stack Data Structure
Understand how the Stack Data structure works internally with LIFO (Last In First Out) Flow
Applications & Advantages - Learn about different scenarios in game development where you can use stacks & their advantages
Implementation of Stacks - Implement Stacks with C++ in 2 different ways using other basic data structures
Stack using Arrays
Stack using Linked Lists
Stack Operations - Add features to your game like finding the top card of the deck, and moving cards from one deck to another by using Stack Operations in C++.
push()
pop()
peek()
splitting from the middle
reversing a stack
Time and Space Complexity - Make Optimisations to your game by understanding the time and space complexity of stacks in C++
Data Structures, Queues - 2D Restaurant Management Game in C++ (1 Week)
Make a restaurant management game in C++ using the Queue Data Structure
Fundamentals of Queues - Understand how the Queue Data structure works internally with the FIFO (First In First Out) concept
Implementation of Queues: Create an order management system in your restaurant game by implementing the Queue data structure with C++ in 2 different ways
Queue using Arrays
Queue using Linked List
Operations - Keep tab of new orders and completed orders by performing different operations in your Queue data structure
Enqueue
Dequeue
Variants of Queues - Add more features to your game by setting up different variants of Queues in C++
Circular Queue
Priority Queue
Time and Space Complexity - Make optimizations to your restaurant management game by understanding the time and space complexity of stacks in C++
STL for Queue → Understand how to use different queues using templates in C++
Placement Phase 2
Your first call with companies
How to Communicate better and present yourself confidently
Tricky Non-Technical QnA
How to Negotiate
HR Mock Interviews
Unity Advanced - 3D Game (2 Weeks)
Make a 3D game as you learn advanced game development concepts like 3D Math and Advanced Unity Concepts used for optimisation
Setup
3D Character Movement - Setup character movement in your 3D game by using 3D Math
Quaternions
Rigidbody in 3D
NavMesh
3D Animation - Add life to your character by seamlessly blending 3D animations using Unity’s Animation Tools
Blend Tree
Sub State Machines
Layers
Advanced Unity Scripting Concepts - Learn how to use Unity’s Advanced concepts to add more complex features to your game
Scriptable Object
Asset Bundles
Async await
Serialization and Deserialization (to save game data)
Testing and Debugging - Use Unity and Visual Studio tools to find the best ways to test and optimize your game
Profiler ⇒ Deep Dive
Unit testing
Debugging ⇒ Logcat & Android Debug Bridge (ADB)
Remote Debugging
Remote Debugging
Advanced Unity Rendering Concepts - Understand how lighting works in Unity, how it affects performance, and how to optimise 3D games
Basics of Rendering Pipelines ⇒ HDRP & URP
Light Probes and baking
Post Processing effects
Occlusion Culling
Level Of Detail
Terrain System - Learn how to quickly build scalable worlds using Unity’s Terrain System
Timeline and Cinemachine - Create cutscenes, cinematics for your game using Unity Timeline and Cinemachine
Making Android builds and monetizing your game - Make a playable Android build of your 3D game and integrate in-app purchases and ads
IL2CPP Build
How to make Android builds
IAP / Unity Ads
Data Structures Intermediate through Games in C++ (4 weeks)
Data Structures, Hashmaps - Password Cracking Game in C++ (1 Week)
Enter the world of advanced Data Structure Problems by building a Password Cracking Game in C++ called Hashmap Heist
Basic Hashmaps - Learn the fundamentals of Hashmaps and implement a complete Hashmap in C++ for your game
What are Hashmaps?
Key-Value Pairs, (Dictionary)
Structure of a Hash Table (Visualization)
Hash Functions
Types of Hash Functions: Understand different ways to set hashing in your Hashmap and their effectiveness in C++
Division Method
Mid-Square Method
Digit-Folding Method
Multiplication Method
Collisions in Hashmap - Understand what collisions are and the best ways to handle these collisions
Handling Collisions:
Separate Chaining
Open Addressing
Hashmap complexity and optimizations - Understand the complexity of hashmap implementation and optimizations for the same
Load Factor
Rehashing
Hashmap operations - Setup your password-cracking game using the following hashmap operations in C++
Initialization
Insertion
Insertion with Collision
Retrieval / Accessing
Deletion
When should you use Hashmaps - Understand the pros and cons of Hashmaps in C++ and when to use them?
Advantages
Disadvantages
Applications
Recursion in C++ (1 Week)
Understand how recursion works in C++, and use it in a game
What is Recursion? Understand the need for recursion and how to use it in a game
Need of recursion, applications in game dev
Advantages of recursive operations
Understand how recursion affects the performance of your game in C++ and how to optimize for the same
Base conditions
Memory allocation in recursive function calls
Time Complexity
Types of recursions - Understand different types of recursion and how to use them to implement new features in a game
Data Structures, Searching (1 Week)
Understand different types of search operations, their fundamentals while making a feature complete game in C++
Searching Operation and its usage in game dev - Learn about different applications of search operations in game development
Types of Searching Algorithms - Walk through 2 different ways of implementing search operations in C++
Linear Search
Binary Search
Time Complexity - Based on their implementations, understand how performant different search operations are in C++ and how to optimise for the same
Advantages - Go through the pros and cons of different search algorithms in your game
STL implementation - Use C++ templates to quickly setup search for different types of data
Data Structures, Sorting (1 Week)
Create a simple game in C++ while understanding how fundamentally sorting and its implementation works
What is Sorting? - Understand what sorting is with a few examples
Applications in game dev - Identify the various scenarios where we might use sorting in game dev
Sorting Algorithms: - Implement sorting in different ways in C++
Selection Sort
Bubble Sort
Merge Sort
Quick Sort
Insertion Sort
Time Complexity - Based on their implementations, understand how performant different sorting operations are in C++ and how to optimise for the same
Use cases for different methods - Answer the question of “Which sorting operation is a better fit for my game?” by comparing their fundamentals
Placement Phase 3
Live Coding Test
How to reach out to companies
Connecting with Recruiters
Important etiquettes for placements
Game Development Advanced - Programming Patterns using Unity (6 Weeks)
Programming Patterns, Service Locator - Tower Defense Game in Unity (1 Week)
Get Started with programming patterns by implementing Service Locator pattern in a Tower Defense Game called Angry Monkeys in Unity
Learn what is Singleton Pattern and why it's important in game development
Discover how to create and manage single instances of game components.
Learn the Service Locator pattern and understand how it acts as a central registry for services in your Unity game.
Learn how it enables you to centralize your game's services, making them easily accessible and adaptable across your entire Unity Game.
Learn what is a dependency and how you can resolve dependencies in your Unity project using Dependency Injection (DI)
Different types of Dependency Injection
Learn to inject dependencies effectively, enhancing code maintainability and unit testing.
Programming Patterns, MVC - Skins in 3D Battle Tank Game in Unity (1 Week)
Setup Skins in a 3D Battle Tank Game using MVC programming pattern and Unity
Build Battle Tank with the implementation of Tank movement in 3D
Learn how skins in games are implemented using MVC Programming Pattern
Make code architecture scalable with the proper use of scriptable objects
Understanding what is Model
Understanding what is View
Understanding what is Controller
Implementing Tank Skin Selection, Spawning and Tank Movement using MVC Programming Pattern
Make a basic UI to select one tank among the three
Each tank will have a different rotation speed and movement speed
Implementation of different skins for each tank
Programming Patterns, Observer Pattern - 3D Horror Game in Unity (1 Week)
Setup a 3D Horror Game with Unity’s Event System while implementing Observer programming pattern
Understand what Observer Pattern is and why it is needed in game development
Learn how to setup and use Unity's Delegates
What is an Event?
What is a Listener?
How to setup Events?
Power up your Event system by using interfaces
Programming Patterns, Object Pooling - 2D Space shooter Game in Unity (1 Week)
Learn how to optimize a 2D Space Shooter Game by implementing Object Pooling in Unity
What is Object Pooling? - Understand the fundamental concept of Object Pooling
Implementing Object Pool for Bullets
What are Generics? - Understand what generics and how they can help you in game development
Creating a Generic Object Pool - Use Generics to enhance the capabilities of your Object Pool?
Sub-Types in the object pool
Creating a Power Up Pool with types
Types of Object Pools - Complete your Object Pool setup by understanding different types of Object Pools
Pre-Created Object Pool
Lazy Initialized Object Pool
Generic Object Pool
Dynamic Object Pool
Object Pool with Sub-Types
Hierarchical Object Pool
Programming Patterns, State Machine - 2D Top Down game in Unity (1 Week)
Make a 2D Hunter Assassin Game in Unity while learning the need for State Machine and how to implement them
Identifying problem with implementation of complex enemy behavior
Understanding how state machines can solve this problem
Generic State Machine and its advantages
Creating more complex enemies using generic state machine
Advantages and Disadvantages of state machines
Types of state machines:
Finite State Machines
Hierarchical State Machines
Concurrent State Machines
Behavior Trees
Programming Patterns, Command Pattern - Turn Based Strategy Game (1 Week)
Use the Command Programming Pattern and its types to setup character behavior in a turn based strategy game in Unity
Explanation of command pattern - Learn what command pattern is and how it is fundamentally different from Observer
Different Components involved with the command pattern
Abstract Command
Concrete Command
Command Invoker
Command Registry
Client
Receiver
Implement Undo functionality in your Unity Game using command programming pattern
Implement Replay functionality in Unity using command programming pattern
Placement Phase 4
Live Placement Sessions with mentors
Data Structures Advanced through Games in C++ (2 weeks)
Data Structures, Trees (1 Week)
Get started with Advanced Data Structure Concepts with Trees while making a game in C++
Introduction to Trees - What trees are and how do they work internally
Height and Depth of trees - Basic fundamentals on the different parameters that influence how trees work
Binary Trees
Traversal on Trees: Different ways to move through different values inside trees
Pre-Order
Post-Order
Inorder
Searching: Learn the 2 different approaches to finding values inside tree data structure
BFS
DFS
Operations: Different operations in trees and how to use them inside a C++ game
Insertion
Deletion
Time Complexity: Measure tree performance and check how you can optimise for the same in C++
Advantages: Learn about the various pros and cons of Trees in C++
Applications in Game Dev: Understand the various complex use cases where trees are needed inside C++
Data Structures, Graphs (1 Week)
Complete your Data Structures experience by learning about Graphs and making a game using the same in C++
Introduction to Graphs - Get your fundamentals of how Graphs work in C++ cleared up
Applications in Game Development - Understand different applications of Graphs in game development
Different components of a graph: Identify and implement the different components of a Graph and build the same using C++
Edges
Vertices
Path
Types of Graphs - Learn about different Graph types and the different use cases for the same
Undirected Graphs
Directed Graphs
Weighted Graphs
BFS
DFS
Pathfinding using graphs : Learn about different algorithms to find the path to a particular value in C++
Applications, Advantages and Disadvantages of Graph
Capstone Project (4 Weeks)
The Capstone project is going to be the final project in the course, you will be showcasing everything you learnt during the entire length of the course here
The project is going to be a unique project only made by you
Use and implement everything you learned during the course. From Data structures to Programming patterns to Advanced Unity Concepts.
Choose among multiple Game Design Documents presented to you and make a full-fledged playable game under a month
This should be the highlighting project pinned at the top of the portfolio
Placement Process
Dedicated Placement Team
With over 150+ partner companies, our placement team works tirelessly to match your skills with the best game studios that align with your career goals.
Game Development Community
Make use of the community to collaborate, share insights, and exchange feedback in a supportive environment that nurtures creativity and innovation.
Portfolio, LinkedIn, & Resume Prep
Make your portfolio, resume, & LinkedIn profile with training from industry experts to present your skills effectively to potential employers and collaborators.
Build in Public
Create projects across AR,VR, HTML, Android & iOS games and showcase your game development journey to recruiters
Admission Process
01
Join the Waitlist
Our admissions team will reach out to you after reviewing your profile
02
Registration Process
Enroll into the program by paying the registration fee
03
Orientation Session
Get an understanding of what is expected from you when you join the program
04
Start the Course
Attend the onboarding session and get access to the course
Fee Structure
Reach out to us at admissions+global@outscal.com to discuss the option that is right for you.
Play games made by Outscal Alumni
Baba is you
Baba is You is an award-winning puzzle game where you can change the rules by which you play.\n In every level, the rules themselves are present as blocks you can interact with.
Created By:
Aasish Varma
Make New Way
The goal is to move the cubes to the spheres of the corresponding color. Your actions like pushing the blocks while moving the first cube will affect the second cube's path.
Created By:
Yogesh Krishnan Svs
Fireball
A Classic Platformer game with 5 challenging Levels. Students make the platformer games while working on their first project.
Created By:
Ravi Kiran Svs
Frequently Asked Questions
Am I eligible for this course ?
Outscal has always been passionate about delivering accessible upskilling opportunities to enthusiasts looking to train themselves and take the next step in their career as a game developer.
Though there are no specific eligibility criteria, learners are required to have the following prerequisite to make this experience one of the best possible.
Passionate about making games with a burning desire to become a game developer.
You have a creative streak and feel excited about creating new experiences for everyone.
You are willing to push your boundaries and you have an attitude of 'whatever it takes'.
Ability to dedicate 12-18 Hours towards the course on a weekly basis.
A system with a minimum 8 GB RAM, i5 Processor and 1 GB graphic card.
Will my experience in a non game development role matter?
Though game development as a whole is a very unique vertical which comes with its own quirks, some prior experience in a related industry/role might help expedite the transition to a game development role. Here are examples of a few prior work experiences that will make your transition easier.
Any software development or related experience will be helpful while getting started with the fundamentals of game development like OOPs and DSA in gaming
If you have other software testing/QA/support role experience, it will come in handy with different test cases of your game to write clean code.
Overall, any prior experience or training whether technical or non-technical can be leveraged while starting your career as a game developer. How to best use your prior experience to your advantage will be covered in the placement module of the full-stack game development course.
Do I get a job guarantee?
Outscal have a 100% placement record on completion of a full-stack game development course
If you want to know the success stories of Outscal, please check the Outscal Success Stories content of this chapter.
When does the placement process start?
The placement process starts when a candidate becomes eligible for the placement drive, which simply means after acquiring desired skills
Placement preparation starts from day 0
Be it LinkedIn, C++, OOPs, Unity, DS whatever is getting covered in the full-stack game development program will lead you towards the best placements
Each module has placement preparation which covers mock interviews complete with industry professionals and interview questions to practice with
How do I get the job after completing the course?
We have over 100+ Partner companies along with the best studios across India.
We have already placed talented folks in some of the best companies like SUMO, Ubisoft, Zynga, and many more…
We have a dedicated placement team with over a decade of game development industry experience.
The placement team helps target the best possible company for the individual.
What is the duration of course?
Outscal Full Stack Game Development is a self-paced course
The average duration for completion of the course and getting a job is around 8 months
The duration of the course is not fixed, if you are hyper-active in doing assignments you can complete the course early as well.
The formula is simple - acquire skills early → get placed early.
Once we introduce you to any company/s, it usually takes 3-4 weeks to complete the entire hiring process.
How does doubt solving work?
Outscal is overpowered with an 8k+ discord community passionate about game development just like you, so we don't just solve doubts there, we destroy them.
There are dedicated text and voice channels for unity, unreal, C++, doubts and active members to solve those.
Even after all this, if any doubts escapes we have professional mentors and we will give one-on-one doubt-call with them.
Who will review my code and projects?
Outscal has game development professionals to review your code and projects.
Industry demands Code architecture, code scalability, code flexibility and clean code writing but sadly very few developers have the skills to write code like this.
So the ones who have these code-writing skills will be reviewing your code.
Programming MCQs
Check out our comprehensive collection of programming multiple choice questions (MCQs) curated for both aspiring and experienced game developers. Enhance your skills and knowledge with our targeted, expert-level questions.
Write, run, compile, and debug your code efficiently with our user-friendly online compilers. Accessible from anywhere, our compliers simplify your coding experience.