Are you looking for building your career as a game developer, or building a game studio that creates exceptional games? Do you want to build the next big game hit that will break the app store records? Do you want to entertain millions of people, and add fun to their lives?
If yes, then you have come to the right place.
This second-by-second crafted course is a complete Unity game development experience that will take you into a journey that starts by finding an idea of your game, prototyping your game, putting the structure and developing your game whether in 2D or in 3D, and then publishing it using the Unity game engine.
You will learn how to design your game, validate it, build it and see it live and working and play it with your own hands.
During the course, you will build a Candy Crush, Subway Surfers, 2D platformer in addition to 3D Balance Ball "like" games to practice what you are learning.
What do students say about this course?
5-Star Review: "Excellent content structure. Topics covered are explained in a way to really understand them. Up to date, and covers latest unity 5 features. I've never enjoyed the online learning course like this before. He catches all essential parts of game dev with well divided lectures. And overall lectures have good balance of the background knowledge and the real code. If you wanna learn unity game dev as quick as possible without missing any important points, this is the answer for you." by David Borg
5-Star Review: "This course covers unity fundamentals very well, helped me a lot to understand unity game development basics, and see many exercises. I am still going through the course, but until now everything seems great!" by John Evans
10 years ago, building games was a complex thing. In order to build a game, you had to get your hands dirty with physics, graphics, and math code. It was something only big companies can afford; companies that have millions of dollars to spend on creating their games.
But thanks to the Unity 3D Game Engine, now game development has become a breeze! Unlike the old age of game development, now an indie team of 2 or even 1 game developer can produce games and easily publish and market them.
Unity has become a part of the success of many popular games; Monument valley, threes, Odd world: New n tasty, bad piggies, and hundreds of other titles. The simplicity of the engine, in addition to the vast number of platforms it supports makes it a great choice to depend on.
Content and Overview
Throughout this hand-crafted course, you’ll learn all of the Unity game engine's capabilities and establish a strong understanding of the concepts behind game development.
You will understand how to design your games, how to program in C#, experiment each of Unity’s components, apply physics, add materials to your game objects, adjust lighting, cameras, play sounds, animations, and deploy your games on mobile devices. In short, you will be exposed to every single aspect that you will need to build fantastic games in Unity.
In your journey in this practical course, your learning experience will always be exercised with challenges. You will write complete programs, and build 4 complete 3D and 2D games from scratch that bridge the gap between theory and practice, and prepare you to be a great hands-on game developer after you graduate from the course.
This course assumes no previous experience. It takes you from the absolute beginner game development concepts, downloading and installing the Unity Game Engine, writing your very first C# program, and then goes into more detail to explore the entire Unity Game Engine's feature set.
Every single lesson in the course has been pre-directed and supplied with animated materials that help deliver complex concepts in the easiest way possible. Utilizing this, the course has been designed to teach you all the aspects and features that the Unity engine provides in an efficient way that saves your precious time. Why would you spend 50 hours to learn game development while you can do it in less than half of that time?
Built from the ground up with modularity in mind, this Unity course is perfectly suitable for both complete beginners and more advanced developers. Want to learn only 2D game development, not 3D ? Well, skip directly to the 2D game development section in the course.
Now, what are you waiting for? Join the course, and start building your dream game in Unity!
Learn why games are so important, and how they affect the behavior of players and the way they think when it comes to solving problems.
Learn what a game development team is composed of, and the necessary skills needed to build a great game.
Understand how game companies have evolved, thanks to new distribution channels like smartphones, and smarter development tools like the Unity game engine.
Learn about the iterative game design process needed to build great games.
Finding ideas for your game is easier than you might think. Learn about the two best ways to find ideas for your next hit.
Great games share a number of qualities, like being "fun to play" for example. Learn about the list of these qualities and make sure to apply them in your next game.
Every game creates its own world, every part of the game should be matching with the world rules.
In this lecture, you will understand what elements a game world is composed of.
Prototyping is building a simple version of the game to play it. Learn ways to prototype your game ideas to be able to choose the best out of them.
Summary of what you learned in the game design section.
Learn how to download the proper Unity3D game engine for your platform, and install it on your machine.
Get a glimpse of the Unity interface, and learn how to create a new project.
The inspector tab is where you adjust the settings of every object you have in the game. Learn how to use the inspector tab to get the best out of your game objects.
Every Unity game object has a transform component. It controls the position, rotation, and scale information of the object.
Colliders allow us to detect collisions between objects in the game world. Learn how to adjust collider settings, and how to fit them to your game objects.
The scene tab is where you can edit your game world. Master the scene tab in order to learn how to navigate your game world, and edit your game objects.
More about the scene tab features.
The game tab is where you see your actual game and play it. Understand the difference between the game, and scene tab, how to play, and pause your game, and many more.
The project tab holds all the assets files like 3d models, textures, sounds in addition to code files of your game. Realize how to navigate your game assets, and create/add new ones.
Learn how to use the console tab to print "debugging" messages using code.
Unity is a flexible solution; It gives you the ability to adjust it layout. Understand how to achieve this for maximum work productivity.
Summarizing what you have learned in the getting started section.
Get started to code with C#, and understand the basic language syntax.
Variables are memory spaces that we can use to store data. Learn how to create, and use variables in C#.
C# supports many variable types. Learn the difference between them, and how to define each type in this lecture.
Understand how to choose names for your variables.
Learn how to convert between different variable types in the language, and why would you need so.
Plus, minus, divide, multiply, and modulus. Those are the supported arithmetic operations in C#.
Learn the different ways you can assign values to your variables.
Get your hands dirty with code exercises about variables.
Summarizing what you have learned about variables.
Conditional statements allow you to react to different situations in your program. Learn how to use the "if" statement to achieve this.
Learn how to create infinite number of condition chains to handle different situations using "If, else-if, else" statements.
Switch is a cuter version of an "if, else-if, else" chain. Learn how to use it, and when to choose it over its competitor.
Using the "And", "Or", and "not" operators, learn how to create richer consitions.
Get your hands dirty with exercises on conditional statements.
Summarizing what you have learned in the conditional statements lecture.
Looping is a way to repeat the execution of a block of code a number of times. Learn about the 4 types of loops that C# supports, and the difference between them.
More loops examples to learn about loops.
Learn how to "trace" or follow a loop execution to understand what it does, and to fix any issues inside the loop code.
Loops can come inside other loops, and that's what's meant by "nesting". Learn how, and why you'd need to use nested loops in your programs.
The "break" and "continue" keywords provide get out, or skip iterations in the loop. Learn how to use them in this lecture.
Get your hands dirty with code exercises on loops.
Summarizing what you have learned in the loops lecture.
Functions are blocks of reusable code. Learn how to define functions, and how to call them in your programs.
Overloading is defining multiple versions of the same function. Learn how to achieve it, and why it is important in this lecture.
Learn how to return values to "caller" functions using function return types.
Every function has a scope of variables that is available only in the function call, and is destroyed afterwards. Learn more about function scopes, and types of passing variables in this lecture.
Summarizing what you have learned about functions.
Arrays allow you to store bulk of data in the memory. Learn how to create an array in C#, and how to use it in this leacture.
Learn how to use loop in order to go through arrays.
Understand how to create multidimensional arrays like tables, for better control and flexibility of data storage.
Jagged arrays are special types of multi dimensional arrays. Learn how they are different, and when to use them in this lecture.
A list is a flexible competitor to an array. Learn how to create them, and when to use them in this lecture.
Learn the pros and cons of arrays and lists, and when to use each one of them.
Summarizing what you have learned in the arrays and lists lecture.
Object-oriented programming is one of the best inventions in software engineering. It allows you to represent real-life objects into entities inside your programs, which makes it easier to solve bigger problems.
In this lecture, you will learn how to define classes, and create instances of them.
Understand what makes object-oriented programming better than traditional programming approaches.
With the OOP comes new language keywords, like the "class", and "new" keywords. This lecture goes through the list of new keywords that you have to learn.
Null mean nothing. Learn how to assign "null" values to your objects, and the reason behind this.
An object can contain variables and methods inside of it. A constructor is a special type of a method that is called automatically when a new instance of the object is created.
Learn about the possible use cases for constructors, and how to create them for your class objects.
Understand the difference between normal and static members, and the different use cases of each of them.
Realize the difference between properties and class fields and methods, and when to use them.
Inheritance allows you to create relationships between objects. Both car, and ship are special types of vehicles. Realizing this in software programs helps you solve even more complex problems.
Learn how to use enumerations to write more maintainable and readable code.
A namespace is a class container. Learn how to create namespaces, and use them in your programs in this lecture.
Summarizing what you have learned about object-oriented programming.
Debugging is the process of fixing bugs (or issues) in your program. Learn the available techniques to use when debugging your program.
Learn about the available built-in 3D objects in Unity, and how to use them to create real games.
Ragdolls allow you to build human-like characters. Understand how to build up a skeleton of whatever objects you have in your game.
Terrains help you draw up your game world. Understand how to use them to create realistic game environments in this lecture.
More about building and adjusting terrains.
Unity provides a comprehensive tree builder tool. In this lecture, you will understand how to use it to create any tree type you can think of.
More on adjusting and crafting your trees using the tree builder.
A windzone is a force field that applies realistic wind in that particular area. In this lecture, you will learn how to adjust the winzone settings to match your game world.
Learn how to write 3D text in your game world using the 3D text object.
Summarizing what you have learned in the 3D game objects lecture.
Learn to create a 3d balance ball game where you have to control a ball using keyboard to pass the game maze.
Understand how to use what've learned until now to build the game level.
Learn the game developer essential math and graphics concepts that are needed to understand what's happening behind the scenes.
More math and graphics concepts that you need to understand.
Applying physics in Unity is as easy as adding a component to an object. Learn how to achieve this, and experiment with the infinite possibilities that you can reach with physcis.
Colliders provide information about collisions between game objects. Learn how to adjust them and tailor them to your objects in this lecture.
Understand how to simulate the different types of materials like rubber and ice using physics materials.
Under physics, object are controlled by forces. To move an object in a certain direction, you have to apply a force with certain magnitude in that direction, and that's what you will learn in this lecture.
Just like force, a torque is the ability to rotate an object in a certain direction. Learn how to achieve this using code in this lecture.
Time to understand how Unity handle physics internally. Learn when to use each of the functions "Update" or "FixedUpdate" in this lecture.
Raycasting is a flexible way to check for collision. Instead of colliders, you can use raycasting to cast an imaginary ray from a certain point and check if it hits any objects in its way. Learn how to do this, and when to apply this in this lecture.
Physics is optimal for moving object in the game, but when it comes to characters, there are other ways to use that better suit the nature of them. Learn how to use character controllers to control your game characters instead in this lecture.
Learn how to capture keyboard input in the game.
Joints create relationships between objects in the game. In this lecture, you will learn how to create fixed joints between different objects.
Learn how to create spring joints between different objects.
Learn how to create hinge joints between different objects.
As an application of joints, learn how to build a complete hotel revolving door.
Summarizing what you have learned so far in the physics lecture.
Get your hands dirty, apply what you have learned in the physics lecture on the 3d balance ball game.
Materials are the skin of objects; they provide the realistic look of them.
Learn the basic concepts you need to understand how to work with materials in Unity.
Understand how to import textures to use with your materials.
Understand the different rendering modes, and Albedo material setting.
Learn how to tweak the metallic, smoothness, and specular material properties, and the possibilities you can reach using them.
Learn about normal, height, occlusion maps and how you can use them to properly define your material outline.
Understand how to create self-emitting materials using the emission property.
Learn how to add more detail to your objects using secondary maps, and detail masks.
Summarizing what you have learned in the materials and shaders lecture.
Without lights, your player will see nothing in the game. In this lecture you will learn how apply directional light which lightens the whole game world.
More about the directional light object, and how to adjust its settings.
Understand other types of light that Unity provides; spot, point, and area lights.
Too much lighting hinders game performance. Baking light provides a way to optimize performance by pre calculating light effects before game play. Learn more about this technique in this lecture.
Understand how to create realistic game environments using physically based shading technique.
Lighting probes provide cheap live light processing. Understand what that means, and how they differ from baking light in this lecture.
Realize how to create reflections, and mirror-like effects in your game using reflection probes.
The lighting tab provides many settings through which you can tailor the light settings to match your game scene.
More about the lighting tab settings.
Summarizing what you have learned in the lighting lecture.
Get your hands dirty; exercise what you learned in the materials and the light lectures by applying them into our game, 3D balance ball.
Prefab, short for prefabricated object, provides a way to "template" a certain game object to instantiate clones of it in the game. Learn how to create prefabs, and how to create instances of them using code in this lecture.
Apply what you have learned to add prefab challenges to the 3D balance ball game.
Particle systems allow us to create complex visual effects like smoke, fireworks, dust, and more. Learn more about them in this lecture.
Particle system come with many settings that allow you to control every single bit in this. This allows you to create whatever effect you might think about. Learn more about these settings in this lecture.
More on particle system settings.
Additional particle system settings and configurations.
Exercise what you have learnt; understand how to create a fire flame using particle systems.
One more particle system exercise; create a moving cloud effect.
Summarizing what you learned about particle systems.
Get your hand dirty; learn how to import external 3D models into Unity.
Get your hand dirty; apply what you have learned so far in particle systems by adding a fire flame to the candle holder.
Game players see the game through the eyes of cameras. Learn more about cameras in this lecture.
Skyboxes define the outer game environment, like the sky for example. Learn how to use skybox components in combination with cameras to alter your game scene environment.
Cameras come with a set of settings allowing you to configure them to broadcast the right footage of your game to game players. Learn more about them here in this lecture.
More on camera settings.
Cameras come with smart techniques that saves performance during game play. One of these technique is occlusion culling.
Learn more about this special technique, and understand how to configure it for best results in this lecture.
More on occlusion culling.
High dynamic range is a one of the techniques that come with cameras. Learn the benefits of this technique, and how to enable it in this lecture.
Exercise what you have learned about camera by creating a second map outline camera in our game.
One more camera exercise; create a surveillance camera inside our game.
Summarizing what you have learned in the camera lecture.
Get your hands dirty; apply what you understood in the camera lecture by creating a skybox to our game, 3D balance ball.
Understand how to import sound clips into unity to play them in your game.
Learn how to play sound clips, and tweak audio settings in Unity.
More on tweaking audio settings.
Unity 5 has introduced audio workflows, which allows you to achieve complex sound routing and management easily. Learn how to use audio workflows to add more control on your sound playback in your games.
Understand how to group your sounds together in separate channels (groups) to properly organize them.
Realize how to use audio snapshots to create different sound setups for normal, and underwater audio effects.
Learn how to send and receive audio signal between different audio groups.
Understand how to organize your audio flows using audio views.
Learn how to create a grenade explosion ear-block effect using ducking.
Understand how to capture audio input using microphone.
Summarizing what you learned about Unity audio system.
Get your hands dirty; exercise what you have learned in the sounds lecture by adding sound playback to our game, 3D balance ball.
Unity provides a sophisticated animation system called "Mechanim Animations". It allows you to animate your game objects and characters to make them alive.
In this lecture, you will start your journey to learn this amazing system.
Learn about avatars, and how they make it easier for objects to share animations.
Learn how to optimize object bone structure.
Learn how to control your model's animations with the animation setting.
Understand about events, motions, import message setting sections on animations.
Learn how to Unity handles different animation states using state machine diagrams.
More on state machines and how to control animation flow.
Learn how to add more control to your animations using animation parameters.
Understand animation layers, and how they help you create parallel sets of animations playing together.
Build descriptive animation graphs that help you know where your animation stands, and create relationships between different animations.
Teach Teddy how to run. Run teddy run!
Understand how to use 1D blend trees to blend between different animations
2D blend trees provide more animation blending control by adding 2 parameters to be used instead of one. Learn how to create 2D blend trees in this lecture.
Teach teddy to run right, left, forward, and backward using 2D blend trees.
Understand the difference between direct blend trees, and the other 1D, and 2D blend trees.
Learn how to create custom handmade animations using the animation timeline.
More on creating custom animations using the animation timeline.
Learn how to define animation events that take place at certain time in the animation life.
Learn how to use curves to finetune your animations.
Animations are not only for characters; understand how to use the mechanim animation system to animate any object you have in your game.
Understand how to use root motion curves to let the objects animate indifinitely in the game.
Learn how to use inverse kinematic calculations to create complex animations easily, like moving teddy's hand to touch something in the game.
Get your hands more dirty by building another 3D game.
Skip the train is an interesting infinite runner game inspired by "Subway surfers" game. In this lecture you will get introduced to Jusin, our main game character.
Learn how to tweak our character Justin and prepare it for his job.
Learn how to control Justin to jump, and move to the right and left by capturing keyboard input using code.
Learn how to adjust the game camera to follow Justin as he runs in the game.
Understand how to import 3D models for trains and coasters to be used as challenges in the game.
More on setting up the trains and coasters in the game.
Additional settings and tweaking for the game challenges.
Learn smart ways to detect how Justin has died in the game, and consequently, restart the game.
Learn how to add a wonderful colorful horizon effect along with adding sound effects to our game.
Learn how capture touch swipes as we are preparing to deploy the game to a smartphone.
Understand how to deploy the game and play it on a touch mobile phone.
Summarizing what you have learned in this section.
Building 2D games in Unity is much easier that building 3D games. Sprites are the basic building block of any 2D game.
Learn how to import sprites to your game and how to adjust them in this lecture.
More on tweaking the settings of our sprites.
Learn how to sort your sprites using sorting layers, and understand more about sprite renderer component settings.
Learn how to deal with multiple sprite sheets, and realize how to manage them using Unity's sprite editor.
Understand how to use Unity's mechanim animations system to animation 2D sprites in Unity.
Summarizing what you have learned in the sprites lecture.
Get your hands dirty; start building our first 2D game, platform run.
Start building the game scene of our game, platform run.
Learn how to create parallax effects in the game to add a realistic cloud effects.
In Unity, 2D physics is exactly like 3D physics, except that every component ends with "2D" added. However, Unity's 2d physics provide richer effects that we can use to create great 2D games.
In this lecture, you will get introduced to 2D physics.
Learn about the 2D rigidbodies, and how they differ from their 3D counterparts.
Just like 3D, 2D colliders help us capture collisions between objects in the game. In this lecture, you will understand how to add 2D colliders to your game objects.
Understand how to use the hinge joints to create 2D rolling door effects.
Learn how to create train railway effect using the slider joint 2D.
Learn how to create pendulum effects using the distance joint 2D.
Understand how to create yoyo effects using the spring joint 2D.
Build 2D cars using the wheel joint 2D.
Effectors provide ways to affect certain regions in our 2D game world. Unity provides many types of effectors.
In this lecture you will understand how to build platformer games like "Icy tower" using the platform effector 2D.
Learn how to create floating water effect using area effector 2D.
Learn how to create an escalator effect using the surface effector 2D.
Summarizing what you learned in the 2D physics lecture.
Get your hands dirty; understand how to move our character in our 2D game, platform run.
Get your hands dirty; learn how to setup the camera to follow our game character.
Get your hands dirty; exercise what you have learned in the 2D physics lecture by creating colliders to allow our game character to collect coins.
Get your hands dirty; add sound effects to our game, platform run.
Unity provides a rich interface system called Unity UI framework. This system provides the based input components like input fields, image components, radio boxes, sliders, scrollbars, and many more.
In this lecture you will get introduced to the UI basic concepts.
Adding the monkey image UI component that will use throughout the UI lecture.
Understand the sophisticated concept that build up the resolution-agnostic features of the Unity UI system; anchoring.
Learn how to use image components to show images in your game.
Learn how to write text to your game scenes using UI text components.
Learn how to use Unity panels to organize objects and masks.
Understand the effects that you can use for Unity UI components.
Learn how to use Unity UI buttons.
More on Unity UI buttons.
Understand how to use Unity UI toggles.
Learn how to use sliders UI components.
Learn how to use input fields to get input from player.
Understand how to use scrollbars to create scrollable areas.
More on using scrollbars.
Learn how to use canvas scaler to better control you game resolution flexibility.
Learn to better control your UI component layouts using horizontal layout group.
Use grid layout group for more flexibility when it comes to showing your UI components.
Summarizing what you have learned in the Unity UI lecture.
Get your hands dirty; exercise what you have learned in the UI lecture by adding a pause / resume button to our game, platform run.
Get your hands more dirty, understand how to add a scoreboard to our game, platform run.
Color crush is inspired by the famous "match 3 or more" game "Candy Crush". In this lecture we will start by building the main block that will be used in the game.
More on building the main game block.
Learn how to randomly form the game grid using code.
Understand how to form the crush algorithm using code.
Capturing the mouse drag to allow the player to play the game.
Connecting all the parts of the game together.
Summarizing what you have learned so far in this section.
The Unity profiler helps you to optimize the performance of your game. In this lecture, you will learn how to use the CPU profiler to monitor CPU usage.
Learn about the other available profilers that will help you optimize your game performance.
Understand how to store data to hard disk.
Learn how to read data from hard disk.
Learn the best practices for working in a big game development team.
A list of best websites to get free and premium content for your game, like graphics, 3D models, sounds, and many more.
Holding a Bachelors of Computer Science, I have spent the last 9 years as a passionate software engineer and an entrepreneur.
In the early days of my career, I developed a passion towards games. Since then, I started to teach myself how to build games, then I have established a game development department in the company that I founded in 2011 where we built a bunch of educational and fun games.
Games can change the lives of people; through games you can learn new things easily, enhance your way of thinking, cooperate with your friends, and most importantly, you can feel good; games add fun to our “sometimes” boring lives.
I believe that building more meaningful and engaging games means more chances for better human beings.
These passions have ignited me to start teaching people how to build their dream games in order to change the world.