
Explore Unreal Engine and C++ from fundamentals to advanced techniques, building two complete games, including a helicopter bot shooter and an advanced shooter, with AI, physics, and UI.
Start with the basics of Unreal Engine 5 for complete beginners, covering the user interface, installation, content drivers, adding assets, landscapes, and materials to begin learning Unreal Engine and C++.
Install unreal engine 5.5 via the epic games launcher and create a new project from the first person template with starter content to explore assets, maps, and basic gameplay.
Navigate Unreal Engine's user interface, exploring levels, the outliner and details panels, toolbars, and world settings, while using landscape, foliage, blueprints, content browser, and asset import tools.
Learn to navigate Unreal Engine by rotating the camera with the right mouse button, moving with WASD and E/Q, and focusing on objects with F, then orbiting with alt+left click.
Master viewport settings in Unreal Engine to monitor fps, adjust field of view, toggle game mode and immersive view, manage layouts and visibility for efficient world editing.
Create and transform objects in Unreal Engine by adding geometry, moving, rotating, and scaling with intuitive gizmos, using world and local axes, snapping, and adjustable camera movement.
master post-process volume to control the world's colors and exposure, including manual exposure, bloom, and lumion, for consistent lighting. use unbound or box volumes to apply changes across the world.
Explore creating and tuning materials in Unreal Engine, including base color, metallic, roughness, and emissive properties. Learn applying materials to objects, duplicating for colors, and using emissive to glow.
Master Unreal Engine 5 lighting by adding directional light, sky atmosphere, fog, clouds, and skylight, then use the environment light mixer for quick, cohesive setup.
Create a huge landscape in Unreal Engine, adjust sections and components, sculpt terrain, and import or export landscapes for open worlds.
Apply and blend multiple textures to a landscape using Unreal Engine's landscape material and layer blend. Create a multi-texture material, assign cobblestone, grass, and rock textures, and paint layers.
Discover foliage workflows in Unreal Engine, using Quixel Bridge to place grass, rocks, and plants, adjust density, paint and erase, and balance performance for desert landscapes.
Explore core C++ concepts before starting Unreal Engine with standalone lectures, covering data types, integers, strings, auto keyword, lifetime operators, and pointers; skip topics you already know.
Create a new empty c++ project in Visual Studio, organize code with actual folders (not filters), add files, set output and intermediate directories, and verify with a hello world build.
Install Visual Studio 2022 Community on Windows, select desktop development with C++, and optionally enable Unreal Engine support for game programming.
Write your first C++ program by including the standard library, declaring int main, and using std::cout and std::cin to print and read values.
Understand statements as the basic unit of a C++ program, ending with a semicolon and executing sequentially from the main function, with nesting of statement blocks inside curly braces.
Explore how names and keywords function in C++, distinguishing names from keywords, understanding naming rules and descriptive naming, and recognizing reserved keywords, including the fact there are 95 keywords.
Explore how the C++ building process works—from cpp and header files to modules and imports—creating object files, preprocessing, linking libraries, and the final executable.
Identify syntax, semantic, linker, runtime, and logic errors in C++ and learn debugging and how compiler warnings help fix issues and improve code.
Learn data types and variables, including int, float, char, string, and booleans, and how memory size affects storage of values like age and balance.
Describe how variables act as containers that store data, declare and initialize them with proper data types, and track memory addresses.
Learn how integers store whole numbers in C++, distinguish signed and unsigned types, and compare short, int, long, and long long sizes and sign bit implications.
Declare and use the const keyword to create unchangeable variables in c++, ensure initialization, and prevent accidental changes; see examples like score and tax, plus compiler errors on modification.
Explore operations on integers, including addition, subtraction, multiplication, division, and modulus, and learn about binary, unary, and ternary operators, operands, and assignment in code.
explains increment and decrement operators in C++, showing plus plus and minus minus, and differentiating postfix and prefix forms with ammo examples, highlighting use in loops and games.
Explore floating point in C++: store real numbers with float, double, and long double, and learn about signed versus unsigned, size of operator, range, and rounding in arithmetic.
Understand implicit and explicit type conversion in C++ and how integers and floats interact. Explore issues like truncation, use static_cast for safe conversions, and apply round to preserve precision.
Explore storing single characters in C++ with char, wchar_t, char8_t, char16_t, and char32_t, using proper quotes and prefixes and the size of operator for ASCII and Unicode.
Explore strings in C++, learn that a string is a container of characters, its std::string class, and how to format text and numbers using stream manipulators and std::format in C++20.
Discover the auto keyword and automatic type deduction in C++, where the compiler infers integer, string, double, and char types from assigned values, with initialization guidance in Visual Studio Code.
Explore variable lifetime and scope in C++, understand automatic, static, and dynamic memory, and local versus global variables, their creation, access, and destruction.
Explore unary, binary, and ternary operators in C plus plus 20, including assignment, arithmetic, relational, logical, and bitwise operators; learn increment, decrement, member access, conditional, pointer, and size of operator.
Explore arithmetic operators including addition, subtraction, multiplication, division, and modulus on numeric data types. Understand the order of operations with Pemdas and how parentheses influence evaluation.
learn how assignment operators in c++ modify variables, including plus-equals and others, while noting const usage and scope rules.
Explore relational operators in C++ to compare values, return booleans, and cover equal, not equal, less than, greater than, and their equal/inequality forms, with practical coding examples.
Explore how logical operators and boolean values drive decisions in code and games, using and, or, and not to build robust condition checks.
Learn how the conditional (ternary) operator shortens if-else logic by evaluating a condition and returning one of two values, using ammo, health, and greater value examples.
Master boolean values and data types in C++20, storing true or false as 1 or 0, using comparison and logical operators, and applying the spaceship operator in conditions and loops.
Explore how if and else control flow drives decision making in code, including else if chains, nested ifs, and the dangling else problem, with practical examples.
Master if-else statements in C++ with a practical number input example that prints the number is positive and uses an else branch to show wrong number.
Explore the else if flow with a score-based grading example, showing how to chain conditions, use nested ifs, and print grades from A to F.
Illustrate nested if logic to determine driving license eligibility by checking age and driving test input (y or n), with input validation for invalid letters.
Learn to use switch statements in C++, replacing long if-else chains with a compact switch structure, and understand break, default, and fall through.
Explore how loops let you repeat tasks, control execution with conditions, and handle iterations. Learn about for, while, and do-while loops, including infinite loops and practical examples.
Learn how the while loop handles unknown iterations by evaluating a condition before each pass, printing the body, and avoiding infinite loops with practical examples.
Explore the do-while loop, contrast it with the while loop, and learn how the body is executed at least once before evaluating the condition, allowing the menu to print repeatedly.
Master the for loop by understanding initialization, condition checks, and increment when the number of iterations is known, with a practical C++ example of item counts and total cost.
Explore how range-based for loops simplify iterating over containers like strings, arrays, and vectors in C++, using auto and performing elementwise operations such as uppercase conversion and vowel counting.
Learn arrays as fixed-size containers of the same data type, stored contiguously in memory and indexed from zero, using square-bracket syntax to access elements and the size function.
Explore array elements in c++, including zero-based indexing, accessing and assigning values, initializing arrays, and the risks of out-of-bounds access.
Learn how std::string offers a dynamic, memory-managed way to work with text in C++, stored contiguously, not null-terminated, and supports length, find, append, erase, and getline.
Explore how functions in C++ enable modular, reusable, and abstracted code, with parameters and return values, using Unreal Engine libraries and examples like add_numbers.
Learn how to call functions inside main, pass parameters, and handle return values; explore function scope, nesting calls, and printing results, plus using library helpers like sqrt, min, and max.
Explain how parameters and return types pass values between main and called functions, including pass by value, scope, and return type deduction with auto.
Explore default arguments in C++ by distinguishing parameters and arguments, using default values to make parameters optional, and ensuring correct ordering and prototypes for seamless function calls.
Pass arrays to functions by address, not by value, avoiding copies and memory waste. Learn how array names are addresses, how to handle element counts, const correctness, and multi-dimensional arrays.
Discover how static variables persist across function calls, carry over values between calls, and persist for the program's lifetime, using the static keyword in functions.
Learn function overloading in C++, using the same name for different parameter lists to handle integers and doubles, with compiler resolution.
Explore recursion as a function that calls itself, directly or indirectly, using factorial as an example. See how recursion enables complex data structures like trees, with performance and memory considerations.
Learn how function calls save the current position on the stack, manage local and global variables, and how recursion uses the stack to return results.
Learn how inline functions in Unreal Engine C++ reduce runtime overhead by expanding small functions at compile time, avoiding stack operations, and speeding up simple additions like a plus b.
Learn how pointers store memory addresses of variables, use the address of operator, and declare pointers with an asterisk. Explore null pointers, dynamic memory allocation, and indirect access to values.
Learn how pointers store addresses and how dereferencing uses the asterisk to access the value. See how a pointer can point to another variable while its own address remains fixed.
Explore arrays of pointers and pointer to an array in C++ by creating pointer collections, dereferencing elements, and understanding how addresses and pointer arithmetic work.
Explore constant pointers and pointers to constants, including how values remain unmodified. Learn how a constant pointer keeps its address fixed, while a pointer to constant can shift addresses.
Explore pointer arithmetic in c++, using addition, subtraction, and comparisons to navigate memory and arrays by element, not bytes, with increment, dereference, and difference semantics.
Learn the basics of dynamic memory allocation in C++, using new and delete to allocate on the heap and manage dynamic arrays, while avoiding memory leaks and dangling pointers.
Explore the hazards of dynamic memory allocation in the heap, including memory leaks, dangling pointers, and memory fragmentation, and learn proper use of new, delete, and delete[].
Explore the hazards of dynamic memory allocation with real-world examples, detailing memory leaks, dangling pointers, and multiple deallocation, and demonstrate safe practices like null checks and proper deletion.
Use smart pointers to manage dynamic memory in c++11, employing unique_ptr, shared_ptr, and weak_ptr to prevent memory leaks and dangling pointers, with make_unique and RAII.
Learn how to declare and use unique_ptr in C++, including make_unique, get, reset, and release, to safely manage dynamic memory and avoid null dereferences.
Learn when to use shared pointers in Unreal Engine C++ and how use count, weak pointers, and memory management differ from unique pointers.
Learn how references act as aliases for existing objects, enabling pass-by-reference and avoiding copies in functions and range-based loops. Explore initialization, no-null guarantees, and memory overhead of references.
Learn how to return a pointer from a function by returning a variable's address, using dereferencing, and avoiding local-variable addresses with dynamic or global memory.
Explore passing by reference, which enables direct access to the same variable without dereferencing, and compare it to pointers while preparing for const and input/output topics.
Learn how to return a reference from a function in C++, pass by reference. Do not return a reference to a local variable.
Learn how input and output parameters use by reference and const reference in functions, compare by value and pointers, and understand when to modify originals or return multiple values.
Explore enumerated data types in C++, declare enums and enum classes, assign values and underlying types, and understand how scoped versus unscoped enums improve readability, safety, and maintainability.
Master enumerations in C++, including unscoped and scoped enums, with custom values and variables, and use them in switch statements through examples like days of week, size, and color.
Learn how object oriented programming organizes code into reusable classes and objects, using templates or blueprints to create instances with shared member functions and data.
Explore a game player class with speed and a fire function, and access them using dot and arrow operators on objects and pointers, while learning public access and unique_ptr.
Define a struct as a lightweight, public-by-default data type for grouping related variables, and contrast it with classes that are private by default, highlighting simple syntax for small data structures.
Learn how to declare member method prototypes inside a class and implement them outside with the scope resolution operator, improving readability by keeping the class definition concise.
Learn how constructors create and initialize objects, including overloading and default variants. Discover how destructors release resources and deallocate memory when objects go out of scope, with compiler-provided defaults.
Learn how default constructors work in C++, how parameterized constructors overload, and how the compiler or you define a default constructor with = default, shown in Visual Studio.
Explore how a friend class grants access to private data in C++, demonstrate not symmetric and not transitive friendships, and highlight declaration and scope.
Explore why classes hide data with private members and how getters and setters enforce encapsulation, control access, and safely modify variables through naming conventions.
Explore how namespaces group related declarations and prevent naming conflicts in Unreal Engine C++ projects. Learn to use scope resolution and global or custom namespaces like math and science.
Nested namespaces are namespaces defined within another namespace, with access shown using science::add and science::math::average. The lecture demonstrates this in Visual Studio with real examples.
Explore inheritance in object oriented programming by creating derived classes, reusing code from a superclass, and understanding polymorphism, hierarchy, and real-world examples like ships and shapes.
Apply the is-a test to decide when a class should derive from another in Unreal Engine C++, and use has-a relationships to model composition with objects and accessible data.
Explore protected class members as a balance between public and private, accessible only to derived classes; learn public, protected, private inheritance and using to control access and encapsulation.
Explore how constructors and destructors manage object creation and destruction across base and derived classes, including base constructor invocation order, reverse-order destructors, parameter passing, non-inheritance of constructors, and virtual destructors.
Learn function overriding in classes: derived objects redefine a base method with the same name and parameters, and optionally invoke the base method to extend behavior.
Explore polymorphism in Unreal Engine C++, from compile-time techniques like function and operator overloading to runtime polymorphism via virtual and override keywords, with practical examples.
Explains how virtual functions in a base class enable derived classes to override behavior for runtime binding via pointers or references, and why virtual destructors ensure proper cleanup.
Explore the price of polymorphism: virtual calls bring memory and runtime overhead, while vtables store function addresses to resolve derived overrides and slower indirect calls.
Explore how default arguments interact with virtual functions in C++, illustrating compile-time resolution of defaults versus dynamic dispatch, and why avoiding defaults with virtuals prevents unexpected results.
Explore how static_cast provides explicit, compile-time type conversions in C++, enabling upcasting and downcasting between base and derived classes, with pointers and references.
Learn how dynamic_cast enables safe downcasting at runtime for polymorphic classes with virtual functions, allowing access to non-virtual functions while returning null for invalid casts.
Explore coordinates, x, y, z, and scalar values in Unreal Engine to understand moving objects in 2d and 3d space from the origin.
learn how vectors capture distance and direction between objects in 2d and 3d spaces, using x, y, and z components, and why component-wise subtraction matters for aiming and shooting.
Master vector operations used in game development, including scalar multiplication, opposite vectors, and component-wise addition. Explore division and subtraction, with x, y, and z components, in practical Unreal Engine examples.
Explore rotators in Unreal Engine, clarifying the difference between rotators and vectors. Learn pitch, yaw, and roll along with left-handed coordinates, world and local gizmos, and axis rotations.
Modify your existing Visual Studio setup to include dotnet desktop development, desktop development with C++, and game development with C++, then consult Unreal Engine documentation for C++ API references and actors.
Explain Unreal Engine class hierarchy, including UObject, Actor, Pawn, and Character, and the is-a and has-a relationships, with components, levels, and world structure for building in-engine classes.
Discover how Unreal Engine 5 uses its reflection system to expose classes, properties, and functions to the editor and blueprints, while garbage collection manages memory with UCLASS, UPROPERTY, and UFUNCTION.
Create an Unreal Engine C++ project, add an actor class named item, implement begin play and tick with super calls, and set up Visual Studio integration.
Create a blueprint from a C++ item class in Unreal Engine, add it to the world, configure components, and use blueprint scripting to leverage begin play and simple events.
Use the Ulog macro to print debug messages and control log output. Understand BeginPlay and Tick lifecycles, and master hot reload versus full rebuild in Unreal Engine.
Print debug messages on screen in unreal engine using c++ with gengine->addonscreendebugmessage. Manage display duration, color, and message key to visualize runtime data during development.
Master FString formatting in Unreal Engine C++, using the text macro for Unicode and printf-style format specifiers to print delta time and object names.
Learn to change an actor’s location and rotation at runtime using set actor location and set actor rotation, with FVector and FRotator, including a private x counter updated each tick.
Move and rotate actors in unreal engine using add actor world offset and add actor world rotation, driven by delta time to keep speed constant across different frame rates.
Expose and edit game variables in Unreal Engine five using the uproperty macro, controlling visibility and editing with edit anywhere, edit defaults only, edit instance only, and organize with categories.
Explore exposing private C++ variables to Unreal Engine blueprints using blueprint read only and blueprint rate, with meta allow private access for controlled blueprint visibility.
Learn how to create C++ functions in Unreal Engine, expose them to blueprints using UFUNCTION blueprint callable and blueprint pure, and manage movement rate and getters.
Discover template functions in Unreal Engine C++, enabling a single function to handle integers, floats, and vectors. Learn about type parameters and operator overloading.
Learn how Unreal Engine actors use components, including scene components, root components, and static mesh components, and how to add, attach, and expose them in C++ and blueprints.
Master the Unreal Engine pawn class, learn why it can be possessed and receive controller input to drive a helicopter, and set up a static mesh with blueprint integration.
Clean and organize the city map for the helicopter game, remove unnecessary assets, and apply lighting with skylight, atmosphere, sky atmosphere, and height fog for a brighter scene.
add a static mesh to the helicopter in unreal engine using c++, create a helicopter mesh component, and place and orient it in the world.
Add a camera component and a spring arm component to the helicopter pawn, attach them to the mesh, and configure an outside view using C++.
Learn to implement enhanced input in Unreal Engine five by using input actions and mapping context to read keyboard input, bind W and S for movement, and move the helicopter.
Bind the input by introducing the enhanced input local player subsystem in begin play, cast the controller to a player controller, then add the input mapping context with zero priority.
Implement helicopter forward movement in Unreal Engine using enhanced input. Bind a move forward input action to W and S, read the input action value, and apply delta-time scaled speed.
Learn helicopter movement in Unreal Engine C++ using enhanced input actions for up, down, left, and right, with local offset to match the helicopter's orientation and adjustable speeds.
Implement controller-driven look and turn using Unreal Engine C++, mapping look around axes, binding input actions, and applying delta seconds for smooth yaw and pitch on a helicopter.
Create a bot class in Unreal Engine by converting a skeletal mesh to a static mesh and adding a bot mesh component to an actor blueprint, preparing AI behavior.
Learn to rotate a bot toward a helicopter in Unreal Engine C++. Forward declare helicopter class, expose a pointer with edit anywhere, and use actor location to align the bot.
Use Unreal's find look at rotation from the kismet math library to turn a bot toward a helicopter with two vectors, yielding a rotator and null checks for weapon targeting.
Learn to use RInterpTo to smoothly rotate a weapon toward the player in Unreal Engine by interpolating between current and target rotators using delta time and a configurable interp speed.
Create a bullet actor in Unreal Engine using a static mesh and projectile movement component, set initial and max speed, gravity scale, and a five-second life span.
Create a bullet material, set color and emissive color, multiply emissive for glow, and compare how directional light affects the glowing bullets in different lighting scenarios.
Spawn a bullet actor at runtime in front of the weapon using a scene component to set its location and rotation, then attach and spawn it via the world pointer.
Implement a timer-driven firing system for the bot using a timer handle and timer manager to fire at a configurable rate, and expose the fire rate to blueprints.
Learn to play sounds and spawn particle effects in Unreal Engine C++, using spawn sound at location and spawn emitter at location with world, sound base, and particle system references.
Explore collision components in Unreal Engine, adding sphere and capsule collisions to bullets and helicopters, adjusting overlap vs block settings, and enabling realistic hit interactions for a shooter.
Bind the on component hit delegate in the bullet to detect overlaps with the helicopter, access the overlapping actor and component, and use a five-parameter callback.
Use the hit function to detect collisions only with the helicopter and ignore the blocking volume. Validate the other actor and test for the helicopter class, logging the actor name.
Learn to destroy the helicopter when a bullet hits it by spawning a particle effect and explosion sound, using gameplay statics and world context, then destroy the bullet.
Implement a stop-firing mechanism in Unreal Engine C++ by checking target helicopter validity and world status, using a timer to control firing and stop when the target is destroyed.
Add a weapon mesh and a bullet spawn location to the helicopter class, attach them to the root and weapon mesh, and prepare to spawn bullets with a BP bullet.
Learn to implement a reusable bullet class that manages projectile movement, sound, and particle effects, and integrate it with a helicopter bot to spawn and fire projectiles.
Implement a left mouse shoot input using enhanced input, bind via input mapping context in the player input setup, and fire once per press, with attenuation tuning for firing sounds.
Add capsule collision to the bot and enable the bullet to destroy both helicopters and bots, with forward declarations and capsule component includes.
Organize the map by placing helicopters and bots, duplicating them, aligning to the ground; add box or simplified collisions across roads and buildings, with fire rate set to 0.3.
Build a helicopter bot and an AI shooter using Unreal Engine C++, culminating in the final result of a polished, playable project.
Set up a blank Unreal Engine C++ project named domain shooter, then enable version control with Git and GitHub to track changes with commits.
Learn to commit Unreal Engine C++ changes to GitHub by adding new C++ classes to the sources folder, resolving hot reload issues, and pushing via Git Bash or Visual Studio.
Import assets like a free survivalist character, a sci-fi map, and Lyra animations, migrate them into your project, set the main map, and preview skeletal meshes and animations.
Retarget animations between skeletal meshes in Unreal Engine using an IK rig and IK retargeter, define retarget chains, set goals, and align hands for accurate transfers.
Discover how to create a domain base character in Unreal Engine by deriving from the character class, using capsule and skeletal mesh, and leveraging the character movement component.
Master enhanced input in unreal engine by creating a base character IMC, binding move forward actions to an enhanced input component, and configuring project settings.
Learn to implement 2D character movement in Unreal Engine using a single movement function, derive forward and right directions from control rotation, and map W/A/S/D to a 2D axis.
Attach a spring arm and a camera component to the character, attach the spring arm to the capsule, and adjust arm length and camera position for a third-person view.
Map mouse XY to a look around action in the base character input. Enable pawn control rotation with the spring arm and invert Y look value for correct up-down motion.
Create and manage character animations using an animation blueprint to switch between idle and running states based on speed, integrating rifle idle and jog animations for seamless motion.
Enable motion trajectory plugin, create a pose search schema and database, and drive the animation blueprint with pose history and a character trajectory component for motion matching.
Learn to implement jump mechanics in unreal engine c++ by setting up input actions and spacebar mapping, calling the jump function, and blending jump animations with motion matching.
Explore how Unreal Engine physics and collisions work, enable simulate physics and gravity, and apply collision shapes such as sphere, capsule, and box for realistic interactions.
Explore how collision presets govern interactions between actors, from blocking and overlapping to custom settings, and learn about began overlap and end overlap events.
Add and configure collision components (box, capsule, sphere) in Unreal Engine, enable overlap events, and adjust presets (overlap all, block all) with visibility options.
Acquire free weapon meshes, skeletal assets, sound effects, and animation montages in Unreal Engine; add them via the Epic Games Launcher and prepare to create the weapon class.
Use actor as the weapon class, add a skeletal mesh and a collision sphere, attach the mesh to the sphere, rotate to face the x axis, and enable nearby pickup.
Explore implementing weapon and character overlap in Unreal Engine C++ by wiring begin and end overlap callbacks on a collision sphere, binding with add dynamic, and logging overlap events.
Implement a weapon pickup input in Unreal Engine by using sphere overlap to enable picking up only when near the weapon, governed by a can pick up flag and setter.
learn how to attach a weapon to a character in unreal engine c++ by adding a weapon pointer, handling overlaps, and attaching to a right hand socket with correct transforms.
Discover rifle animations in Unreal Engine by creating a rifle animation database, adding animations, and using a has rifle blueprint variable to switch animations when the weapon is picked up.
Build an animation database and rifle jump post search database, then switch to rifle jump via an animation blueprint when the rifle is equipped.
Create Unreal Engine C++ projectile class (actor) with sphere collision, static mesh, and projectile movement; set speed to 3000, rotation follows velocity, no bounce, and five-second lifetime; blueprint it.
Implement a shooting mechanic by adding an input action for shoot, mapping the left mouse button, and enabling character shoot only when a weapon is available.
Create a rifle fire animation montage in Unreal Engine, wire it to the character's animation blueprint, and play it with montage play using the default slot.
Implement a weapon shoot function and wire it to the character to spawn projectiles, particle effects, and sounds from a projectile location scene component.
Create an animation montage from a skeletal rifle to drive shooting visuals, sounds, and particle effects via montage notifies, using an animation blueprint to play it.
Spawn a projectile at runtime by using world spawn actor with a TSubclassOf projectile, passing the projectile location and rotation from a scene component, and adjust gravity and speed.
Create a weapon UI using a blueprint widget with a crosshair, add it to viewport after picking up the weapon, and adjust the camera and field of view for aiming.
Compute bullet direction with a line trace by channel from the camera, determine the hit location, and rotate the projectile toward the aim, using world, player controller, and visibility channel.
Explain how to perform a line trace by channel from the player viewpoint, using the player controller to obtain the start location and the impact point from the hit result.
Rotate the bullet toward the target with a rotation from Kismet Math Library, spawn the projectile using that rotation, and set gravity scale to zero to hit where you look.
Destroy the bullet on impact, spawn an impact particle, and play an impact sound using on component begin overlap or on component hit for reliable collision.
Send damage to another domain based character using gameplay statics apply damage, passing the target, base damage, instigator controller, damage causer, and a damage type class.
Override the take damage function in the character to receive damage and expose the damage amount. Use the u function macro in the header, log damage, and update health.
Expose max health and current health as visible properties, clamp current health to zero to max using the math library, and implement take damage with logs and health percentage output.
Trigger hit reaction montages when taking damage using the enemy instance, and control death with a health variable to play a non looping death animation in the animation blueprint.
Unreal Engine C++ teaches you to handle character death by disabling collision and input, enabling ragdoll physics, and destroying the actor after a configurable timer.
Welcome to the ultimate Unreal Engine and C++ course, where you’ll learn everything you need to master game development—from the very basics to advanced mechanics. By the end of this course, you’ll have the knowledge and confidence to build your own games using the full power of Unreal Engine and modern C++. Not only will you create two complete games in this course, but you’ll also gain a deep understanding of the logic and reasoning behind every concept, empowering you to create anything you imagine.
Course Highlights
Two Complete Projects: Create a Helicopter Bot Shooter Game to learn the basics and an Advanced Shooter Game to master AI, animations, and combat mechanics.
Cutting-Edge Tools: Explore Unreal Engine’s latest features, including Enhanced Input, Motion Matching, and advanced AI perception systems.
Version Control: Learn GitHub integration to manage your projects professionally and access project files easily.
Step-by-Step Guidance: Start with the fundamentals and progress to advanced topics, ensuring a thorough understanding of both C++ and Unreal Engine.
Why Take This Course?
This course is designed to be the most complete and beginner-friendly guide to Unreal Engine and C++ available. Starting with the fundamentals, we gradually build up to advanced techniques, ensuring you develop a strong foundation before tackling complex topics. Each concept is explained step by step, so you don’t just follow along—you truly understand how and why it works.
By learning Unreal Engine and C++ together, you’ll unlock a professional-level skill set that gives you the freedom to create any type of game, whether it’s a simple platformer, an action-packed shooter, or an AI-driven open-world experience.
What Will You Learn?
1. Unreal Engine and C++ Basics
We begin by introducing the Unreal Engine interface and the basics of C++ programming. You’ll set up your environment, learn to navigate Unreal’s tools, and create your first project. For those who already know the basics, you can skip ahead. However, this section lays a strong foundation, covering essential topics like:
Writing simple C++ scripts to interact with Unreal Engine objects.
Using Unreal Engine’s editor tools for faster and smarter game design.
2. Mastering C++ for Unreal Engine
This section is the heart of the course. We’ll explore the C++ programming concepts that power Unreal Engine in great depth. Each topic is explained with real-world examples, so you’ll fully understand how these principles work in game development:
Object-Oriented Programming (OOP):
How Unreal Engine uses OOP to structure its framework.
Understanding classes, objects, inheritance, and polymorphism.
Real-world examples of inheritance in Unreal Engine, such as extending the Actor class.
Virtual Functions:
Why virtual functions are critical for game logic in Unreal.
How polymorphism is used to override behavior in derived classes.
Memory Management:
Learning about pointers and why they’re essential for Unreal Engine development.
Understanding smart pointers (unique, shared, and weak) for safer memory management.
Unreal Engine’s built-in alternatives to pointers, like TObjectPtr and TSubclassOf.
Template Functions and Classes:
Writing reusable and efficient code for common tasks.
Examples of template functions in Unreal Engine, such as TArray and FVector.
Casting and Unreal’s Cast System:
The role of static and dynamic casting in C++.
Unreal Engine’s Cast<T> function and how it simplifies working with objects.
3. Understanding Game Coordinates and Math
We’ll break down the coordinate system that defines every object’s position in Unreal Engine. You’ll also master vectors and rotators, which are crucial for movement, rotations, and physics-based interactions. Key topics include:
Manipulating vectors for precise movement.
Using rotators for smooth character rotation and aiming.
4. Unreal Engine-Specific Concepts
This section dives deep into how Unreal Engine works under the hood and how to integrate your C++ code into its framework. You’ll learn:
Unreal Engine’s class hierarchy and how to extend its classes.
Essential macros like UPROPERTY, UCLASS, and UFUNCTION.
How macros communicate with the editor for property visibility, replication, and more.
Creating custom Actor components to extend functionality.
5. First Game Project: Helicopter Bot Shooter
In this project, you’ll create a fully functional helicopter shooter game with NPC bot fighters. You’ll learn about:
Pawn Classes:
Controlling the player’s helicopter using the Pawn class.
Setting up input using Unreal Engine’s new Enhanced Input system.
Camera Systems:
Adding a camera and spring arm for better gameplay visualization.
NPC Bots:
Spawning enemy bots and programming simple AI behaviors.
Completing a playable game, combining movement, shooting, and AI bot interactions.
6. Version Control with GitHub
Properly managing your game project is vital. In this section, you’ll learn:
Setting up GitHub for version control.
Submitting commits to track your code changes.
Providing access to lecture-specific code snapshots, so you can follow along and see progress at each step.
7. Second Game Project: Advanced Shooter with AI
This advanced project takes your skills to the next level by focusing on modern gameplay systems:
Character Class and Animation:
Creating a custom character class with animations.
Retargeting animations and using Unreal Engine’s Motion Matching system for realistic animation blending.
Physics and Collision Systems:
Building realistic interactions using Unreal’s physics engine.
Setting up collision rules for weapons, projectiles, and environmental objects.
Weapon Systems:
Designing a weapon class with pickup functionality.
Adding shooting mechanics with line tracing by channel.
Implementing a health and damage system for players and AI.
AI Development:
Using the AI Perception System to give bots hearing and sight.
Setting up Behavior Trees and Blackboards for dynamic AI behaviors.
Programming bots to chase, attack, and respond to player actions.
8. UI and Game Mode
To make your games feel complete, you’ll learn to create simple yet functional user interfaces and game modes:
Designing a HUD for health and weapon.
Updating the UI dynamically from C++.
Configuring game rules with custom Game Modes.
9. Finalizing Your Game
In the final section, you’ll polish and final your game:
Setting up a new map and configuring game settings.
Preparing your game for sharing or publishing.
What Makes This Course Unique?
This isn’t just a course where you follow along. Each topic is explained in depth, so you understand not just how but why things work. By the end, you won’t just know how to create the two projects—you’ll have the freedom and confidence to build your own games from scratch, using the full power of Unreal Engine and C++.
Join now, and let’s start creating something incredible!