Unreal Engine The Ultimate Game Developer

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

Last updated 2022-01-10 | 4.6

- How to program in Unreal Engine with C++.
- How to create a complete UE4 game from start to finish.
- Those with no experience in Unreal Engine will master Unreal.

What you'll learn

How to program in Unreal Engine with C++.
How to create a complete UE4 game from start to finish.
Those with no experience in Unreal Engine will master Unreal.
Combat
adventure game mechanics
platforms
game saving/loading and menu design.
Those already experienced in game development will further expand their skills.
Those who already develop in another engine such as Unity will master Unreal.

* Requirements

* Basic understanding of C++ or a similar language (C#
* Python
* Java
* etc.)
* No experience in Unreal Engine needed.
* Memory space on computer for Unreal Engine
* Visual Studio or XCode
* and game assets (meshes
* animations
* etc.)

Description

In this series, you will learn Unreal Engine C++ programming from the basics all the way up to packaging a complete video game. You will learn all of the following and more:

  • 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, Hit Points 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 game

  • Floating platforms using interpolation

  • Timers for delays in game logic

  • Trigger volumes, pressure switches, and doors

  • Bombs, explosives and hazards

  • Logging and drawing spheres for debug purposes

  • Using C++ concepts applied to game development

  • Much much more!

This is a C++ course and some basic knowledge of the C++ (or a similar language) is needed. If you don't have the basics of C++ down, my first course teaches everything you need to know for this course.

Who this course is for:

  • Aspiring game developers.
  • Those wanting to enter the games industry as a game programmer.
  • Indie game developers who want to create their own games.
  • Anyone who wants a COMPLETE game in their portfolio!

Course content

9 sections • 101 lectures

Introduction Preview 03:57

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!


Installing Unreal Engine and the Unreal Community Preview 16:26

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!

The Viewport Preview 08:08

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++.

Editor Overview Preview 09:53

We outline the different panels in the Unreal Engine editor.

The Level Blueprint Preview 09:27

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.

Creating Blueprints Preview 10:13

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.

C++ Refresher and UE4 Hierarchy Preview 11:44

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.

Class Creation in Unreal Engine Preview 09:39

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.

Reflection and Garbage Collection Preview 03:30

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.

Creating a UObject Preview 17:06

We create the basic class UObject and look at creating simple variables and functions and expose those to Blueprints.

Using UObject in Blueprints Preview 11:44

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.

Actors and Actor Components Preview 26:38

We step it up a notch by creating the Actor class. We see the Tick and BeginPlay functions on the C++ side.

Position Vectors Preview 19:05

We discover how vectors are used to describe position data in the world.

The FVector Preview 09:51

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.

FVector (continued) Preview 21:15

FVector (continued) Preview 12:53

Intro to Collision Preview 11:47

We learn the difference between simple and complex collision and why we need simple collision to make it less computationally intensive on the machine.

Collision (continued) Preview 16:17

Sweeping Preview 18:55

Sweeping is a technique to detect overlap between meshes. We discover a way to use it.

Local vs World Offset Preview 17:20

We learn the difference between world and local space, as well as explore functions that allow us to move in both spaces.

Force and Torque Preview 15:22

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 Preview 16:47

Random numbers play a part in nearly all video games. It's important to know how to generate them in Unreal Engine.

The Sine Function Preview 29:58

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 Preview 07:11

Deleting classes can be tricky in Unreal Engine. In this video, we learn how to do it.

The Pawn Class Preview 20:14

The Pawn class adds functionality that the Actor doesn't have. Pawns can be possessed by controllers and take user input.

Pawn Movement Input Preview 22:35

We see how we can program movement input on a Pawn.

Pawn Movement Input (continued) Preview 29:53

Pawn Movement Input (continued) Preview 20:40

Pawn Movement Component Preview 34:00

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.

Pawn Movement Component (continued) Preview 10:14

Pawn Camera Rotation Preview 14:05

We have programmed movement input, now it's time to program the ability to control the camera.

Environment Assets Preview 10:52

There is no shortage of free assets online that we can use to learn game development. I show you some sources.

Character Assets Preview 16:26

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.

Character Assets (continued) Preview 19:17

The Character Class Preview 20:52

We actually create a Character for our game, and take a look at what the ACharacter class inherits.

The Character Class (continued) Preview 19:56

The Character Class (continued) Preview 27:58

The Character Class (continued) Preview 23:53

