Ready to create third-person melee combat moments like your favourite AAA brawler games, and take your C++ skills to a new level in UE5?
Even if you're not a combat designer, this course is an awesome way to power-up your game dev toolkit. We’ll kick things off by coding a component for locking onto enemies, so you don’t have to keep messing with the camera. Focus on the fight, not the fiddling.
Next up, we’re diving into player combat. Learn how to make your game feel dynamic by cycling through multiple attack animations. Your characters won’t just fight—they’ll perform.
Ready to create third-person melee combat moments like your favourite AAA brawler games, and take your C++ skills to a new level in UE5?
Even if you're not a combat designer, this course is an awesome way to power-up your game dev toolkit. We’ll kick things off by coding a component for locking onto enemies, so you don’t have to keep messing with the camera. Focus on the fight, not the fiddling.
Next up, we’re diving into player combat. Learn how to make your game feel dynamic by cycling through multiple attack animations. Your characters won’t just fight—they’ll perform.
And what's combat without a killer stat system? You’ll build a scalable stat system using maps and enums. This makes sure your game can grow without turning into a tangled mess of code. It's all about writing clean, scalable code that lasts.
The enemies in your game won’t just stand there—they’ll be fierce. You’ll code an enemy AI that throws fireballs, charges at players, and keeps them on their toes. Your battles will be tough and thrilling, just like in the best action games.
This course isn’t like most others. We’re using C++ to write 90% of the game’s logic. Get ready to write over a thousand lines of code and pick up loads of new C++ tricks.
That’s a game-changer for anyone wanting to master Unreal Engine 5. You'll learn to use interfaces and design patterns like the observer pattern to make your game smart and efficient.
By the end, you’ll know how to build a game using advanced C++ skills and make it run smoothly. You’ll get confident with Unreal’s documentation, debug like a pro, and keep your code nice and tidy with best practices.
Got the basics of C++ down? Awesome. If you know your variables, conditional statements, classes, and methods, you’re ready to roll. This course will take you from basics to building a full-on action combat game. Avoid the nightmare of messy codebases and learn to do things right from the start.
So, what are you waiting for? Jump in, start coding, and let’s create something epic together (pun intended. ).
In this video (objectives)…
Learn how to install the necessary tools for using Visual Studio with Unreal.
In this video (objectives)…
Learn how to setup a new project with Unreal with a custom thumbnail to personalize the project.
In this video (objectives)…
Learn about the book to help you review key concepts from every lecture in the course.
In this video (objectives)…
Check out what you can expect to learn from this section, which deals with character movement.
In this video (objectives)…
Learn how to download Paragon models from Unreal and update the skeletal mesh of an actor to use them.
In this video (objectives)…
Learn how to override the animations for a character by adding an animation blueprint.
In this video (objectives)…
Learn how to blend two animations so that they can smoothly transition to one another.
In this video (objectives)…
Learn how to play an animation blendspace with Blueprints.
In this video (objectives)…
Learn how to organize and create C++ files with Unreal and figure out what classes you should inherit from.
In this video (objectives)…
Learn how to expose variables to the Unreal editor with built-in macros and specifiers.
In this video (objectives)…
Learn how to take nodes from a blueprint and find their C++ equivalents with the help of the Unreal documentation.
In this video (objectives)…
Learn how to expose a C++ function to a blueprint as a node.
In this video (objectives)…
Check out what you can expect to learn from this section. We’ll learn how to create a lockon system for players to focus their attention on enemies during combat.
In this video (objectives)…
Learn how to resolve a common issue encountered when updating declaration files.
In this video (objectives)…
Learn how to create C++ actor component classes and apply them to an actor.
In this video (objectives)…
Learn how to register new input actions to detect when the player wants to lock onto an enemy.
In this video (objectives)…
Learn how to create a custom channel to allow the player to detect enemies.
In this video (objectives)…
Learn how to perform a trace for a single channel in the world with Unreal’s C++ functions.
In this video (objectives)…
Learn how to prevent the player from being able to move the camera when locking onto an enemy.
In this video (objectives)…
Learn how to constantly focus the camera on target through the player’s controller.
In this video (objectives)…
Learn how to modify the camera boom attached to the player to smoothly move the camera and better focus on the target.
In this video (objectives)…
Learn how to stop the lock on functionality by reversing all the changes made to get the player to lock onto the enemy.
In this video (objectives)…
Learn how to constantly measure the distance between two actors to break the lock on behavior.
In this video (objectives)…
Learn how to create a widget blueprint for a lockon icon for the enemy by using the canvas and image components.
In this video (objectives)…
Learn how interfaces are created in C++ so that Unreal recognizes them and apply them to your blueprints.
In this video (objectives)…
Learn how to properly validate that an actor implements an interface in C++.
In this video (objectives)…
Learn how to share functions with a blueprint from an interface.
In this video (objectives)…
Learn how to create an animation blendspace for character combat movement that can be blended with our existing player blendspace.
In this video (objectives)…
Learn how to create custom events with C++ to inform our animation when the lock on behavior is toggled.
In this video (objectives)…
A brief lecture to clean things up for consistency.
In this video (objectives)…
Check out what you can expect to learn from this section. We’ll learn how to damage enemies by using Unreal’s tracing system to detect other actors.
In this video (objectives)…
Learn how to grab a socket’s location and rotation from the mesh component.
In this video (objectives)…
Learn how to apply a trace using socket information with C++.
In this video (objectives)…
Learn how to visually display traces with debug shapes.
In this video (objectives)…
Learn how to store animation montages in an array.
In this video (objectives)…
Learn how to play animation montages with C++ through the ACharacter class.
In this video (objectives)…
Learn how to take animation notifications to reset attacks and call functions from the animation blueprint.
In this video (objectives)…
Learn how to force animations to take control of player movement by enabling root motion.
In this video (objectives)…
Learn how to override a virtual function defined from an interface.
In this video (objectives)…
Learn how to apply damage to another actor through the AActor class.
In this video (objectives)…
Learn how to ignore targets from being damaged multiple times by using the functions from the TArray type.
In this video (objectives)…
Learn how to create animation notify state classes to control when a notification starts and ends to toggle values in our trace component.
In this video (objectives)…
Check out what you can expect to learn from this section. We’ll learn how to create a stats system for storing a character’s health, strength and stamina, while being able to update it in real time.
In this video (objectives)…
Learn how to use the TMap type to store a collection of data with custom indexes.
In this video (objectives)…
Learn how to create a custom enum that can be used with Unreal maps for reducing errors.
In this video (objectives)…
Learn how to create a component on an actor that’s available from both the editor and game.
In this video (objectives)…
Learn how to reduce the character’s health using clamping from the Kismet math library.
In this video (objectives)…
Learn how to reduce stamina using events on our components.
In this video (objectives)…
Learn how to check for stamina using interfaces to prevent two components from having dependencies on each other.
In this video (objectives)…
Learn how to update a character’s speed through Unreal’s movement component.
In this video (objectives)…
Learn how to reduce stamina using events.
In this video (objectives)…
Learn how to regenerate stamina with interpolation to provide a steady constant rate over time.
In this video (objectives)…
Learn how to use a retriggerable delay to the stamina regeneration to wait a few seconds before regenerating stamina.
In this video (objectives)…
Check out what you can expect to learn from this section. We’ll learn how to make the enemy completely functional with AI to detect, chase, and hurt the player.
In this video (objectives)…
Learn how to implement the boss’s animation instance with the blendspace we created from section 2.
In this video (objectives)…
Learn how to use the pawn sensing component from Unreal and use its events to notify us of when a pawn is detected.
In this video (objectives)…
Learn how to attach a behavior tree to an actor and create a basic tree of nodes for playing an animation.
In this video (objectives)…
Learn how to conditionally play a sequence based on a blackboard value.
In this video (objectives)…
Learn how to update blackboard keys from the blackboard component through the AI controller.
In this video (objectives)…
Learn how to create a behavior task by inheriting from the UBTTaskNode class.
In this video (objectives)…
Learn how to play an animation montage from a behavior task node.
In this video (objectives)…
Learn how to create a projectile using Unreal’s particle system components.
In this video (objectives)…
Learn how to create a node for storing an actor and scene component name to spawn a projectile.
In this video (objectives)…
Learn how to rotate a projectile with the Kismet math library to point an actor toward another actor.
In this video (objectives)…
Learn how to smoothly rotate an actor with interpolation on every frame.
In this video (objectives)…
Learn how to rotate an actor only when an animation notify state is being emitted.
In this video (objectives)…
Learn how to detect another actor with the help of the sphere collision component’s overlap event.
In this video (objectives)…
Learn how to change the template for a particle component along with stopping movement of a projectile component.
In this video (objectives)…
Learn how to setup a timer that calls a function after a specific duration.
In this video (objectives)…
Learn how to disable a component’s collision to prevent the collision event from being emitted multiple times.
In this video (objectives)…
Get an opportunity to practice applying damage to other actors.
In this video (objectives)…
Learn how to generate random float values for switching between states.
In this video (objectives)…
Learn how to switch from the range state to the charge state when our random value exceeds the threshold.
In this video (objectives)…
Learn how to combine multiple animations with conditions with the state machine node.
In this video (objectives)…
Learn how to access an animation blueprint variable from a task node in the behavior tree.
In this video (objectives)…
Learn how to override the TickTask function to run code on every frame from an active task.
In this video (objectives)…
Learn how to initiate a request to move an actor across a map and calculate the best path to avoid obstacles.
In this video (objectives)…
Learn how to bind a function to event from the AI controller with pure C++ .
In this video (objectives)…
Learn how to update a character’s speed through their movement component.
In this video (objectives)…
Learn how to finish a task after it’s been executed to prevent the behavior tree from being blocked.
In this video (objectives)…
Learn how to define a struct and expose it to the Unreal editor.
In this video (objectives)…
Learn how to refactor the trace component to allow for multiple weapons instead of a single weapon.
In this video (objectives)…
Learn how to apply the IFighter interface on our enemies to apply damage to the player during attacks.
In this video (objectives)…
Learn how to create a behavior tree service to run code in the background of a behavior tree.
In this video (objectives)…
Learn how to abort a task to inform the behavior tree a task was not successful.
In this video (objectives)…
Learn how to create another task for the melee state and switch to it from the charge state.
In this video (objectives)…
Learn how to create a move request that allows an actor to chase another actor.
In this video (objectives)…
Learn how to complete the melee task after the enemy reaches the player’s actor.
In this video (objectives)…
Learn how to grab a random item from an array using the math library.
In this video (objectives)…
Learn how to expose the animation duration of an animation montage via an interface to another class.
In this video (objectives)…
Learn how to properly clean up a task after aborting it.
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.