Description
In this course, you will learn :
- Unreal Engine 5 Game Development Tutorial
- C++ is the industry standard language for game development.
- Object Oriented Programming and its implementation.
- Principles of game design
- Best practises and programming patterns
- Artificial Intelligence (AI) behaviour programming for adversaries.
- Write clean, easy-to-understand code.
- When to use Blueprint and when to use C++.
- How to use C++ to accomplish anything in Unreal.
- Unreal Gameplay Framework allows you to easily create games.
- Strong problem-solving abilities that are transferable.
- Technologies and techniques used in game development today.
Syllabus :
1. Warehouse Wreckage (New UE5 Content)
- Blueprint Event Graph
- Physics Simulation
- Objects and References
- Adding an Impulse
- Blueprint Classes and Instances
- Spawning Actors
- Data Types
- Pawns and Actor Location
- Control Rotation
- Vector Addition & Multiplication
- Get Forward Vector
- Importing Assets
- Geometry Brushes (BSP)
- Materials and Lighting
- Actor Components
- Collision Meshes
- Variables
- Booleans and Branches
- Functions
- Return Types
- Pure Functions
- Member Functions
- Loading Levels & Delay Nodes
2. Obstacle Assault (New UE5 Content)
- Customizing The Character
- Compilers and Editors
- PC - Installing Visual Studio
- Mac - Installing XCode
- Installing VSCode
- Compiling a C++ Project
- UPROPERTY Variables
- C++ Files & BeginPlay
- Using Structs In C++
- Calling Functions in C++
- Tick
- Local Variables
- Pseudo Code
- Function Return Values
- Velocity & DeltaTime
- Scope Resolution Operator
- If Statements
- Using Member Functions
- Blueprint Child Classes
- Forcing Character Collisions
- GameMode
- Writing To The Output Log
- FString
- Member Functions
- Return Statements
- Const Member Functions
- FRotator
- Level Design & Polish
- Obstacle Assault: Wrap-Up
3. Crypt Raider (New UE5 Content)
- Modular Level Design
- Modular Level Layout
- Light Types
- Lumen & Light Bleed
- Level Lighting
- Character Blueprint
- Inheritance vs Composition
- C++ Actor Component
- Pointer Types & GetOwner()
- Deferencing & Arrow (->) Operator
- Linkers, Headers and Includes
- FMath::VInterpConstantTo
- Scene Components
- Line Tracing & Sweeping
- GetWorld()
- DrawDebugLine()
- References vs Pointers
- Const References & Out Parameters
- Geometry Sweeping
- Input Action Mappings
- Blueprint Callable
- FindComponentByClass() & nullptr
- DrawDebugSphere()
- Grabbing With Physics Handle
- Waking Physics Objects
- Returning Out Parameters
- Overlap Events
- Constructors
- TArray
- While & For Loops
- Range Based For Loops
- Actor Tags
- Early Returns
- Dependency Injection
- Casting & Actor Attachment
- Adding and Removing Tags
- Boolean Logical Operators
- Level Polish
4. Toon Tanks (v2)
- Differences Between UE5 and UE4
- Project Intro
- Pawn Class Creation
- Creating Components
- Forward Declarations & Capsule Component
- Forward Declaration & Constructing The Capsule
- Static Mesh Components
- Deriving Blueprint Classes
- Instance vs Default
- Editing Exposed Variables
- Exposing The Components
- Creating Child C++ Classes
- Possessing The Pawn
- Handling Input
- Local Offset
- Movement Speed
- Local Rotation
- Casting
- Using the Mouse Cursor
- Rotating the Turret
- The Tower Class
- Fire
- Timers
- The Projectile Class
- Spawning The Projectile
- Projectile Movement Component
- Hit Events
- Health Component
- Applying Damage
- The Game Mode Class
- Handling Pawn Death
- Custom Player Controller
- Starting The Game
- The Start Game Widget
- Countdown Timer
- Displaying Countdown Time
- Winning And Losing
- Game Over HUD
- Hit Particles
- Smoke Trail
- Death Particles
- Sounds
- Camera Shake
5. Simple Shooter
- Pawns vs Characters in C++
- Character Movement Functions
- Controller Aiming
- Third Person Camera Spring Arm
- Skeletal Animations 101
- Editing Collision Meshes
- Animation Blueprints 101
- 2D Blend Spaces
- Connecting Animation To Gameplay
- Inverse Transforming Vectors
- Calculating Animation Speeds
- Gun Actors
- Spawning Actors At Runtime
- Attaching To Meshes Via Sockets
- Shooting Architecture
- Spawning Particle Effects
- Player View Point
- Line Tracing By Channel
- Impact Effects
- Dealing Damage To Actors
- Virtual Methods In C++
- Overriding TakeDamage
- Blending Animations By Booleans
- Blueprint Pure Nodes
- Create and Setup an AI controller
- AI Aiming
- Nav Mesh And AI Movement
- Checking AI Line Of Sight
- BehaviorTrees And Blackboards
- Setting Blackboard Keys In C++
- Behavior Tree Tasks And Sequences
- BT Decorators And Selectors
- Custom BTTasks In C++
- Executing BTTasks
- BTTasks That Use The Pawn
- BTServices In C++
- Ignoring Actors In Line Traces
- Ending The Game
- Setting Timers In C++
- Displaying A Lose Screen
- Iterating Over Actors
- Calculating The Win Condition
- Refactoring PullTrigger
- Weapon Sound Effects
- Randomized Sound Cues
- Sound Spatialization
- Crosshairs and HUDs
- Health Bars
- AimOffsets
- Animation State Machines
- Complex State Machines
6. Introduction and Setup (Original Content in Unreal 4.22)
- Where To Find Lecture Resources
- Meet The GameDev.tv Community
- Compilers & VS Community
- Install Prerequisites On MacOS
- Build Unreal From Source (Linux)
- Antivirus Warnings
- Install Unreal Engine 4.22
- Also Install Visual Studio Code
- Want to Focus on Blueprint?
7. Triple X - Write Pure C++ (Original Content in Unreal 4.22)
- Introducing Triple X & Gavin
- Triple X Game Design Doc
- The Structure Of C++ By Example
- Your First Program
- Saving Files
- A note about red underlines
- Hello, World!
- Variables
- const & Assigning Values
- Statements & Comments
- MSVC Compilation Warnings [Windows Only]
- Naming & Self Documenting Code
- Getting User Input
- Using if and else in C++
- Functions
- Returning Data From Functions
- Function Parameters
- Comparing Values
- Generating Random Number Ranges
8. Bulls & Cows (Original Content in Unreal 4.22)
- Introduction To Bull Cow Game
- Non-English characters
- Importing Bull Cow Game
- Terminal Actor: Non-English Characters Unsupported
- The Game Module X Could Not Be Loaded
- Helping Us Help You
- A Look Around Unreal
- Controlling The Viewport
- Editing Actors In Our Level
- Adding Actors To The Level
- Editing the Landscape
- Setting Up VS Code In Unreal
- VSCode Intellisense Fix
- Actors And Components
- Using The In Game Terminal
- Unreal's Types - FString
- The TEXT Macro
- Bull Cow Basic Game Loop
- Accessing Player Input
- Coding The Basic Game Loop
- Member Variables
- Solving Slow Compile Times
- The Full Game Loop
- Pseudo Code
- Indentation
- Creating Our First Function
- Finding And Replacing In VS Code
- The C++ Dot Operator
- Formatting FStrings
- Booleans
- Pre vs Post Increment / Decrement
- Parameters And Arguments
- Early Returns
- Structure Of An FString
- Const Member Functions
- Looping In C++
- Checking Characters
- TArray Of Hidden Words
- Loading Words At Runtime
- Advanced Cursor Usage In VSCode
- TArray Functions .Num()
- Logical Operators
- TArray Functions Adding And Removing
- Range-Based For Loop
- A Quick Look At Memory
- Introduction To References
- Random And The UE4 Docs
- Out Of The Frying Pan
- Loading Words With A Predicate
- Out Parameters
- Break Out Of A Loop
- Structs
- Bull Cow Extra Credit
9. Building Escape (Original Content in Unreal 4.22)
- Setting Up The Building Escape Project
- Pointer Primer
- Unreal’s Classes and Components
- Deleting A Class
- Logging To The Output Log
- Project Settings: Default Startup Level
- Accessing An Object’s Name
- Getting An Actor’s Transform
- Importing Custom Meshes
- Using BSP For Basic Building Blocks
- BSP Challenge
- Basic Lighting
- Transforming Material Textures
- Rotating An Actor With Code
- Object Collision
- Using Linear Interpolation
- Relative Vs Absolute
- Exposing Parameters To The Editor
- Assets Naming Conventions
- Framerate Independent Using DeltaTime
- Trigger Volumes
- Using Collision Volumes
- Protecting From A Null Pointer
- Getting The Player To Open The Door
- Getting The Door To Close
- Using GetTimeSeconds()
- Designer Friendly Components
- Grabbing System Overview
- Modifying The Default Pawn Actor
- Inherit Game Mode Blueprint
- Getting Player Viewpoint
- Using DrawDebugLine
- Line Tracing AKA Ray-Casting
- LineTraceSingleByObjectType()
- Using FindComponentByClass()
- Introducing Input Binding
- Accessors & Memory Layout
- Reducing Code in “Hot Loops”
- Using Physics Handles
- Refactoring Rules
- Iteration Through Valid Actors
- Pointer Protection Process?
- SFX & Audio Clips
- Building Escape Final Challenge
- Building Escape Wrap Up
10. Toon Tanks (v2) (Original Content in Unreal 4.22)
- Pawn Class Creation
- Creating Components
- Forward Declarations & Capsule Component
- Forward Declaration & Constructing The Capsule
- Static Mesh Components
- Deriving Blueprint Classes
- Instance vs Default
- Editing Exposed Variables
- Exposing The Components
- Creating Child C++ Classes
- Possessing The Pawn
- Handling Input
- Local Offset
- Movement Speed
- Local Rotation
- Casting
- Using the Mouse Cursor
- Rotating The Turret
- The Tower Class
- Fire
- Timers
- The Projectile Class
- Spawning The Projectile
- Projectile Movement Component
- Hit Events
- Health Component
- Applying Damage
- The Game Mode Class
- Handling Pawn Death
- Custom Player Controller
- Starting The Game
- The Start Game Widget
- Countdown Timer
- Displaying Countdown Time
- Winning And Losing
- Game Over HUD
- Hit Particles
- Smoke Trail
- Death Particles
- Sounds
- Camera Shake
- Polish And Wrap-Up
11. Simple Shooter
- Pawns vs Characters in C++
- Character Movement Functions
- Controller Aiming
- Third Person Camera Spring Arm
- Skeletal Animations 101
- Editing Collision Meshes
- Animation Blueprints 101
- 2D Blend Spaces
- Connecting Animation To Gameplay
- Inverse Transforming Vectors
- Calculating Animation Speeds
- Gun Actors
- Spawning Actors At Runtime
- Attaching To Meshes Via Sockets
- Shooting Architecture
- Spawning Particle Effects
- Player View Point
- Line Tracing By Channel
- Impact Effects
- Dealing Damage To Actors
- Virtual Methods In C++
- Overriding TakeDamage
- Blending Animations By Booleans
- Blueprint Pure Nodes
- Create and Setup an AI controller
- AI Aiming
- Nav Mesh And AI Movement
- Checking AI Line Of Sight
- BehaviorTrees And Blackboards
- Setting Blackboard Keys In C++
- Behavior Tree Tasks And Sequences
- BT Decorators And Selectors
- Custom BTTasks In C++
- Executing BTTasks
- BTTasks That Use The Pawn
- BTServices In C++
- Ignoring Actors In Line Traces
- Ending The Game
- Setting Timers In C++
- Displaying A Lose Screen
- Iterating Over Actors
- Calculating The Win Condition
- Refactoring PullTrigger
- Weapon Sound Effects
- Randomized Sound Cues
- Sound Spatialization
- Crosshairs and HUDs
- Health Bars
- AimOffsets
- Animation State Machines
- Complex State Machines