Sorry, this page is no longer available
We may earn an affiliate commission when you visit our partners.
Course image
Code Monkey

Hello and Welcome.

I'm your Code Monkey and in THIS course you will learn step-by-step how to make a Builder-Defender game.

The design is sort of a mix between a City Builder and a Tower Defense game so if either of those genres are something you're interested in then this course is just for you.

With the knowledge you will learn from this course you will be able to make City Builders, RTSs, Tower Defense games, Tycoons, Village simulators and much more.

Read more

Hello and Welcome.

I'm your Code Monkey and in THIS course you will learn step-by-step how to make a Builder-Defender game.

The design is sort of a mix between a City Builder and a Tower Defense game so if either of those genres are something you're interested in then this course is just for you.

With the knowledge you will learn from this course you will be able to make City Builders, RTSs, Tower Defense games, Tycoons, Village simulators and much more.

About me, I'm a Professional Indie Game Developer with several successful games published on Steam covering a wide range of genres, I've been Programming for over 20 years and using Unity for almost 10.

Also a couple of years ago I started a YouTube channel making Free Video Tutorials to share the knowledge I have accumulated to help you learn how to make YOUR OWN games.

If you'd like to try out my learning style before purchasing the course you can watch the over 300 Videos available for Free on the YouTube channel.

They are presented as clear step-by-step tutorials just like this course.

A bit more about the game...

It's a really interesting mix between a City-Builder and Tower-Defense game.

The player has the ability to place buildings and those buildings gather resources.

There's three starting resource types, Wood, Stone and Gold, although everything is set up in such a way that you can easily add more Resource Types.

The Resource Generation is based on proximity so a Wood Harvester needs to be placed near Trees in order to gather Wood.

The Buildings take some time to be Constructed and it shows that progress with a nice visual element and a really awesome Shader effect.

Then we also have some Enemies, they are simple but still look great.

Our HQ can defend itself by shooting arrows and we can also place Towers to add more defenses.

Over time more and more enemies will be spawned until the player can't take it anymore.

So its all about Placing Buildings, Gathering Resources, Placing more Buildings and Defending your HQ for as long as you can.

The whole game has tons of effects and lots of awesome features. You can see some cool shaders, glow, screenshake, post processing, tooltip, lots of UI elements, smooth camera, particles and so on. The final game plays really great and feels very satisfying.

This course starts with a completely empty project starting completely from scratch and step-by-step we will get to the final game.

Everything is built in a very clean and modular way so you can easily take this as a base and expand upon it with more Building Types, Enemies, Maps and so on.

This course is presented as a thorough step-by-step guide where I will show you exactly how to do what I'm doing and why it is that I'm doing it so you can learn how to think like a game developer.

This course will cover a bunch of topics including:

  • How to create a Building System

  • Handle Building construction and Resource spending

  • Also how to manage Resource Generation

  • Handle Enemy AI with Attack Logic and a Health System

  • Build up the World with Resources in specific places

  • Learn the basics of Unity tools like Shader Graph, Post Processing, Particle System...

  • And much much more.

As for requirements you really just need to know the absolute basics of Unity and C#.

If you've never touched Unity or C# before then there are two lectures in the extras section which cover the basics

If you know, how Unity works, what are Game Objects and Components, what is MonoBehaviour and basic C# syntax then you should be able to follow everything without any issues.

If you feel confused or lost at any point in the course make sure you post your questions in the Q&A section

I will be there to help with whatever issues you may have

Alright so go ahead join me on the course and lets build this awesome game together.

- Code Monkey

Enroll now

What's inside

Syllabus

Introduction

Hello and Welcome to the Complete Builder Defender Course!

Let's check out a complete Overview of everything we will be doing in the course.

Read more

Let's learn about Unity Hub, how Unity versions work and create a completely brand new empty Project.

Set up the Unity Layout we will be using throughout the course.

Install the Universal Render Pipeline so we can publish our game to any platform and to be able to use Shader Graph to make our game look awesome!

Prepare the Project, Camera, Scene in order to get started.

Before we start, let's review our Game Design so we know what game we're trying to build.

Start off by looking at how we can get the Mouse World Position and Place a Building.

Let's learn about Scriptable Objects and how they help us set up Building Types in a way that makes future expansion easy.

Create the Resource Manager Class to manage all of the resource amounts we have in storage and various functions to interact with them. Also create Resources using Scriptable Objects.

Let's apply Resource Generation to our Buildings so we can generate resources over time.

