Get a month of TabletWise Pro for free! Click here to redeem 
TabletWise.com
 

Unreal Engine C++: The Ultimate Developer Course

Learn how to develop, code and package a complete video game in Unreal Engine

Unreal Engine C++: The Ultimate Developer Course

Learn how to develop, code and package a complete video game in Unreal Engine
26
Views
33:12:15
Share the link to this class
Copied
This intro video gives just a small sample of the many things students will learn in this course. This includes: Conventions of C++ in Unreal Engine Creating Objects, Actors, Pawns, and Characters Scripting movement for Pawns and Characters Floor switches Floating platforms with interpolation Hazards, bomb explosives Pickups, coins and potions Health bars, stamina and sprinting Menu system Game saving and loading Level switching in game Combat with melee weapons Enemy behavior Particles (blood, sparkles, fire) set from C++ Sounds played from C++ Force and Torque Much, much more!
This video goes over what is covered in the course, which is a complete video game in Unreal Engine from start to finish using C++.
The student will learn the basics of the editor and be able to create basic Blueprints by the end of the section.
We download the engine and become familiar with the worldwide network of Unreal Engine developers on the Unreal Engine forums. Here, countless devs post questions about concerns and this is where you can likely find the answer to any problem you're facing on a previously answered post. If your issue hasn't been encountered before, you can post your own question!
We cover translating, scaling and rotating objects in the Unreal Engine Viewport. We cover how to enable snapping, change the snap increments, snap to the floor, and use the different widgets for these transformations as well as learn their hotkeys. This is essential before we can start programming games using C++.
We outline the different panels in the Unreal Engine editor.
The Level Blueprint gives you the opportunity to do some quick scripting/prototyping on this level-wide event graph while getting familiar with the different parts of the engine.
We create an Actor Blueprint, add a static mesh to it, and bring it into the world. We then explore the Event Tick node in order to add an offset to the actor each frame.
Here we get started learning about Unreal Engine C++.
We refresh on some C++ topics you should understand for this course. If you're a bit rusty, don't worry! We will get plenty of practice throughout the course. If you haven't learned some of these topics, my first course on C++ teaches everything you need to know.
We create a C++ class using Unreal Engine's class creation wizard. We look at the Character class and discover how to see what it's derived from.
We introduce the concept of Reflection and how it's used in Unreal Engine. We also cover Garbage Collection and explain why we don't need to worry about using new and delete keywords when dynamically allocating memory.
We create the basic class UObject and look at creating simple variables and functions and expose those to Blueprints.
We discover how to use our UObject class in Blueprints, taking advantage of the reflection system and showing how our variables and functions can be used inside the Blueprint version of our C++ class.
The Actor is the most basic class that can be placed into the level. It can have a visual representation such as a Mesh component, and we see how it can interact with the world in different ways.
We step it up a notch by creating the Actor class. We see the Tick and BeginPlay functions on the C++ side.
We discover how vectors are used to describe position data in the world.
Unreal Engine has its own container classes, each with a plethora of built-in methods we use in game development. The FVector is an important tool to have in your arsenal.
We learn the difference between simple and complex collision and why we need simple collision to make it less computationally intensive on the machine.
Sweeping is a technique to detect overlap between meshes. We discover a way to use it.
We learn the difference between world and local space, as well as explore functions that allow us to move in both spaces.
AddForce and AddTorque allow us to apply forces and torque respectively to objects in the world. Then we can let the physics engine do the rest!
Random numbers play a part in nearly all video games. It's important to know how to generate them in Unreal Engine.
FMath is a library of math functions that game developers use throughout gameplay. The sine function is an excellent way to get periodic behavior.
Deleting classes can be tricky in Unreal Engine. In this video, we learn how to do it.
We now dive into the Pawn class.
The Pawn class adds functionality that the Actor doesn't have. Pawns can be possessed by controllers and take user input.
We see how we can program movement input on a Pawn.
As a learning exercise, we code movement component functionality from scratch. This gives us an appreciation for what the movement component class does for us! This is only to gain an understanding of what the movement component does for us.
The Character is the next step up in complexity. We create some characters of our own!
In order to create a Character, we need assets (meshes, animations, materials, etc.) so we take the time to find all we need for our game.
We actually create a Character for our game, and take a look at what the ACharacter class inherits.
The Animation Blueprint is how we control the animations of the character. It acts as an interface for us to access C++ variables and allow them to drive our character's actions.
Gameplay mechanics are interactive objects in the game that affect the player. Switches, hazards, pickups and platforms are some examples which we will create in this series.
One of the most common gameplay mechanics, the floor switch provides an interactive block that the player can stand on to activate doors, raise walls, or anything else in the game.
A spawn volume can provide a way to spawn items and NPCs into the world.
Floating platforms are classic game mechanics in many games. They are must for game developers to know how to make!
Pickups are present in nearly every video game. Pickups are items that exist in the world that the player can pick up to gain benefits in the game.
The HUD (Heads Up Display) involves all the icons, buttons and text you see in any video game. Since this is crucial to all games, we cover it here!
The ability to draw a debug sphere is very useful when developing. We learn how to store locations into an array and draw spheres in the world for each of those locations.
10:28:25
Combat is essential to most action games. Students will learn how to equip weapons, attack using animation montages, and implement damage, death, and combat special effects.
Combat is essential to any action game. We begin with the basics of combat and work toward a full-fledged melee system.
We learn how to attach a weapon to the skeleton of the character
Blendspaces must be changed depending on the situation. Equipping a weapon is a perfect example to learn this skill.
We can play animations with the use of Montages, which allow us to use C++ function calls to fire off attack animations.
No combat game is complete without combat from the enemy! Here we make our enemies a bit more dangerous.
Not all games are made for mouse and keyboard. Here we learn how to map input to a console controller.
We get more involved in combat with more complex mechanics.
A smooth rotation for the character to face the enemy upon attacking is a common way games make the attack look more natural.
Usually the enemy doesn't just spawn attacks all the time in games. We learn how to randomize the attacking time for the enemy to make it look more realistic.
Combat wouldn't be complete without the ability to deal and receive damage as well as death mechanics. We cover these topics here.
We give the enemy a health bar so we can see its health.
We fine tune the death  mechanics a bit to polish things up.
We improve the pickup class so we can have a more versatile system.
We take care of any issues related to sprinting including switching to the sprinting animation at the appropriate time.
We created an enemy class, now we can use that code to extend to different types of enemies!
It's time to polish up our gameplay to give the player a smooth experience!
Weapon trails add that extra bit of special effects that make combat look amazing!
We improve on our SpawnVolume class by allowing it to spawn any type of item, as well as randomizing that item when spawned.
Switching between levels and saving the game are core concepts most games include. Here we learn how to do so.
We learn how to change levels in game, so your game can have multiple environments!
No game is complete without the ability to save your progress! We cover this very important skill here.
We must go about saving the weapon differently. We learn how to save all the information associated with a weapon, including sounds and particle systems.
We learn how to create a menu that pops up when pausing the game, as well as how to disable inputs while the game is paused.
We put some finishing touches on the game and get ready to package!
We go from a 31 GB project to just over 3 GB as we migrate only our used assets to a fresh project. We easily do this by migrating the maps and copying over the Config files as well as the C++ files. This allows us to keep the packaged project size at a minimum.
We did it! We complete our game and package it into an executable file. Congratulations!!!

