4.61 out of 5
50875 reviews on Udemy

Complete C# Unity Developer 2D: Learn to Code Making Games

Game development & design. Learn Unity 2018 in C#. Your first 7 2D Unity games for web, Mac & PC. Includes Tilemap
Ben Tristem
273,098 students enrolled
English More
Learn C#, a powerful modern language, from scratch. No prior programming experience is necessary.
Become excellent at using the Unity game engine.
Build a solid foundation for game design and game development that will help you build your own games.
Learn how object oriented programming works in practice.
Create playable game projects - good for your portfolio, or just for your own sense of achievement.
Transfer your knowledge to .NET, other languages, and more.
Develop highly transferable coding problem solving skills.
Be part of an amazing and supportive community of people similar to you.

November 2018 – We have completely updated the first 6 projects to Unity 2018! The remaining projects are in the process of being replaced with new videos on a daily basis.

This course started as a runaway success on Kickstarter and has gone on to become the most popular and most watched Unity game development course on Udemy. The course has full English closed-captions throughout.

Learn how to create video games using Unity, the world-leading free-to-use game development tool. We start super simple so you need no prior experience of Unity or coding! With our online tutorials, you’ll be amazed what you can achieve right from the first moment you start the course. 

Benefit from our world-class support from both other students, and the GameDevtv team who are regularly engaged in the forums and Q&A section. Go on to build several games including:

  • Laser Defender: A Top-Down Space Shooter with enemies to shoot and dodge;

  • Glitch Garden: A Tower Defense game with different tower types and enemy types, and a basic resources system;

  • TileVania: A fast-paced classic Side-Scrolling Platformer using Unity’s Tilemap tool;

  • Block Breaker: A basic “Breakout” style game which introduces Unity’s built in physics engine.

Prefer to start with 3D games? Check-out our sister course, the Complete C# Unity Developer 3D. Already have some Unity knowledge, and want something more challenging? Check-out our epic RPG Core Combat Creator. More interested in creating 3D models from scratch? Start with our Complete Blender Creator course. Our green leaf logo is a symbol of passion and quality.

You will have access to a course forum where you can discuss topics on a course-wide basis, or down to the individual video. Our thriving discussion forum will help you learn and share ideas with other students. Check out our reviews to see how people love this feature. 

Unity 2018 Remaster: This well-loved and highly-tuned course is taught initially in Unity 4 and then in following sections in Unity 5. This content is still incredibly valuable and relevant. As part of our ongoing commitment to our students, we are remastering the entire course in Unity 2018 to show you the newer tools that Unity has to offer.

The course is project-based as we believe this is the best way to learn Unity and C#. You will not just be learning dry programming concepts, but applying them immediately to real indie games as you go. All the project files will be included, as well as additional references and resources – you’ll never get stuck. There are talking-head videos, powerful diagrams, quality screencasts and more. 

Oh, and it’s just bigger and better than other Unity courses you will find online. See the course length and the reviews. 

For each demo game you build you will follow this process… 

  • Be challenged to build the entire game yourself.

  • Be shown step-by step how to build it.

  • Be challenged to apply, and re-apply your knowledge regularly.

You will get full lifetime access for a single one-off fee. The creators are qualified and experienced coders and avid gamers, so are able to explain complex concepts clearly, as well as entertain along the way. 

You will learn C#, and in turn build a solid foundation for Object Oriented Programming. By the end of the course you’ll be very confident in the basics of coding and game development, and hungry to learn more. 

What this course DOESN’T cover… 

Whereas this course is already huge, we can’t possibly cover everything in that time. Here are some things we will not be covering… 

  • Performance optimization.

  • Editor plugins or modifications.

  • Physics engine modification*

* Separate mini-course to cover these this now available. 

Anyone who wants to learn to create games: Unity is a fantastic platform which enables you to make production-quality games. Furthermore these games can be created for Windows, MacOS, iOS, Android and Web from a single source!

If you’re a complete beginner, we’ll teach you all the coding and game design principles you’ll need. If you’re an artist, we’ll teach you to bring your assets to life. If you’re a coder, we’ll teach you game design principles. 