Set up the UI and add a visual for the current Resource Amounts.

Add a nice background texture for our World Map.

Install Cinemachine and use it to move our Camera.

Create the UI buttons to select which type of Building we want to place.

Let's make a visual Ghost to show the Building shape on top of our Mouse Position.

Make objects to represent Resource Nodes in the World and handle all the logic for the buildings to only generate if near resource nodes.

Define some rules to how the Buildings can be placed.

Must be placed on a clear area, cannot be too close to other Building of the same type and cannot be too far from any other building.

Let's learn about the Unity Animator and apply some Animations to our Buildings.

Let's build an Overlay to showcase how many Resources each Building is generating.

Define Building Resource Costs for Construction.

Create a Tooltip to give the Player extra information. Use to display Building Names, Costs and Placement Error Messages.

Create a Health System to manage the health points of Buildings and later Enemies.

Let's make Enemies that move towards the Buildings and deal damage.

Let's build a Defensive Building for the Player. Shoots Arrow Projectiles at nearby Enemies.

Create a Enemy Wave Manager class to handle how enemies are spawned, how many per wave and how often each wave.

Add Post Processing and some nice effects.

Learn about Unity Shader Graph, let's build some custom simple Shaders and let's also look at the more complex Grass Wind Shader.

Make a new object type to handle the Building Construction stage, after some time the Buildings finish Construction and work as normal.

Add a simple button to handle Building Demolish along with a slight recoup on the resources spent.

Set up a Minimap so we can quickly look at the whole world.

Add a Game Over Screen that gets triggered when the Player HQ is destroyed.

Add a simple button to Repair a damaged Building at the cost of Gold.

Create a Sound Manager so we can play Sound Effects on various actions.

Make a simple Music Manager to play some Music.

Create an Options menu to modify the Sound and Music Volume. Also enables Pause.

Create a Simple Main Menu to handle Quit and Play.

Now that the Core Game Design is implemented let's look at Polish!

Add some Separators to each Health Bar so we can easily see how much Health each entity has.

Add Trails to the Enemies as they move.

Limit the Camera movement so the Player cannot go off screen.

Let's add the ability to move the Camera with the mouse on the Edges thus enabling our game to be entirely played with just the mouse.

Let's learn about Unity PlayerPrefs and how we can save persistant data.

Iterate and Balance the Game by tweaking tons of values.

Add some Particles when the Enemies die.

Add some Particles when the Buildings are Placed and Destroyed.

Add some Screen Shake to our game using Cinemachine.

Add a nice Chromatic Aberration Effect on top of Screen Shake.

Add a simple visual Day Night Cycle.

Fix the issue where we can place Buildings where there are no resources.

Add some Particles to the Arrow Projectiles as they fly.

Refactor  and Clean up our code by implementing the Game Assets class.

Let's check out the Awesome Game that we created throughout this course!

Let's quickly learn C# Basics!

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Uses Unity's Universal Render Pipeline, which allows publishing to multiple platforms and using Shader Graph to enhance the game's visuals
Explores the basics of Unity tools like Shader Graph, Post Processing, and Particle System, which are essential for creating visually appealing games
Covers topics such as creating a building system, handling resource management, and implementing enemy AI, which are fundamental concepts in game development
Requires a basic understanding of Unity and C#, but includes extra lectures covering the basics, making it accessible to beginners with some programming knowledge
Emphasizes building the game in a clean and modular way, which allows learners to easily expand upon it with more building types, enemies, and maps
Features the Cinemachine package for camera movement and effects like screen shake, which are useful for creating a polished and engaging player experience

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Building a unity builder-defender game