The Animation Blueprint Preview 24:23

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.

The Animation Blueprint (continued) Preview 12:24

The Animation Blueprint (continued) Preview 11:49

Floor Switch Preview 47:18

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.

Floor Switch (continued) Preview 35:46

Floor Switch (continued) Preview 27:26

Spawn Volume Preview 31:06

A spawn volume can provide a way to spawn items and NPCs into the world.

Spawn Volume (continued) Preview 19:40

Floating Platform Preview 47:36

Floating platforms are classic game mechanics in many games. They are must for game developers to know how to make!

Pickups Preview 33:30

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.

Pickups (continued) Preview 30:31

Pickups (continued) Preview 10:37

HUD (Heads Up Display) Preview 26:46

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!

HUD (continued) Preview 09:13

HUD (continued) Preview 22:22

HUD (continued) Preview 13:03

HUD (continued) Preview 13:38

HUD (continued) Preview 33:37

HUD (continued) Preview 45:23

Arrays and Debug Spheres Preview 22:29

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.

Attaching to Sockets Preview 29:53

Combat is essential to any action game. We begin with the basics of combat and work toward a full-fledged melee system.

Weapon Equipping Preview 22:02

We learn how to attach a weapon to the skeleton of the character

Weapon Equipping (continued) Preview 17:19

Switching Blendspaces Preview 19:46

Blendspaces must be changed depending on the situation. Equipping a weapon is a perfect example to learn this skill.

Anim Montages (Attack!) Preview 18:01

We can play animations with the use of Montages, which allow us to use C++ function calls to fire off attack animations.

Anim Montages (continued) Preview 12:00

Anim Montages (continued) Preview 05:12

Enemy Combat Preview 26:28

No combat game is complete without combat from the enemy! Here we make our enemies a bit more dangerous.

Enemy Combat (continued) Preview 34:21

Enemy Combat (continued) Preview 11:45

Enemy Combat (continued) Preview 20:44

Console Controller Input Preview 13:47

Not all games are made for mouse and keyboard. Here we learn how to map input to a console controller.

Combat Mechanics Preview 22:54

We get more involved in combat with more complex mechanics.

Combat Mechanics (continued) Preview 20:57

Combat Mechanics (continued) Preview 16:52

Combat Mechanics (continued) Preview 44:23

Interpolating to the Enemy Preview 18:08

A smooth rotation for the character to face the enemy upon attacking is a common way games make the attack look more natural.

Enemy Attack Delay Preview 07:56

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.

Damage and Death Preview 37:40

Combat wouldn't be complete without the ability to deal and receive damage as well as death mechanics. We cover these topics here.

Enemy Health Bar Preview 39:37

We give the enemy a health bar so we can see its health.

Fine Tuning Character Death Preview 16:36

We fine tune the death  mechanics a bit to polish things up.

Fine Tuning Character Death (continued) Preview 05:10

Refining Pickups Preview 07:48

We improve the pickup class so we can have a more versatile system.

Refining Sprinting Preview 08:36

We take care of any issues related to sprinting including switching to the sprinting animation at the appropriate time.

Extending the Enemy Class Preview 22:38

We created an enemy class, now we can use that code to extend to different types of enemies!

Extending the Enemy Class (continued) Preview 39:41

Refining Gameplay Preview 36:58

It's time to polish up our gameplay to give the player a smooth experience!

Refining Gameplay (continued) Preview 17:45

Weapon Trails Preview 13:05

Weapon trails add that extra bit of special effects that make combat look amazing!

Spawn Volume Improved Preview 28:49

We improve on our SpawnVolume class by allowing it to spawn any type of item, as well as randomizing that item when spawned.

Changing Levels in Game Preview 21:00

We learn how to change levels in game, so your game can have multiple environments!

Saving the Game Preview 39:23

No game is complete without the ability to save your progress! We cover this very important skill here.

Saving the Weapon Preview 54:35

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.

Pause Menu Preview 19:40

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.

Pause Menu (continued) Preview 18:47

Pause Menu (continued) Preview 10:38

Pause Menu (continued) Preview 12:50

Pause Menu (continued) Preview 11:52

Pause Menu (continued) Preview 19:16

Finishing Up Preview 24:17

We put some finishing touches on the game and get ready to package!

Removing All Unused Assets Preview 46:21

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.

Packaging the Game Preview 07:07

We did it! We complete our game and package it into an executable file. Congratulations!!!

Congratulations!