Note: access to this course comes with an optional, free community site where you can share games and art assets, as well as connect with other students.

Dive in and learn Unity now, you won’t be disappointed!

Introduction & Setup

Why You Should Buy This Course

In this video (objectives)…

  1. We make learning Unity & C# easy
  2. Introducing Ben & Rick
  3. What the course covers
  4. 40,000 reviews can't be wrong!

After watching (learning outcomes)… Recall why you were motivated to buy this course.

(Unique Video Reference: 1_IN_CUD)

Updating The Course

This course is being updated at a rapid pace, using Unity 2018 and the latest coding best practices.

Download Unity & Visual Studio

In this video (objectives)…

  1. Navigate to Unity's download page

  2. Download Unity Hub

  3. Select the latest version of Unity to download

  4. Select your download options from the list

After watching (learning outcomes)… Get Unity and Visual Studio downloading.

(Unique Video Reference: 2_IN_CUD)

Your First Code

In this video (objectives)…

  1. Create a new Unity project
  2. Create a .cs script
  3. Add a simple print statement
  4. Attach script to camera game object
  5. Run script and see our statement printed to the console

After watching (learning outcomes)… Create a script and print a simple statement to the Unity console.

(Unique Video Reference: 3_IN_CUD)

Notes For Mac Users

In this video (objectives)…

  1. We use PC mostly throughout the course
  2. General differences you'll see on Mac versus PC
  3. Specific Unity and Visual Studio differences you'll see on a Mac.

After watching (learning outcomes)… Understand what difference to look for if on a Mac.

(Unique Video Reference: 4_IN_CUD)

Community & Support

In this video (objectives)…

  1. Options for getting help & support
  2. Using the Udemy Q&A section
  3. GameDev.tv community forum
  4. Discord chat server
  5. Facebook community group
  6. Google slides and close captions.

After watching (learning outcomes)… Exactly how and where to get help and support.

(Unique Video Reference: 5_IN_CUD)

Section Wrap Up

In this video (objectives)…

  1. Great work on getting set up
  2. Let's dive into the next section.

After watching (learning outcomes)… You'll be set up and ready to go.

(Unique Video Reference: 6_IN_CUD)

Test Your Understanding - Intro & Setup #1

Number Wizard - Basic C# Coding

Welcome To Number Wizard Console

In this video (objectives)…

  1. Overview of this section
  2. Code is mostly the same as the original code
  3. Let's get started!

After watching (learning outcomes)… Ready and raring to start.

(Unique Video Reference: 1_NC_CUD)

Print To Console With Debug.Log()

In this video (objectives)…

  1. Understand the game flow for the simple game we are making.
  2. Use Debug.Log() to print our welcome to the player
  3. Add three additional statements to give the player the requirements

After watching (learning outcomes)… Be able to print to the console using Debug.Log().

(Unique Video Reference: 2_NC_CUD)

Introducing Variables

In this video (objectives)…

  1. Discuss that variables are like boxes which store data.
  2. Create an integer variable to store our maximum guess value.
  3. Create an integer variable to store our minimum guess value.

After watching (learning outcomes)… Be capable of creating an integer type variable.

(Unique Video Reference: 3_NC_CUD)

Respond To Player Input

In this video (objectives)…

  1. Problem solving discussion using Unity docs.
  2. Use Input.GetKeyDown() to recognise when a key is pressed.
  3. Use the KeyCode keyword to determine which key is pressed.
  4. Discuss white space, code blocks and bracketing.
  5. Introduce commenting.

After watching (learning outcomes)… Understand how to recognise player input using Input.GetKeyDown().

(Unique Video Reference: 4_NC_CUD)

Using if, else if & else

In this video (objectives)…

  1. Consider the problem we have of multiple key presses being possible.
  2. Discuss the difference between if, else if & else conditional statements.
  3. Implement an approach that makes our key presses mutually exclusive of one another.

After watching (learning outcomes)… Use if and else if statements to make key presses mutually exclusive.

(Unique Video Reference: 5_NC_CUD)

Scope And Context Of Variables

In this video (objectives)…

  1. Discuss how C# is organised / grouped.
  2. Address the problem of scope and with our variables not being accessible.
  3. Create a guess variable.