According to learners, this course offers a practical, project-based approach to creating a Builder-Defender game in Unity. Students appreciate the step-by-step guidance from an experienced instructor. The course covers core mechanics and adds significant polish and effects. While it builds a complete game, a basic understanding of Unity and C# is highly recommended to follow along effectively.
Dive deep into Builder-Defender mechanics.
"I specifically wanted to learn how to make a game like this and the course delivered."
"Focusing on this specific genre allowed me to learn specific building and defense systems."
"While niche, the skills are transferable to other RTS or tycoon games."
Adds visual and audio polish elements.
"Loved learning how to add screenshake, shaders, and particles."
"The polish section really made the game feel more complete."
"Learning about post processing and sound added a lot to the project."
Code is structured for easy expansion.
"The code structure seems clean and ready for adding more features."
"I appreciate how the project is set up to be easily expandable."
"The modular design makes customizing the game straightforward."
Clear and effective teaching by instructor.
"The instructor's explanations were easy to follow."
"Code Monkey breaks down complex topics clearly."
"I like the instructor's approach to teaching Unity development."
Learn by building a complete game.
"I learned best by building a full project from start to finish."
"The step-by-step process of making a complete game was very effective."
"Following along to create a functional game was a great way to solidify concepts."
Basic Unity/C# knowledge is helpful.
"Even with the intro lectures, I felt like I needed more C# background."
"The course moves quickly if you're not already familiar with Unity concepts."
"Make sure you're comfortable with Unity basics before starting."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Learn to make an Awesome Builder-Defender game in Unity! with these activities:
Review C# Basics
Solidify your understanding of C# basics to ensure a smoother learning experience throughout the course, especially when dealing with game logic and scripting.
Show steps
  • Review basic C# syntax and data types.
  • Practice writing simple C# programs.
  • Familiarize yourself with Unity's C# scripting environment.
Review 'Game Programming Patterns'
Learn common game programming patterns to improve code structure and maintainability, which is essential for expanding the Builder-Defender game with new features.
Show steps
  • Read the chapters relevant to game architecture and design patterns.
  • Identify patterns used in the course and understand their implementation.
  • Consider how to apply these patterns to future game development projects.
Prototype a Simple Tower Defense Mechanic
Practice implementing a core tower defense mechanic to reinforce understanding of game logic, enemy AI, and projectile systems covered in the course.
Show steps
  • Create a basic enemy spawner and pathfinding system.
  • Implement a simple tower that shoots projectiles at enemies.
  • Add basic UI elements to control tower placement and upgrades.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Document the Building System
Solidify your understanding of the building system by creating documentation that explains its architecture, functionality, and how it interacts with other game systems.
Show steps
  • Outline the key components of the building system.
  • Describe the data structures and algorithms used.
  • Explain how the building system integrates with resource management and placement rules.
Explore Unity Shader Graph Tutorials
Deepen your knowledge of Unity Shader Graph by following tutorials to create custom shaders for visual effects, enhancing the game's aesthetic appeal.
Show steps
  • Find tutorials on creating specific shader effects (e.g., water, fire, glow).
  • Replicate the shaders from the tutorials in your own Unity project.
  • Experiment with modifying the shaders to create unique visual styles.
Review 'The Art of Game Design'
Understand game design principles to improve the overall player experience and make informed decisions about game mechanics and level design.
Show steps
  • Read chapters on core game design concepts.
  • Apply the 'lenses' to analyze the Builder-Defender game's design.
  • Brainstorm improvements based on the book's principles.
Contribute to a Unity Open Source Project
Gain practical experience and contribute to the Unity community by participating in an open-source project, improving your coding skills and understanding of collaborative development.
Show steps
  • Find a Unity open-source project on GitHub or GitLab.
  • Identify a bug or feature to work on.
  • Submit a pull request with your changes.

Career center