In this course, we will go through Unreal Engine C++ programming from the basics all the way up to packaging a complete video game.

What will you learn in this course?

  • Object, actor, pawn and character creation, and the differences between these classes
  • Coding a complete character class, complete with animations and user input
  • Finding a nearly endless selection of free assets and how to download and use them for your game
  • Enemy movement and behavior
  • Combat with melee weapons
  • Picking up and equipping items
  • Damage, Hitpoints, and death
  • HUD elements including health and stamina bars as well as icons
  • How to create menus, including a pause menu
  • Saving and loading game data even after turning off the computer or exiting the game
  • Switching levels in the game
  • Floating platforms using interpolation
  • Timers for delays in the game logic
  • Trigger volumes, pressure switches, and doors
  • Bombs, explosives, and hazards
  • Logging and drawing spheres for debugging purposes
  • Using C++ concepts applied to game development
  • Much much more!

Requirements

A basic understanding of C++ programming is required. If you don't know the basics of C++, you can take my 'C++ For Game Development' course which will teach you everything you need to know.

This intro video gives just a small sample of the many things students will learn in this course. This includes: Conventions of C++ in Unreal Engine Creating Objects, Actors, Pawns, and Characters Scripting movement for Pawns and Characters Floor switches Floating platforms with interpolation Hazards, bomb explosives Pickups, coins and potions Health bars, stamina and sprinting Menu system Game saving and loading Level switching in game Combat with melee weapons Enemy behavior Particles (blood, sparkles, fire) set from C++ Sounds played from C++ Force and Torque Much, much more!
This video goes over what is covered in the course, which is a complete video game in Unreal Engine from start to finish using C++.
The student will learn the basics of the editor and be able to create basic Blueprints by the end of the section.
We download the engine and become familiar with the worldwide network of Unreal Engine developers on the Unreal Engine forums. Here, countless devs post questions about concerns and this is where you can likely find the answer to any problem you're facing on a previously answered post. If your issue hasn't been encountered before, you can post your own question!
We cover translating, scaling and rotating objects in the Unreal Engine Viewport. We cover how to enable snapping, change the snap increments, snap to the floor, and use the different widgets for these transformations as well as learn their hotkeys. This is essential before we can start programming games using C++.
We outline the different panels in the Unreal Engine editor.
The Level Blueprint gives you the opportunity to do some quick scripting/prototyping on this level-wide event graph while getting familiar with the different parts of the engine.
We create an Actor Blueprint, add a static mesh to it, and bring it into the world. We then explore the Event Tick node in order to add an offset to the actor each frame.
Here we get started learning about Unreal Engine C++.
We refresh on some C++ topics you should understand for this course. If you're a bit rusty, don't worry! We will get plenty of practice throughout the course. If you haven't learned some of these topics, my first course on C++ teaches everything you need to know.
We create a C++ class using Unreal Engine's class creation wizard. We look at the Character class and discover how to see what it's derived from.
We introduce the concept of Reflection and how it's used in Unreal Engine. We also cover Garbage Collection and explain why we don't need to worry about using new and delete keywords when dynamically allocating memory.
We create the basic class UObject and look at creating simple variables and functions and expose those to Blueprints.
We discover how to use our UObject class in Blueprints, taking advantage of the reflection system and showing how our variables and functions can be used inside the Blueprint version of our C++ class.
The Actor is the most basic class that can be placed into the level. It can have a visual representation such as a Mesh component, and we see how it can interact with the world in different ways.
We step it up a notch by creating the Actor class. We see the Tick and BeginPlay functions on the C++ side.
We discover how vectors are used to describe position data in the world.
Unreal Engine has its own container classes, each with a plethora of built-in methods we use in game development. The FVector is an important tool to have in your arsenal.
We learn the difference between simple and complex collision and why we need simple collision to make it less computationally intensive on the machine.
Sweeping is a technique to detect overlap between meshes. We discover a way to use it.
We learn the difference between world and local space, as well as explore functions that allow us to move in both spaces.
AddForce and AddTorque allow us to apply forces and torque respectively to objects in the world. Then we can let the physics engine do the rest!
Random numbers play a part in nearly all video games. It's important to know how to generate them in Unreal Engine.
FMath is a library of math functions that game developers use throughout gameplay. The sine function is an excellent way to get periodic behavior.
Deleting classes can be tricky in Unreal Engine. In this video, we learn how to do it.
We now dive into the Pawn class.
The Pawn class adds functionality that the Actor doesn't have. Pawns can be possessed by controllers and take user input.
We see how we can program movement input on a Pawn.
As a learning exercise, we code movement component functionality from scratch. This gives us an appreciation for what the movement component class does for us! This is only to gain an understanding of what the movement component does for us.
The Character is the next step up in complexity. We create some characters of our own!
In order to create a Character, we need assets (meshes, animations, materials, etc.) so we take the time to find all we need for our game.
We actually create a Character for our game, and take a look at what the ACharacter class inherits.
The Animation Blueprint is how we control the animations of the character. It acts as an interface for us to access C++ variables and allow them to drive our character's actions.
Gameplay mechanics are interactive objects in the game that affect the player. Switches, hazards, pickups and platforms are some examples which we will create in this series.
One of the most common gameplay mechanics, the floor switch provides an interactive block that the player can stand on to activate doors, raise walls, or anything else in the game.
A spawn volume can provide a way to spawn items and NPCs into the world.
Floating platforms are classic game mechanics in many games. They are must for game developers to know how to make!
Pickups are present in nearly every video game. Pickups are items that exist in the world that the player can pick up to gain benefits in the game.
The HUD (Heads Up Display) involves all the icons, buttons and text you see in any video game. Since this is crucial to all games, we cover it here!
The ability to draw a debug sphere is very useful when developing. We learn how to store locations into an array and draw spheres in the world for each of those locations.
10:28:25
Combat is essential to most action games. Students will learn how to equip weapons, attack using animation montages, and implement damage, death, and combat special effects.
Combat is essential to any action game. We begin with the basics of combat and work toward a full-fledged melee system.
We learn how to attach a weapon to the skeleton of the character
Blendspaces must be changed depending on the situation. Equipping a weapon is a perfect example to learn this skill.
We can play animations with the use of Montages, which allow us to use C++ function calls to fire off attack animations.
No combat game is complete without combat from the enemy! Here we make our enemies a bit more dangerous.
Not all games are made for mouse and keyboard. Here we learn how to map input to a console controller.
We get more involved in combat with more complex mechanics.
A smooth rotation for the character to face the enemy upon attacking is a common way games make the attack look more natural.
Usually the enemy doesn't just spawn attacks all the time in games. We learn how to randomize the attacking time for the enemy to make it look more realistic.
Combat wouldn't be complete without the ability to deal and receive damage as well as death mechanics. We cover these topics here.
We give the enemy a health bar so we can see its health.
We fine tune the death  mechanics a bit to polish things up.
We improve the pickup class so we can have a more versatile system.
We take care of any issues related to sprinting including switching to the sprinting animation at the appropriate time.
We created an enemy class, now we can use that code to extend to different types of enemies!
It's time to polish up our gameplay to give the player a smooth experience!
Weapon trails add that extra bit of special effects that make combat look amazing!
We improve on our SpawnVolume class by allowing it to spawn any type of item, as well as randomizing that item when spawned.
Switching between levels and saving the game are core concepts most games include. Here we learn how to do so.
We learn how to change levels in game, so your game can have multiple environments!
No game is complete without the ability to save your progress! We cover this very important skill here.
We must go about saving the weapon differently. We learn how to save all the information associated with a weapon, including sounds and particle systems.
We learn how to create a menu that pops up when pausing the game, as well as how to disable inputs while the game is paused.
We put some finishing touches on the game and get ready to package!
We go from a 31 GB project to just over 3 GB as we migrate only our used assets to a fresh project. We easily do this by migrating the maps and copying over the Config files as well as the C++ files. This allows us to keep the packaged project size at a minimum.
We did it! We complete our game and package it into an executable file. Congratulations!!!

About the instructors

Stephen Ulibarri

Software Engineer, Game Engineer, Teacher
Share the instructor profile
Copied
All Classes
Free for 30 Days
   The video is currently being processed.
   An error occurred while uploading the video. Please upload another video.
   Please upload the required file.
Quiz: #TITLE#
Questions: #QUESTIONS_COUNT#
Quiz: #TITLE#
Question /#QUESTIONS_COUNT#
Quiz: #TITLE#
Result: You correctly answered out of questions. Result: You correctly answered out of question. Result: You correctly answered out of questions attempted. Result: You correctly answered out of question attempted. Result: You did not attempt any question.
0
Saves
26
Views
This class has not been saved

Sign Up