After watching (learning outcomes)… Be cool with how scope applies to declaring and using variables.

(Unique Video Reference: 6_NC_CUD)

Calculate Guess Variable

In this video (objectives)…

  1. Implement the simple calculation to guess the midpoint of our min and max.
  2. Fix an issue with the maximum guess not reaching 1000.
  3. Tidy up our text.
  4. Use github to access our code updates and lecture changes.

After watching (learning outcomes)…

Implement a simple calculation that updates our guess based upon player feedback.

(Unique Video Reference: 7_NC_CUD)

Functions & Encapsulating

In this video (objectives)…

  1. Create a new function for StartGame().
  2. Create a new function for NextGuess().
  3. Discussion encapsulating as it relates to C#.
  4. Finish our game.

After watching (learning outcomes)…

Create your first functions and finish off our simple game.

(Unique Video Reference: 8_NC_CUD)

Number Wizard Console Wrap Up

In this video (objectives)…

  1. Great work for completing this section.
  2. You're not supposed to understand everything yet.
  3. Keep pushing forward into the next section.

After watching (learning outcomes)…

Celebrate completing this section and push on to the next one.

(Unique Video Reference: 9_NC_CUD)

Test Your Understanding - Number Wizard #1


Welcome To Text101

In this video (objectives)…

  1. Overview of this section
  2. Flex your designer muscles if you're interested
  3. We'll be using Scriptable Objects to make a Text Adventure Game
  4. Let's get started!

After watching (learning outcomes)… Ready and raring to start this section.

(Unique Video Reference: 1_TX_CUD)

Text101 Game Design

In this video (objectives)…

  1. Overview of our game design, core mechanic and theme
  2. Some high level design insight on how we are creating a game for other people
  3. A challenge to flex your designer muscles and come up with your own game theme

After watching (learning outcomes)… Clear on the design for our game.

(Unique Video Reference: 2_TX_CUD)

Creating Sprites In Unity

In this video (objectives)…

  1. Introduction to Unity's main windows - Hierarchy, Scene, Game, Project, Inspector.
  2. Create simple square and circle sprites.
  3. Compare the difference between 2D and 3D scene view.
  4. Build a simple platformer scene for fun.

After watching (learning outcomes)… Capable of adding sprite Game Objects into a scene in Unity.

(Unique Video Reference: 3_TX_CUD)

UI Canvas & Text

In this video (objectives)…

  1. Introduction to Unity canvas for UI.
  2. Initial discussion of parent-child relationship for Game Objects in hierarchy.
  3. Add text elements.
  4. Edit text, resize elements.
  5. Add UI images as background elements.

After watching (learning outcomes)…

Able to create UI Canvas with text elements and plain image objects.

(Unique Video Reference: 4_TX_CUD)

Update Text Component

In this video (objectives)…

  1. Deeper understanding of how Unity Game Objects, Components and Properties relate to one another.
  2. Introduction to [SerializeField].
  3. Creating a reference to a text field.
  4. Printing a string to our UI text field.

After watching (learning outcomes)…

Capable of programmatically adding a string of text to a UI text field.

(Unique Video Reference: 5_TX_CUD)

Game States

In this video (objectives)…

  1. What are states and what is a state machine.
  2. Creating decision points for the player.
  3. How to manage all of our states and conditions - scriptable objects.

After watching (learning outcomes)…

Understand our requirements regarding states and create your first state for your text adventure game.

(Unique Video Reference: 6_TX_CUD)

Unity Scriptable Objects

In this video (objectives)…

  1. What is a scriptable object and why use it?
  2. Use CreateAssetMenu so that we have a context menu to add scriptable objects.
  3. Create our first scriptable object.

After watching (learning outcomes)…

Create our first scriptable object.

(Unique Video Reference: 7_TX_CUD)

Public Methods & Return Types

In this video (objectives)…

  1. Public versus private access modifier.
  2. What are return types for methods.
  3. Writing a public method and accessing it from another class.

After watching (learning outcomes)…

Create a public method and access it from another class.

(Unique Video Reference: 8_TX_CUD)

Creating An Array