Learners who complete Learn to make an Awesome Builder-Defender game in Unity! will develop knowledge and skills that may be useful to these careers:
Game Developer
A game developer designs and creates video games for various platforms. This course, focusing on building a Builder-Defender game in Unity, helps build a foundation for this role. The course provides hands-on experience with Unity, C#, and game design principles, all essential for a game developer. The course covers topics such as building systems, resource management, enemy AI, and world building. A prospective game developer should take this course in particular because it is practical and project-based.
Indie Game Developer
An indie game developer works independently or within a small team to create and publish their own video games. This course, taught by a professional indie game developer, helps one become an indie game developer. The course provides a practical, step-by-step guide to creating a complete game, covering aspects like building systems, resource management, and enemy AI. This course is particularly helpful for aspiring indie game developers because it can give them the skills and knowledge to manage their own projects.
Unity Developer
A Unity developer specializes in using the Unity engine to create interactive experiences, ranging from video games to simulations. This course helps build a strong foundation as a Unity developer. By learning to create a Builder-Defender game from scratch, you will gain experience with core Unity concepts such as Game Objects, Components, and the MonoBehaviour class. The course also explores advanced topics like Shader Graph and Post Processing, making it particularly beneficial for anyone seeking to become a Unity developer.
Gameplay Programmer
A gameplay programmer focuses on implementing the mechanics and systems that make a game engaging and fun to play. This course helps one become a gameplay programmer because it teaches how to build core gameplay systems from scratch. Through this course, one can learn how to create building systems, manage resources, implement enemy AI, and design defensive structures. This course is particularly valuable for aspiring gameplay programmers because it emphasizes a clean and modular approach to code.
Game Designer
A game designer is responsible for the overall design and vision of a game, including its mechanics, rules, and player experience. This course helps one become a game designer because it involves designing and implementing a complete game from scratch. The course covers topics such as game mechanics, resource management, and level design. This course is particularly valuable for aspiring game designers because it gives experience in designing a cohesive and engaging game.
Shader Programmer
A shader programmer writes code that determines how surfaces are rendered in a game, creating visual effects and optimizing performance. This course helps one become a shader programmer as it introduces Unity's Shader Graph tool and demonstrates the creation of custom shaders. The course includes building simple shaders and exploring more complex effects like the Grass Wind Shader. A prospective shader programmer should take this course in particular because it provides a practical introduction to shader programming.
Mobile Game Developer
A mobile game developer specializes in creating games for smartphones and tablets. This course helps one become a mobile game developer because it uses the Universal Render Pipeline, making the game compatible with various platforms. You gain experience with Unity and C#, which are widely used in mobile game development. This course is particularly beneficial for aspiring mobile game developers because it can give them the skills to develop their own mobile games.
Simulation Developer
A simulation developer creates software that models real-world systems for training, analysis, or entertainment. This course helps one become a simulation developer because it provides experience in building a dynamic system with resource management, AI, and real-time interactions. The course covers topics such as building systems, resource generation, and agent behavior, all relevant to simulation development. Aspiring simulation developers should take this course because it offers a practical, hands-on project.
Technical Artist
A technical artist bridges the gap between art and programming, optimizing art assets for games and creating tools to improve the art workflow. This course may be useful to a technical artist because it provides exposure to various visual effects and shaders within the Unity engine. You can learn the basics of Unity tools like Shader Graph, Post Processing, and Particle Systems. This course is particularly helpful for aspiring technical artists because it touches on shader creation and optimization.
VFX Artist
A visual effects artist creates the visual effects that enhance the look and feel of a game, such as explosions, particles, and environmental effects. This course may be useful to VFX artists as it demonstrates the use of particle systems, post-processing effects, and screen shake. The course covers the creation of visual effects for various game events, such as enemy deaths and building placements. Aspiring VFX artists may gain a basic understanding of creating visual effects.
Level Designer
A level designer creates the environments and layouts that players explore in a video game. This course may be useful to a level designer as it involves building a game world from scratch, including placing resources and designing defensive positions. The course touches on world building, resource placement, and the creation of a game map. Aspiring level designers should take this course because it provides experience in designing a functional and engaging game environment.
AI Programmer
An AI programmer specializes in creating the artificial intelligence that controls non-player characters in a game. This course may be useful to AI programmers as it teaches how to implement basic enemy AI, including attack logic and a health system. The course covers the creation of enemies that move towards buildings and deal damage. A beginner can learn the fundamentals of AI implementation.
UI Developer
A user interface developer designs and implements the user interface elements in a game, such as menus, buttons, and HUDs. This course may be useful to UI developers as it involves creating various UI elements, including resource displays, building selection buttons, and tooltips. The course covers topics such as UI design, event handling, and data binding. Aspiring UI developers can learn the basics of creating a functional and visually appealing user interface.
Extended Reality Developer
An extended reality developer creates games, simulations, and experiences. This course may be useful to an XR developer because Unity is a popular platform for creating XR experiences and this course helps build comfort with the engine. It provides hands-on experience with C# scripting, asset management, and game logic implementation, skills also applicable to XR development. An intro to the engine can make the transition smoother.
Software Engineer
A software engineer designs, develops, and tests software applications. This course can help one become a software engineer because it provides a foundation in C# programming and object-oriented design principles. Learners will gain experience in writing clean, modular code and implementing complex systems. This course may be particularly beneficial for software engineers interested in game development or simulation.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Learn to make an Awesome Builder-Defender game in Unity!.
Provides valuable insights into common design patterns used in game development. Understanding these patterns can help you write cleaner, more maintainable, and scalable code for your Builder-Defender game. It's particularly useful for structuring the building system, enemy AI, and resource management aspects of the game. While not required, it's a great resource for improving your game development skills.
Provides a broad overview of game design principles and techniques. It's useful for understanding the underlying concepts behind game mechanics, player experience, and level design. While not directly related to the technical aspects of the course, it can help you think more critically about the design choices in your Builder-Defender game and how to improve them. It is more valuable as additional reading than as a current reference.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser