Halo Section Bg

Space Shooter

Build a fast-paced 2D space shooter game! Learn Object Pooling to optimize performance while creating chaotic gameplay with bullets, enemies, and power-ups flying across the screen.

What you'll learn

  • Object Pooling Design Pattern

  • Optimizing Performance with Object Pooling

  • Handling Subtypes in Object Pools (e.g., Power-Ups)

  • Spawning Randomized Power-Ups and Enemies

  • Creating Bullet Object Pools

  • Generic Object Pools for Multiple Entities

  • Implementing Screen Wrapping in Unity

  • Advanced 2D Game Mechanics

Requirements

  • Intermediate proficiency in Unity and C#.

  • Understanding of basic 2D game mechanics and Unity physics.

  • Familiarity with Unity’s game objects, colliders, and physics.

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

  • Willingness to focus on optimization techniques and design patterns.

About This Course

This course takes help you in creating a fast-paced 2D gameplay while ensuring your game performs smoothly. Using the Object Pooling design pattern, you’ll learn to handle rapidly spawning and destroying entities like bullets, enemies, and power-ups without overloading your system.

You’ll start by implementing a bullet object pool to optimize their creation and destruction, then move on to building generic object pools for reusability across other entities. As you progress, you’ll handle subtypes for power-ups, enabling diverse behaviors without duplicating code. Alongside these optimizations, you’ll implement screen wrapping for both your ship and bullets, and design an immersive arcade experience with randomized power-ups and waves of enemies. By the end, you’ll have an exciting 2D space shooter and the skills to optimize any game for performance.

Show More

Curriculum

7 materials
  • Space Shooter Game - Project Goal
  • Preview

  • What is Git, GitHub and How to Fork
  • Fork Project Repository
  • How to Clone Git Repository
  • Git Branching - How to do submissions
  • How to make a WebGL Build
  • Space Shooter Game - Project Setup
7 materials
  • What is Object Pooling
  • Preview

  • Why to use Object Pooling
  • Preview

  • What is Object Pooling?
  • Types of Object Pools
  • Types of Object Pools
  • Existing Project Architecture without Object Pooling
  • Project Architecture
18 materials
  • Implementing object pools for bullets - Chapter Setup
  • Implementing object pools for bullets - Chapter Goal
  • Implementation of Core Elements of Bullet Pool
  • Create a Bullet Pool
  • Creating Bullet Pool Script
  • Entire Object Pooling Explanation
  • Entire Object Pooling Explanation
  • Script Communication for fetching bullet
  • GetBullet method in bullet pool
  • GetBullet method in bullet pool
  • Create a GetBullet() method
  • Script Communication for returning bullet
  • Return Bullet to object pool
  • Return Bullet to object pool
  • Create a ReturnBullet() method
  • Assignment Explanation
  • Enemy Pool
  • Implementing object pools for bullets - Chapter Solution
17 materials
  • Generic Object Pool - Chapter Setup
  • What is Generic Object Pooling
  • What is Generic Object Pooling
  • Why do we need a Generic Object Pool
  • Why do we need a Generic Object Pool
  • Implementation of Generic Object Pool - GetItem method
  • Implementation of Generic Object Pool - GetItem method
  • Implement GetItem() method in Generic Object Pool
  • ReturnItem in Generic Object Pool
  • ReturnItem in Generic Object Pool
  • Implement ReturnItem() method in Generic Object Pool
  • Generic Implementation of Bullet Pool
  • Generic Implementation of Bullet Pool
  • Implement & use Generic Object Pool
  • Assignment Explanation - Generic Enemy Pool
  • Modify EnemyPool class with generic implementation
  • Generic Object Pool - Chapter Solution
23 materials
  • Sub-Types in the object pool - Chapter Setup
  • Understanding Current Structure of Pools
  • Understanding Current Structure of Pools
  • Understanding Sub-Types in Generic Object Pool
  • Understanding Sub-Types in Generic Object Pool
  • Refactoring Generic Object Pool
  • Refactoring Generic Object Pool
  • Error Fixing after adding new Generic Type
  • Error Fixing after adding new Generic Type
  • Add a new generic type to GenericObjectPool
  • Creating PowerUp Pool
  • Creating PowerUp Pool
  • Create Powerup Pool
  • Adding References to PowerUpPool methods
  • Adding References to PowerUpPool methods
  • Add necessary references to powerup pool
  • Assignment Explanation For VFX Object Pool
  • Make VFX Pool
  • Sub-Types in the object pool - Chapter Solution
  • 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