In this video (objectives)…

  1. What is an array and how are arrays created.
  2. Returning an array type variable from within a public method.
  3. Assigning array elements in Unity by dragging and dropping into the inspector.
  4. How to lock the inspector window.

After watching (learning outcomes)…

Understand how to create arrays and assign elements to arrays in code or in the inspector.

(Unique Video Reference: 9_TX_CUD)

Manage Next States

In this video (objectives)…

  1. Create a small game loop by having each state lead to another state.
  2. Create a method to respond to player's key input.
  3. Update the game's state based upon the next state array options.

After watching (learning outcomes)…

Complete our small adventure game engine using player input and state flow.

(Unique Video Reference: 10_TX_CUD)

Game State Story Design

In this video (objectives)…

  1. Using draw.io for our state diagram and flow.
  2. Time to create your own story.

After watching (learning outcomes)…

Capable of creating a flow chart for your story.

(Unique Video Reference: 11_TX_CUD)

Organise State Files

In this video (objectives)…

  1. Complete our game flow by adding all story states, and start and end states.

After watching (learning outcomes)…

Add all our states to our game.

(Unique Video Reference: 12_TX_CUD)

TextMesh Pro & Polish

In this video (objectives)…

  1. Using Unity's Package Manager to install TextMesh Pro.
  2. Font a font online to bring into your project.
  3. Create font atlas using the font you found and TextMesh Pro.
  4. Create a TextMesh Pro text for your title.
  5. Find a colour scheme you like and update the colours in your game.

After watching (learning outcomes)…

Know how to use TextMesh Pro and how to polish the look of your game.

(Unique Video Reference: 13_TX_CUD)

Test Your Understanding - Text101 #1
Text101 Instructor Hangout #1

In this video (objectives)…

  1. Further discussion regarding state as a class and state as a variable.
  2. Further discussion on how scriptable objects work, where they are saving and what is required.
  3. Code formating - where it matters and where it doesn't.
  4. Why we didn't dig into more narrative design in this section.

After watching (learning outcomes)…

Deeper understanding of the concepts covered thus far in this section.

(Unique Video Reference: 14_TX_CUD)

Publish Your WebGL Game

In this video (objectives)…

  1. Adjust our screen aspect ratio and scaling.
  2. Create a WebGL build.
  3. Zip our build foler and upload to sharemygame.com.
  4. Celebrate, you've published a game!

After watching (learning outcomes)…

Create a WebGL build and publish online.

(Unique Video Reference: 15_TX_CUD)

For Loops

In this video (objectives)…

  1. Find a bug in our game which causes our standalone PC build to break.
  2. Figure out why the game is breaking because of the bug.
  3. Use a for loop to change our input mechanism and stop ArrayOutOfIndex errors.

After watching (learning outcomes)…

Fix our ArrayOutOfIndex error using a for loop for player input.

(Unique Video Reference: 16_TX_CUD)

Number Wizard UI

Welcome To Number Wizard UI

In this video (objectives)…

  1. Overview of this section.
  2. Focus on UI - adding buttons, text, images.
  3. Linking our button functionality with our code.
  4. Creating scenes and loading scenes.

After watching (learning outcomes)… Ready and raring to start this section.

(Unique Video Reference: 1_UI_CUD)

Number Wizard UI Game Design

In this video (objectives)…

  1. Reminder of the core guessing game mechanic.
  2. Presentation of our game flow through the main scenes.
  3. Discussion of theme and tone of the game.

After watching (learning outcomes)… Clear on the design objectives for the game.

(Unique Video Reference: 2_UI_CUD)

UI Anchors

In this video (objectives)…

  1. Add a button to our canvas.
  2. Add an image to our canvas.
  3. Adjust the stretch and anchor settings so that our UI assets are aligned how we want them to be even if the game is played at different aspect ratios or resolutions.

After watching (learning outcomes)… Capable of implementing UI anchor points works.

(Unique Video Reference: 3_UI_CUD)

Making Buttons

In this video (objectives)…

  1. Add mouse over and click effect to our button.
  2. Improve font quality using TextMesh Pro text for the button.
  3. Create 3 scenes, each of which has a button that can be used to load new scenes.

After watching (learning outcomes)… Create nice looking buttons that can be used for awesome functionality.

