Unity: Learn Android Game Development by recreating games
3.9 (58 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
3,246 students enrolled

Unity: Learn Android Game Development by recreating games

A guide on how to make the following games in Unity: Color Switch, aa, Flappy Bird, Dino T-Rex
3.9 (58 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
3,246 students enrolled
Last updated 10/2017
English [Auto]
Current price: $135.99 Original price: $194.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 8 hours on-demand video
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Re-create popular 2D Android games in Unity
  • Create at least one original game by yourself
  • Apply everything about Colliders and Triggers in Unity
  • Understand Prefabs and how to clone/spawn objects
  • Make auto-generated infinite levels
  • Create a menu (such as Main Menu, Level Selection Menu, etc.)
  • Use everything about PlayerPrefs and storing data permanently in the game
  • Use Particles and understand how to create some special effects
  • Add sound effects to games
  • Animate game objects
Course content
Expand all 66 lectures 07:52:57
+ Color Switch Replica
32 lectures 03:21:02

This lesson will teach you how to properly set up a 2D Unity project for Android Development. After everything is set we will create the scenes that are going to be used in the Color Switch Replica game and add them to the build settings.

Setting up the project

This lesson will teach you the importance of keeping an organized project in Unity. We will create folders for Scenes, Scripts, Sprites and Prefabs. After that we will import the sprites used in this game and learn how to use the Unity Sprite editor to separate them.

Creating folders and Importing sprites

In this lesson, we will begin building the home menu scene. First we will add a background image, and then we will try to recreate the art from the original game by assembling a logo and adding some circle objects along with the "Play" button.

Creating the main menu

This lesson is all about enhancing the main menu that we created in the last lesson. Two new C# scripts will be created that will make the objects in the main menu rotate.

Adding functionality to the main menu

In this lesson we will create a C# script that's going to be attached to the "Play" button and that will takes us to the next scene once the button is clicked or pressed with the finger on a touchscreen device.

Adding functionality to the "Play" button

In this lesson, we will slowly start to create the gameplay. The first thing to create on our list is the Player game object. Once that we have created it, it's time to enable physics, so that it can fall down.

Getting started with the gameplay

This lesson will teach you how to create a C# script that will access the RigidBody2D component of the player game object and manipulate it into jumping up once the screen is tapped. This method can also be useful for other things since this lesson will show you how to check for user input in Unity.

Making the player jump

This lesson will show you how two objects with a RigidBody2D component interact with eachother by creating a floor that will prevent the player from falling out of the screen at the start.

Adding the floor

This lesson serves as an introduction and example as to why we need to learn more about triggers and how we can use them in almost every game.

Let's talk about the camera

This lesson is not directly related to building the game, however, it will give you a good understanding what triggers and colliders are, what's the difference between them and how to use them in scripting. In this lesson, you will also be shown how 2D and 3D objects work when they are in the same project.

A lesson about Colliders and Triggers

This lesson will teach you how to use your newly accquired knowledge about triggers to recreate the camera movement to match the original game. The C# script will contain the OnTriggerStay2D method and make the camera move up while the player is withing the trigger. Once the player exits the trigger, we will use the OnTriggerExit2D method to detect that and stop the camera from moving.

Recreating the camera movement from the original game

This lesson will teach you how to change the starting color of the player game object. By doing so, you will learn a lot of useful things about Unity game development, such as: Generating a random number and executing some code according to which number we get; Accessing and modifying the SpriteRenderer component in Unity; Using a C# script to change the names of objects. 

Randomly assigning a start color to the player

This lesson is about the first step in creating the obstacles. We will add the sprites into the scene, assemble them to form a circle obstacle and after that we will make it rotate using a C# script that we already created before.

Creating the first obstacle

In this lesson, I will teach you how to check weather the player game object is passing through the right color of the obstacle. This will be done using a C# script, and if the player passes through the wrong color, the SceneManager will load the "Game Over" scene.

Adding functionality to the obstacles

This is a quick lesson, not related to building the game, that will help you understand what prefabs are and how to use them with the Instantiate function in Unity. This function will be used to clone objects through various games.

A lesson about prefabs and the Instantiate function

This lesson will show you how to practically use the Instantiate function to clone the obstacles. First we will need to make the obstacle from the previous lessons into a prefab. Then we will need to use triggers to create an event of when we want the obstacle to spawn and finally, we will need to create and empty game object that will be used as a spawn location. All of these will be combined in a C# script that will allow the game to go infinitely (If you are good enough lol). There is still one problem with this — The obstacles will be left behind once we pass them, without getting destroyed. If you are really good at the game, there could be hundreds of them, which will eat up hardware resources of your phone, especially if it's an older device. This will be fixed in one of the next lessons.

Cloning the obstacles to create an infinite game

This lesson will teach you how to create a "Destroyer" game object that will delete every game object that it touches. To enable this function we will be using the Destroy() function in a C# script.

Destroying unused objects

This lesson will teach you how to create another obstacle in a rectangular shape. It will also be a prefab and we will edit the obstacle cloner script so that it spawn one random obstacle from our pool of obstacles. After watching this and learning how to do it, you should be able to create more obstacles on your own.

Creating another obstacle

This is a long lesson that will teach you how to create a game object that will change the player's color once the player collides with it. The script used for this will have many "if" and "else if" statements and might seem complicated at first. However, it will be very similar to the script that we used to assign a starting color to the player, the only difference being that the player can't change into the color that he already had, which explains the many "if" statements. After we are done with constructing the "Color Changer" we will also edit the script that spawns the prefabs and make it spawn this newly created object after every time it spawns an obstacle.

Creating a "Color Changer"

This is a short lesson that represents the first part of teaching you how to create a collectible point game object, that we will later on use as a score.

Creating a collectible "Point" game object

This lesson will be about adding the functionality to the collectible point, or in other words, we will clone it into every obstacle that we spawn. While dealing with this, a problem occurred that needed to be fixed and I used this opportunity to teach you how to make changes to prefabs and saving them again.

Adding functionality to the "Point" game object

This lesson will teach you how to take make a 3D Text game object that will keep track of how many stars or points were collected during one game. Since the 3D text is much easier to manipulate than the 2D one, I will show you how to properly use it in a 2D project, when it comes to a high resolution text.

Creating a score text that counts how many points were collected

In this lesson, we will begin with the construction of the "Game Over" scene. That includes adding a background, a score text, then a high score text, the color switch logo and various buttons. The Scores will have no function yet and that's something that we will be handling in the following lessons.

Getting started with the "Game Over" scene

This lesson will teach you the very basics of animation in Unity. We will animate the reload button to pulse by making it continuously scale up and down.

Animating the "Replay" button

This is a very important lesson which is not directly related to building the game. It will give you a better understanding of what PlayerPrefs are and show you all the functions that you can use in PlayerPrefs.

Preview 03:14

This lesson will teach you how to use the knowledge you acquired in the last lesson about PlayerPrefs in order to transfer the score/number of points into the next scene.

Transfering the current score into the "Game Over" scene

This lesson will teach you how to create a high score system using PlayerPrefs. The high score will be remembered within the game even after a full restart.

The "High Score" system

This lesson explains why updates are a good thing and why nobody should be scared of updating Unity. We are also going to re-import a backed up unity project and show you how to do it as well.

Let's talk about updating Unity

In this lesson, I'll be teaching you what particles are and after that I'll show you how to create your first particle system in Unity.

Getting started with Particles

In this lesson, I will teach you how to create another particle system that will emit a "+1" particle whenever a point is collected. This will go along the star particles that we created in the last lesson.

Adding more Particles vol.1

In this lesson we will try and get some more practical knowledge on particles in Unity, by creating particle systems that play whenever the player hits a wrong color. This time its going to be kind of an exploding effect, however we will have 4 different particles that will play depending on the player's color at the time of dying.

Adding more Particles vol.2

In the final lesson for the Color Switch replica game, I'll show you how to freeze the player movement after he collides with the wrong color, and also make it appear invisible in that event. There will also be some additional finishing touches to our game, such as adding the Color Switch logo at the beginning of the gameplay scene, just like in the original game.

Preview 05:09
+ aa Replica
11 lectures 01:38:31

In this lesson we will have a brief overview at the game that we will recreate, talk about how it's going to work and how we will improve it when compared to the original. The setting up of a new project involves the creation of the actual project, build settings, scenes, folder and importing of sprites.

Setting up a new project

This lesson will show the creation of the main menu for our new replica game. It involves creating a background, buttons, assigning sorting layers and adding functionality to the buttons with a few C# scripts.

Preview 07:08

This lesson is the start of building the core game mechanics.

Making the pin always fly up

In this lesson we will further improve the game mechanics, making the pin able to hit the target and other pins. If the target is successfully hit, the pin will be attached to the target and start rotating with it. This effect is going to be achieved by making the pin a child of the target game object upon collision. However, if the flying pin hits another pin, then it's game over time.

Preview 06:44

Once again, we will make use of the knowledge about the built-in Instantiate function to clone our pin prefab and spawn it whenever our screen is tapped.

Instantiating the pin prefab

Competition is everything, therefore our "aa" replica game will also receive a hit counter in the middle of the target game object.

A score counter for the "aa" game

This is a very long lesson that cover the complete process of building the gameover scene. This includes the visuals, the text objects, and the highscore system using PlayerPrefs.

Building the complete "Game Over" scene

After this lesson you will be able to create a level selection menu for the aa Replica game.

Level selection menu

A lesson about the creation of our first "completable" level. This level is going to be fairly simple since it's the first one and it should probably be an easy one. After successfully clearing level 1 you should be unlocking the next level, and that's a functionality that's yet to be built in the next lesson.

Creating level 1

In this lesson I will teach you a simple way of making the rest of the levels unlockable. For this we will be using the PlayerPrefs as well. Aren't PlayerPrefs an useful thing? We can do sooo much stuff with them.

Making levels unlockable

In this lesson i will teach you how to create another level, that's going to be tougher than the previous one. We will be creating some additional obstacles and make the target spin faster. What kind of levels can you create? Let your imagination guide you!

Creating level 2
+ Flappy Bird Replica
10 lectures 01:15:24

In this lesson we create new project for Flappy Bird replica. We create scenes, add sprites and fonts, create a background, and add the bird. This lesson also explains how to add layers and apply them to each object.

Creating the project

This lesson explains how to make the bird fly on mouse click or screen tap. In addition, we state what is the condition in which the bird dies.

Focus on the bird

In this lesson we focus on the "Game over" text and we specify when it becomes visible. This lesson also explains how to add "Tap to restart" option.

Preview 08:18

Animation lecture explains how to animate the bird to make it look like it's flying using two sprites. 


For the Flappy Bird replica, we have decided to make a scrolling background instead of moving the bird. Background is controlled by the script in which we specify how the background scrolls and how it seems to be endless. 

Focus on the background

This lesson is about adding score. We use columns as obstacles and count score based on how many obstacles have been passed by the bird. Obstacles are also scrolling with the background.


We use Instantiate to spawn obstacles at random positions. We also specify how to destroy the obstacles that are not in the scene any more.

Spawning of columns

The Start scene is almost the same as the Main scene. We add text that takes the player to the Main scene when he/she taps it.

Adding the Start scene

In this lesson I explained how to connect your phone, make .apk file of the game on it, and run it. I also explained how to add the icon to the game.

Running the game on an Android

This lesson is a summary of everything that we did in the Flappy Bird project. It also shows some critical points of understanding the game development that students should remember and use.

+ Dino T-Rex
10 lectures 01:07:30

This lesson is about creating a new 2D project, importing sprites, font, and sounds, setting the background, and bringing Dino into scene.

Creating a project

This lecture is for creating Dino script and animating Dino object to make it look like it's running using two sprites.

Teaching Dino to run

Unlike in Flappy Bird, here we spawn backgrounds in front of Dino and Dino will run. It was done using 2D colliders and instantiating a background prefab.

Creating "infinite" background

Camera is scrolling the same speed as Dino is. Dino is jumping whenever we detect input on the screen. ScrollCamera script was created and Dino script was updated.

Camera following Dino; Dino jumping

Because of the Instantiate, clones of the background were starting to add up. Therefore, we needed to delete the used ones.

Dino dying; Destroying background clones

We need to animate the bird and make an array for obstacles. Those obstacles will be spawned at random positions, in random order.

Spawning of obstacles

This lecture is about destroying every obstacle that Dino jumped over and that are not in the scene anymore.

Destroying passed obstacles

This lesson deals with adding score and game over text. Also, adding an option that will allow us to restart the game when Dino dies by pressing the screen.

Score, Game Over, and jump to restart

Sounds are important and unique features of some popular games. This lesson is about adding sounds 

  • when Dino jumps, 
  • when score reaches 100 (and 200 and 300..), and
  • when Dino dies.
Sound effects

Lecture covered setting up the start scene and transition to the main scene. Also, I will show you how the game looks on an Android phone.

Start scene
+ Additional Lessons
1 lecture 15:47
Bonus Lecture: Google Ads (Admob banner)
+ Answering Questions
1 lecture 09:19
Bonus Lecture: Answering Questions - Week 1
  • Have Unity installed on your computer
  • Know the basics of navigating Unity
  • Know the basics of C# (other programing languages might be useful if you don't know C#)
  • Download the necessary files (Sprites, sounds, fonts, etc.) (A link will be provided at the beginning of the course)

Android game development is a growing trend in the world. We are all currently living in the era of applications and games. Whether you want to learn and practice C# skills, or you want to be creative and create your own game, this course will teach you everything you need to know.

There is no better way to learn how to make your own original game than by re-creating popular Android games.

  • Use different types of Colliders, Triggers, Rigidbodies,

  • Create endless games

  • Create menus and buttons

  • Randomly spawn objects

  • Use particles

  • Animate objects

  • Add sound effects

  • Add and save high-score

  • Run the game on your Android device

and many more interesting lessons are waiting for you in this course.

Re-create Color Switch, aa, Flappy Bird, and Dino T-Rex ! We will provide you all needed sprites, fonts, icons, and sounds.

Recreating all four games will put powerful knowledge in your hands. You can also add your touch to every game and upload it to Play Store. 

If you have an idea that could be the next famous, addictive game, then this course will help you realize your idea into an actual game. All this will be done using Unity, the ultimate game platform suitable for beginners and professionals, and C#, simple and powerful object-oriented programming language. The four games that we will re-create will be compatible with the most popular Android versions (From Jelly Bean, all the way up to Android Oreo).

Through the course of 64 lectures, in total of seven and a half hours, you will learn how to create projects and import given sprites. What is important for beginners is to learn about RigidBodies, Colliders, and Triggers, how to add them onto object and use them in C# scripts. Next thing that we will explain thoroughly is how to control objects (move, run, fly, stop, jump..) using scripts.

Next step in learning is to learn how to animate objects and add particles for making the game more dynamic and sound clips for sound effects. 

Every game developer needs to know how to add a score, game over text, and menu. This course explains you how to do it in a few different ways.

There is no game without some obstacles, therefore, we explained few different methods for spawning obstacles.

Everything you need to do is to install Unity and be focused on learning from our course!

Who this course is for:
  • Anyone who wants to become an Android game developer
  • Anyone who is interested in coding and Unity
  • People who are trying to learn and/or practice C# on real projects