
Introducing Unity user interface which we will use during our development. This is just a basic introduction of the most important user interfaces in Unity that you are going to use during the course and also during your own development. It will show you were can you place your assets, place your assets in the scene and see them in the game view, access properties of an object in the scene, and where will you print out your code to look for errors while developing.
Variables are the heart of any programming language. They represent data that we use to keep track and to store values that are important for our game or application. We will explore basic variables that are going to need every time you develop your own games or any other project for that matter.
Functions are a way to group a block of code that we reuse all the time to reduce our typing and to make our code look more cleaner. There various types of functions which we will explore in this video and see how can we use and create them.
When we want to check anything in our game or application we need conditionals to set a condition. For example if we want to check how many lives our player has, which level did he reach, how much score has he earned and many other things we need to check if that certain thing is true or false, and based on that we will execute a block of code that continues our game. We will see how can we use conditionals in this video.
Writing a specific code many times when we need to repeat a certain operation for a certain number of times can be frustrating, and it makes our code messy and it will be hard to debug that code when we encounter an error. Loops help us do that but with little effort. We will explore loops and what kind of loops are there and how can we use them in this video.
If we want to store multiple data of the same type instead of declaring that type of data for example ten times we can use arrays to do that for us. We will learn basics of arrays, how can we create them, use them, and access the data that they store.
Monobehaviour is the class that every class that we create extends by default. In OOP(Object Oriented Programming) when a class extends a class it inherits the behaviour of the the extended class, that means it basically inherits all the functions and variables that are declared in that class which we will see in this video.
Often when making games you want to make something happen with a delay. Coroutines are powerful functions that enable us to do exactly that. We will see how can we create coroutines and how can we use them to program a delayed behaviour.
Importing our assets and organizing our project. When creating any project it is important to organize everything. It is vital to know where the asset that you need is located especially when creating large project where you cant afford to lose time searching for an image that u dont know here you putted it. This video will explain how can we create files to group our assets.
If we want to animate our player walking, we need to draw multiple images of our player in his walk cycle, and we put all those drawings on one paper. To separate those images from one another unity provides us the slicing tool which enables us to slice those images and access them one by one as if they were imported separately.
The more nice detail our game has the more users it will attract. In this video we will animate our player but the concepts that I teach you here are the same concepts you need to know to make any animation that you desire for your game.
When we slice our player, create an animation for him, prepare everything , we want to keep those changes so next time when we need to have our player in the scene we dont need to animate him again and do everything from the beginning we want to have him ready for import. Prefabs enables us to do just that.
Detecting a collision between game object is vital for our game, colliders make that easy for us.
Our game will not be completed with out physics simulation. Rigid bodies enables game object to have and be affect by physics.
We will first script our player for keyboard so that we can test it out directly on our computer without the need to connect our phone. It will also come in handy to see how can we actually move our player in the game and latter in the future if you decide to make a game for PC.
Unity remote is an application that enables us to test our game on the phone without the need to install the game on it. Android sdk is essential to make our game work on android devices.
Just animating our player wont show that animation in our game if we dont reference it through our code. In this video we will explore how can we reference the animator component, and the parameters that we set for our animation to animate our player walking through our code.
Unity world is in " World Coordinates ", we also have " Screen Coordinates " , which is basically the coordinates on our screen. Understanding the difference between them will help us to program our player movement and it will come in handy when you develop your own projects in the future.
After our script for keyboard movement we will now script the player to move when we touch the screen of our phone. The code is the same with some minor changes which will be explained in the video.
Since we are going to simulate that our player is climbing down we are going to script our camera to move downwards and basically chase our player forcing him to move quickly. We will be moving our camera on the y axis but the concept is the same if you want to move the camera on any axis.
Preparing the background which we are going to use in our game. We have only one background image but will copy that image and use vertex snapping to group them together and simulate the look of a big beanstalk in our case. The concepts that you will learn in this video can be applied in many cases, such as when you want to create your game levels, you will use vertex snapping to group the images together to create one big level.
BG Collector is going to "collect" our backgrounds because we want to use pooling to simulate an infinite tree, we need our our bg collector to collect or in our case deactivate our backgrounds.
BG Spawner is going to respawn our backgrounds that our bg collect has collected. We are going to take the y position of the last cloud and test when we collide with the cloud if his y position is the same as the position that we store, if that is true we will respawn all backgrounds that our bg collector has deactivated.
As we did for our backgrounds we are going to do the same for our clouds. We are going to use pooling to deactivate and activate them, and for that we will need two colliders one to deactivate the clouds and one for reactivating them again.
Our cloud spawner is going to spawn our clouds in the beginning, position the player on the first cloud and after that he is going to respawn our clouds when he collides with the last cloud. In this videos I have used some techniques that will be useful for your future game development, like shuffling arrays, and spawning the player at the desired location, and that is why I have separated our cloud spawner scripting into four videos.
We will learn how can we port our game on our device to test and see how far did we go with our game.
Dark clouds are going to kill the player and in this video we will just create a test script to test that out.
Preparing the collectables that we are going to use in our game - our coin and our live. We will add colliders to them and set them up so that we can spawn them in our game so that our player can collect them.
Setting up the score system for our player, because we want to reward him for his hard work - playing our game :) . We will learn one of the ways how can we add score to our game in this video.
To make our game more attractive for the user we will create UI(User Interface) or HUD (Heas-Up Display) , to show our user how many coins he has collect, how many lives he has and what is the current score.
GUIText (now we can use Text from the new UI) is the way to display text on the screen and inform our user about the important things he needs to know regarding our game, in our case displaying the score.
We dont want our player to go outside of our camera view from the left and the right side, and for that we need to create boundaries to control the player position and restrict him so that he is not able to pass a certain border that we give him.
We will learn how can we spawn collectables in our game to make the game more interesting and challenging for our player.
Exploring one of the ways how can we support different screen resolutions and sizes. There are many other ways that we can use but that all depends on the game you want to create. Basically the approach you take is design for a specific resolution and after that scale the sprites up or down based on the resolution or scale the camera based on the resolution. One other way is that we can also design for a specific resolution but make our textures bigger, for example we design for 1280x800 resolution but we make our texture 1920x1200 , that way we can keep the camera orthographic size constant for example 4.5 , and our game will work perfectly on any resolution, with the exception that on some phones you will see more detail and one some phones you will see less detail.
Every game needs to have menus. In this video we will prepare our menu.
The buttons that we added to our main menu need to have some functionality, we are going to provide that functionality in this video.
We will learn how can we navigate from scene to scene, basically navigating from menu to menu, or from level to level.
Creating our options menu so that the user can set the desired difficulty.
The now old OnGUI, even though OnGUI was bad for mobile devices I created this tutorial just for programming purposes, so that people new to programming can learn more.
When I created this course the new UI was in beta mode(thats why I created menus and gameplay UI with prefabs). When I wanted to upload my course the new UI came out with the new unity update so I rushed back to my course and created one more tutorial to show you how can we create our menus with the new UI which is basically very easy.
One of the things that we can do to make our game more attractive to our users is to animate our menus. I will show a basic example how to animate our menu which you can use to animate your menus however you like.
Player preferences are used to store our game data. We will explore player preferences in this video and see their cons and pros.
Its a good practice to create a separate script that has static variables that we can use to access our player preferences then to type every time the names of the preferences we want to access.
Now that we have our preferences set up, we can create our background music, we couldnt do this before because we need to keep track if the music is on or off and we can do this with player preferences.
When we start our game we need to check if the music is on to play it or its off to turn it off it it by any chance the music was playing.
Scripting our buttons for turning the music on and off, some interesting techniques we will learn in this video.
For our game we want the user to chose at which difficulty he wants to play. By using player preferences we can set up our difficulties.
Now that we have our player preferences set up we can create our highscore menu, because our highscore menu needs to take the current highscore and preview it to the user.
When our game begins, we want to set the speed by which the camera moves based on our difficulty, we will learn how to do that in this video.
When our scene is loaded we want to check if the game is started from the main menu so that we can set up default values for coins, lives, and score, or if our scene is loaded when the player died so that we can set up the score, lives and coins the same as they were when our player died.
When our player dies, we want to decrement one life from our player, and after that check if he has more lives to continue the game, if he does we will reload our scene and continue the game, if however he doesnt have any lives to continue the game we will check if the player has made a new score and save that and after that load our main menu.
We dont want to start our game immediately when our player presses the Start Game button. We want to give our player the opportunity to start the game when he wants. For that we use time scale which enables us to basically pause our game.
Fading our scene will give it a prettier design and look then just loading a scene immediately. The techniques we learn here can be used to fade any scene you like in this game or in your future development.
We want our player to be able to pause the game if needs to, for that we will use our time scale again to create our pause menu.
The last thing regarding our gameplay is to preview the achieved score to the user after he has no more lives to continue the game.
A remainder before we begin to add our ads in our game.
Exploring the way how can we integrate ad mob sdk in our project and test it if it actually works.
Now that we have our ads setup we can implement them in our game, but we need to be careful not to bother the user so much or otherwise he will uninstall our game.
The last step is to create a Keystore for publishing our app on the google play market. I advice you to save this keystore and the password for it in a file where you always know where it is so that you can upload all your games with the same keystore(you can also create other keystores but its better to use one keystore).
****** Updated For Unity 5 ******
Over 3800 Enrolled Students Are Learning To Make Games And Earn Money
I present to you a course that is project based, and in this course I will cover all the topics that you need to know how to make your own games.
I'm self taught at programming so I know what problems you are facing and how to overcome them, so I designed this course in that way so that it will help you learn how to make games and earn some cash while you are at it :)
We will start with simple things so you will be comfortable if you are using unity for the first time, however I do expect from you that you know the basics of OOP(Object Oriented Programming), you don't have to be an expert programmer but you should have written a couple of simple programs and understand what are classes, objects, constructors, methods, variables, inheritance and other stuff connect to OOP.
You will also benefit from my super fast response if you have any issue that you are stuck with(I check Udemy forums every day if someone posts a question). Oh and all the students taking the course will also be there to help you!
All project files will be included and you are free to use them for anything that you like, personal or commercial use!
This Course is not here to teach you all of the features of Unity, but it will teach you enough so that you will be comfortable to use Unity on your own to create games, and you will be comfortable to look anything up if you feel like the subject is not familiar. Oh and I also have other courses that cover Unity game development so you can check them out and improve your Unity and game development knowledge even further.
If you are a beginner then start your game development journey with me, if you already created games you are also welcome to join and learn new techniques that will help you in your further game development career.What You will learn
That And Much More Is Awaiting For You In This Course
If You ever had an idea for an awesome game, then enroll in this course and learn the tools that you need to develop Your next hit game!!!
Enroll Now!! You Will Not Be Disappointed!!