(Unique Video Reference: 4_UI_CUD)

Button Click Loads Scene

In this video (objectives)…

  1. Create public method to load the next scene.
  2. Add build index to scenes.
  3. Hook up start button with LoadNextScene() public method.

After watching (learning outcomes)… Create public method to load next scene, triggered from a button.

(Unique Video Reference: 5_UI_CUD)

Load All Scenes

In this video (objectives)…

  1. Create new method to load straight to our first scene.

  2. Hook up all buttons to loading functionality.

  3. Load all scenes.

After watching (learning outcomes)…

Load all scenes in our game using buttons.

(Unique Video Reference: 6_UI_CUD)

Prepare Game Screen

In this video (objectives)…

  1. Examine our "spec" for the game screen.
  2. Implement all the buttons, text, images required for the game screen.
  3. Ensure all game objects are properly named and ready for action.

After watching (learning outcomes)… Implement UI elements required for our core game from our game design.

(Unique Video Reference: 7_UI_CUD)

Import & Refactor Code

In this video (objectives)…

  1. Import our NumberWizard.cs code from previous section of the course.
  2. Assess what needs to be refactored / changed in order to have our code work with our user interface.
  3. Refactor the code including player input mechanism.

After watching (learning outcomes)… Refactor our code so that it is ready to hook up with our user interface.

(Unique Video Reference: 8_UI_CUD)

Using ToString()

In this video (objectives)…

  1. Hook up our buttons to the previously created methods.
  2. Link our UI text field to our code.
  3. Use ToString() to convert our integer into a string to be displayed in our text field.

After watching (learning outcomes)… Connect a variable in our code with a text field in our UI.

(Unique Video Reference: 9_UI_CUD)

Use Random.Range()

In this video (objectives)…

  1. Use Random.Range() for our guess to introduce randomness.
  2. Refactor our code to only have 1 place of calculating guess.
  3. Tweak our logic to prevent the computer from guessing a number already guessed.

After watching (learning outcomes)… Use Random.Range() to add randomness to the number guessed.

(Unique Video Reference: 10_UI_CUD)

Polish & Standalone Build

In this video (objectives)…

  1. Use Application.Quit() to create a quit button for our game.
  2. Add final text, colours and tweaks to the game.
  3. Build to PC, Mac, Linux Standalone.

After watching (learning outcomes)… Create a final PC / Mac / Linux Standalone build.

(Unique Video Reference: 11_UI_CUD)

Test Your Understanding - Number Wizard UI #1
NWUI Instructor Hangout #1

In this video (objectives)…

  1. We discuss namespaces in more detail.

After watching (learning outcomes)… A hangout where Ben and Rick talk about namespaces.

(Unique Video Reference: 12_UI_CUD)

Block Breaker

Welcome To Block Breaker

In this video (objectives)…

  1. Overview of this section.
  2. Focus on Unity's physics engine and collisions.
  3. Lots of creative opportunity to make your own levels, background, blocks, rules, tuning and so on.

After watching (learning outcomes)… Ready and raring to start this section.

(Unique Video Reference: 1_BR_CUD)

Block Breaker Game Design

In this video (objectives)…

  1. Fundamental aspects of our design.
  2. Ideas for your game.
  3. Challenge for your game theme, background image and name.

After watching (learning outcomes)… Clear on the game design we will use for Block Breaker.

(Unique Video Reference: 2_BR_CUD)

Export & Import Package

In this video (objectives)…

  1. Export scenes and SceneLoader.cs from previous project.
  2. Import package into our new project.
  3. Set up build settings, change aspect ratio, update text.

After watching (learning outcomes)… Export scenes and logic from one project and import as a package into another.

(Unique Video Reference: 3_BR_CUD)

World Units & Play Space

In this video (objectives)…

  1. Discuss what Unity World Units are.
  2. Set up our camera size.
  3. Import and set up background image, paddle, ball and block.

After watching (learning outcomes)… Understand world units and set up play space.

(Unique Video Reference: 4_BR_CUD)

Rigidbody & Colliders

In this video (objectives)…

  1. Add a Rigidbody2D to the ball so that it has gravity influencing it.
  2. Add colliders to ball and block so that they collider.

After watching (learning outcomes)… Able to add the core physics components to 2D objects.

(Unique Video Reference: 5_BR_CUD)

Add Unity Physics Material

In this video (objectives)…

  1. Add Polygon Collider 2D to our paddle.
  2. Add Physics Material 2D to our ball.
  3. Bounce!

After watching (learning outcomes)… Make a game object bounce off another game object.

(Unique Video Reference: 6_BR_CUD)

Colliders, Collision & Triggers

In this video (objectives)…

  1. Stop our ball rotating by freezing Z axis rotation on our Rigidbody.
  2. Create a lose collider.
  3. Discuss difference between trigger and collider and examine the event matrix for collision events.
  4. Load Game Over screen when ball passes through lose collider.

After watching (learning outcomes)… Make the game load a new scene when an object passes through a trigger volume.

(Unique Video Reference: 7_BR_CUD)

Move Object With Mouse

In this video (objectives)…

  1. Find the position of the mouse on the screen.
  2. Convert the mouse position into a relative proportion of our screen represented as game units.
  3. Link movement of our mouse to movement of our paddle.

After watching (learning outcomes)… Move a game object so that it matches the position of the player's mouse.

(Unique Video Reference: 8_BR_CUD)

Limit With Mathf.Clamp()

In this video (objectives)…

  1. Figure out the range we want to allow the paddle to move on x axis.
  2. use Mathf.Clamp() to limit the paddle's movement.

After watching (learning outcomes)… Use Mathf.Clamp() to limit the movement of a game object.

(Unique Video Reference: 9_BR_CUD)

Distance As A Vector2

In this video (objectives)…

  1. Understand how to calculate the distance from ball to paddle.
  2. Update location of the ball to match the location of the paddle plus our offset.

After watching (learning outcomes)… Stick the ball to the paddle.

(Unique Video Reference: 10_BR_CUD)

Launch The Ball

In this video (objectives)…

  1. Create a method to give the ball an upwards velocity.
  2. Create a bool which allows us to determine if the game has started yet and therefore stop locking the ball to the paddle.

After watching (learning outcomes)… Launch the ball with upward velocity from the paddle.

(Unique Video Reference: 11_BR_CUD)

Test Your Understanding - Block Breaker #1
Play Space & Gravity

In this video (objectives)…

  1. Add walls for our ball to bounce off.
  2. Alter the gravity so that the ball doesn't slow down due to gravity.

After watching (learning outcomes)… Set up our play space and change our gravity.

(Unique Video Reference: 13_BR_CUD)

Destroy GameObject

In this video (objectives)…

  1. Add Block.cs script to our block.
  2. Use the Destroy() method to destroy the block once its hit.
  3. Discuss the option to set arguments for the method.

After watching (learning outcomes)… Destroy our block when the ball hits it.

(Unique Video Reference: 14_BR_CUD)

Using Prefabs In Unity

In this video (objectives)…

  1. Create our first prefab.
  2. Experiment with how prefabs work.
  3. Set our snap settings.
  4. Build a level.

After watching (learning outcomes)… Use prefabs and build a level out of prefabbed blocks.

(Unique Video Reference: 15_BR_CUD)

Make A Second Level

In this video (objectives)…

  1. Prefab all of the game objects that are required for our game levels.
  2. Create Level 2 using our prefabbed objects.

After watching (learning outcomes)… Create a second level using prefabbed assets.

(Unique Video Reference: 16_BR_CUD)

Test Your Understanding - Block Breaker #2
Fraction Too Much Friction

In this video (objectives)…

  1. Identify the issue - the ball slows down after hitting the side of the paddle.
  2. Alter the physics material friction value to remove all friction on the ball.

After watching (learning outcomes)… Stop the ball slowing down when it collides with the paddle.

(Unique Video Reference: 17_BR_CUD)

GetComponent To Play Audio

In this video (objectives)…

1. Understand Audio Listener, Audio Source and Audio Clip.

2. Use GetComponent to access the Audio Source and play our clip.

3. Ensure that the sound does not start until the ball is launched.

After watching (learning outcomes)…

Trigger sound effect each time the ball collides with something.


Play Random Sound From Array

In this video (objectives)…

1. Use PlayOneShot instead of Play.

2. Create an array and then use that array to randomly select one of many audio clips.

3. Cache our component reference.

After watching (learning outcomes)…

Randomly play one of many sound effects when an event takes place.



In this video (objectives)…

  1. Examine our problem with destroying our GameObject and therefore destroying the ability to play our destroyed SFX.
  2. Use PlayClipAtPoint() to solve the issue of our AudioSource being destroyed.

After watching (learning outcomes)… Play sounds from objects which are being destroyed.

(Unique Video Reference: 20_BR_CUD)

Count Breakable Blocks

In this video (objectives)…

  1. Map out our workflow for determining how many blocks are in a scene so that we can know when we reach zero.

  2. Create level GameObject and script.

  3. Increment our number of blocks for each block in our scene.

  4. Introduction to FindObjectOfType.

After watching (learning outcomes)… Tally up the total number of blocks in our scene.

(Unique Video Reference: 21_BR_CUD)

Test Your Understanding - Block Breaker #3
Win The Level & Load

In this video (objectives)…

  1. Create a public method for decreasing total number of blocks when a block is destroyed.
  2. Use FindObjectOfType to access our level loading methods.

After watching (learning outcomes)… Load the next level when all blocks in a level have been destroyed.

(Unique Video Reference: 22_BR_CUD)

Using Time.timeScale

In this video (objectives)…

  1. Use [Range] to create a constrained slider in our inspector.
  2. Add Time.timeScale to adjust the speed of our entire game instead of needing to play around with gravity and velocity.
  3. Hunt down an error by updating our other level with our prefabs.

After watching (learning outcomes)… Able to change the speed of our game using Time.timeScale.

(Unique Video Reference: 23_BR_CUD)

Add Player Score

In this video (objectives)…

  1. Create currentScore and pointsPerBlockDestroyed variables.
  2. Create a public method that adds to our score when called.
  3. Call the method which increases our score when a block is destroyed.

After watching (learning outcomes)… Able to increase the player's score when a block is destroyed.

(Unique Video Reference: 24_BR_CUD)

Display Player Score

In this video (objectives)…

  1. Create TextMeshPro text, import font, tweak till we're happy.
  2. Use ToString() to update our text field with our current score.

After watching (learning outcomes)… Able to display and update the player's score in the UI.

(Unique Video Reference: 25_BR_CUD)

Implement Singleton Pattern

In this video (objectives)…

  1. Introduce the Singleton Pattern.
  2. Use DontDestroyOnLoad().
  3. Examine the Unity script execution order to see that we can use Awake() for our singleton.

After watching (learning outcomes)… Able to implement a Singleton Pattern to ensure that our score persists across level load.

(Unique Video Reference: 26_BR_CUD)

Singleton Pattern Bug Fix

In this video (objectives)…

  1. Inserted a simple fix for bugs we are seeing with the Singleton.
  2. Immediately set the game object to inactive and then destroy it.

After watching (learning outcomes)… Fix one of the known issues with the singleton not destroying itself correctly.

(Unique Video Reference: 26b_BR_CUD)

Test Your Understanding - Block Breaker #4
Reset Game Session

In this video (objectives)…

  1. Reinforce the public method paradigm we've been using.
  2. Fix the issue with our score persisting from game session to game session.
  3. How to rename a class.

After watching (learning outcomes)… How to elegantly reset our game session so that our score resets.

(Unique Video Reference: 27_BR_CUD)

Instantiate GameObject

In this video (objectives)…

  1. Review how Instantiate() works, discussing method overloads and signatures.
  2. Create code for instantiating a particle effect when we destroy a block.

After watching (learning outcomes)… Able to instantiate a GameObject through our code.

(Unique Video Reference: 28_BR_CUD)

Using Tags In Unity

In this video (objectives)…

  1. Getting schwifty with tags - understanding the what and why of using them.
  2. Creating an unbreakable block type which... doesn't... break!

After watching (learning outcomes)… Able to use tags to create an unbreakable block type.

(Unique Video Reference: 29_BR_CUD)

Block Damage Levels

In this video (objectives)…

  1. Create 2 variables we can compare - maxHits and timesHit.
  2. Implement a conditional statement to destroy block if maxHits is more than timesHit.

After watching (learning outcomes)… Create a simple system of multiple damage levels for our blocks.

(Unique Video Reference: 30_BR_CUD)

Damage Affordance

In this video (objectives)…

  1. Create an array to hold our damage sprites.
  2. Change our sprite renderer depending upon how many hits a block has taken.

After watching (learning outcomes)… Change the sprite displayed for a block based upon how many hits it has taken.

(Unique Video Reference: 31_BR_CUD)

Test Your Understanding - Block Breaker #5
Smarter maxHits Logic

In this video (objectives)…

  1. Remove blocks and recreate our playtesting level.
  2. Add code to provide a warning if our array is missing sprites.
  3. Remove the manual process for defining maxHits and link this to the array size of our sprites.

After watching (learning outcomes)… Add warnings to catch mistakes and remove one place we could make a mistake.

(Unique Video Reference: 32_BR_CUD)

Prevent Boring Ball Loops

In this video (objectives)…

  1. What's our problem? Boring ball loops.
  2. How can we solve it? Adding velocity tweaks to our balls when they bounce into things.

After watching (learning outcomes)… Add velocity tweaks to our balls to stop them being boring.

(Unique Video Reference: 33_BR_CUD)

Extreme! Tuning!

In this video (objectives)…

  1. Discuss the concept of extreme tuning - why use it.
  2. Audit our current project for places that we can apply some extreme tuning.
  3. Rick does some extreme tuning.

After watching (learning outcomes)… Able to audit your project and apply extreme tuning to make your project rad.

(Unique Video Reference: 34_BR_CUD)

Tune & Playtest

In this video (objectives)…

  1. Refer back to your player experience to determine how you tune your game.
  2. Tune all of your game variables so that you're happy with them.
  3. Ask a friend to playtest.

After watching (learning outcomes)… Tune your game so that it matches your player experience.

(Unique Video Reference: 35_BR_CUD)

Autoplay for Playtesting

In this video (objectives)…

  1. Create an if statement to test if we have enabled autoplay.
  2. If auto play is enabled, change the paddle's x position to the same as the ball's x position.

After watching (learning outcomes)… Able to lock the paddle to the ball using an autoplay toggle.

(Unique Video Reference: 36_BR_CUD)

Make Levels & Upload

In this video (objectives)…

  1. Add extra levels so that you have at least 5 levels.
  2. Create a WebGL build and share to ShareMyGame.com

After watching (learning outcomes)… Finish your game and upload for the community to check out.

(Unique Video Reference: 37_BR_CUD)

Test Your Understanding - Block Breaker #6
Block Breaker Wrap-Up

In this video (objectives)…

  1. Well done for the great creativity in this section.
  2. You can add to your project or push on to the next section.

After watching (learning outcomes)… Onwards and upwards to the next section of the course!

(Unique Video Reference: 38_BR_CUD)

Block Breaker Instructor Hangout #2

In this video (objectives)...

  1. Discussion about the endless loop issue.
  2. Public versus [SerializeField].
  3. What are messages and how are they called.

After watching (learning outcomes)…

Ben and Rick talk about a few issues that came up in this section of the course.

(Unique Video Reference: 37b_BR_CUD)

Laser Defender

Welcome To Laser Defender

In this video (objectives)… 1. Overview of this section. 2. Focus on making a fun top-down shooter. 3. Lots of creative opportunity to make your flavour of top-down shooter. After watching (learning outcomes)… Ready and raring to start this section.

(Unique Video Reference: 1_LD_CUD)

You can view and review the lecture materials indefinitely, like an on-demand channel.
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don't have an internet connection, some instructors also let their students download course lectures. That's up to the instructor though, so make sure you get on their good side!
4.6 out of 5
50875 Ratings

Detailed Rating

Stars 5
Stars 4
Stars 3
Stars 2
Stars 1
30-Day Money-Back Guarantee


59 hours on-demand video
18 articles
Full lifetime access
Access on mobile and TV
Certificate of Completion
Support Buy $0