We may earn an affiliate commission when you visit our partners.
GameDev.tv Team and Luis Ramirez Jr

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.

Read more

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

Enroll now

What's inside

Syllabus

Introduction & Setup

In this video (objectives)…

Learn how to install the necessary tools for using Visual Studio with Unreal.

Read more

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.

Accessing Our Projects
Community & Support
Character Movement

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.

Lockon System

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.

Player Combat

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.

Stats

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.

Enemy Behaviour

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.

Save this course

Save Unreal Engine 5 C++: Make Your Own Action Combat Game to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Unreal Engine 5 C++: Make Your Own Action Combat Game with these activities:
Review C++ Fundamentals
Solidify your understanding of C++ fundamentals before diving into Unreal Engine's C++ implementation. This will make grasping the course material much easier.
Show steps
  • Review data types, variables, and operators.
  • Practice writing simple programs using conditional statements and loops.
  • Study object-oriented programming concepts like classes, inheritance, and polymorphism.
Review 'Unreal Engine 5 Cookbook'
Consult the Unreal Engine 5 Cookbook for practical solutions to common game development problems.
Show steps
  • Browse the table of contents and identify relevant recipes.
  • Read the recipes related to character movement, AI, and combat.
  • Experiment with the code examples provided in the book.
Review 'Game Programming Patterns'
Familiarize yourself with common game programming patterns to write cleaner and more efficient code in Unreal Engine 5.
Show steps
  • Read the book's introduction and understand the core concepts.
  • Study the patterns related to gameplay and behavior.
  • Identify opportunities to apply these patterns in your Unreal Engine projects.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Practice Unreal Engine Tracing
Reinforce your understanding of Unreal Engine's tracing system by performing practice drills. This will help you master the Player Combat section of the course.
Show steps
  • Create a new project in Unreal Engine.
  • Implement a line trace to detect objects in the world.
  • Modify the trace parameters to filter for specific object types.
  • Visualize the trace using debug shapes.
Create a Combat Animation Showcase
Create a short video showcasing different combat animations and effects. This will help you solidify your understanding of the Player Combat and Enemy Behavior sections.
Show steps
  • Record gameplay footage of your character performing various combat moves.
  • Edit the footage to create a visually appealing showcase.
  • Add sound effects and music to enhance the video.
  • Share your video with the course community for feedback.
Implement a Simple AI Behavior
Practice implementing a basic AI behavior using Unreal Engine's Behavior Tree system. This will reinforce your understanding of the Enemy Behavior section of the course.
Show steps
  • Create a new AI character in Unreal Engine.
  • Set up a basic Behavior Tree with simple tasks like patrolling and chasing the player.
  • Implement the AI logic in C++.
  • Test and debug the AI behavior.
Contribute to an Unreal Engine Open Source Project
Contribute to an open-source Unreal Engine project to gain real-world experience and collaborate with other developers. This will deepen your understanding of Unreal Engine's C++ API and best practices.
Show steps
  • Find an open-source Unreal Engine project on GitHub or GitLab.
  • Review the project's documentation and contribution guidelines.
  • Identify a bug or feature to work on.
  • Submit a pull request with your changes.

Career center

Learners who complete Unreal Engine 5 C++: Make Your Own Action Combat Game will develop knowledge and skills that may be useful to these careers:
Gameplay Programmer
A Gameplay Programmer brings games to life. They implement the mechanics, rules, and systems that define the player experience. This course focused on creating an action combat game using Unreal Engine 5 and C++ directly translates to the skills needed for this role. The course emphasizes coding game logic, implementing player combat, and developing enemy artificial intelligence. A Gameplay Programmer will greatly benefit from this course by learning how to write clean, scalable code, use interfaces and design patterns, and effectively debug.
Unreal Engine Developer
An Unreal Engine Developer specializes in creating games and interactive experiences using the Unreal Engine. This course directly aligns with the responsibilities of this role, as it provides hands-on experience building an action combat game from scratch using Unreal Engine 5 and C++. This course helps one gain practical skills in character movement, combat mechanics, artificial intelligence, and implementing a robust stat system. Furthermore, the course focuses on writing clean, scalable code and using Unreal's documentation, all of which are crucial for an Unreal Engine Developer.
Game Developer
A Game Developer is responsible for designing, developing, and testing video games across various platforms. The course significantly contributes to the skill set needed for this role, teaching game logic, character movement, enemy AI, and combat mechanics. The course helps build a foundation in C++ game development within Unreal Engine 5. A Game Developer should take this course to gain experience in writing clean, scalable code, using interfaces and design patterns, and effectively debugging, all of which are essential for creating high-quality games.
AI Programmer
An AI Programmer specializes in creating artificial intelligence for games, simulations, and other applications. The course specifically covers coding enemy AI, which directly enhances skills relevant to this role. The course helps one learn how to implement behaviors such as patrolling, chasing, and attacking using behavior trees and the Unreal Engine AI system. The course enables an AI Programmer to gain hands-on experience in creating intelligent and challenging non-player characters.
Software Engineer
A Software Engineer designs, develops, and tests software applications. The course is useful for this role because it offers practical experience in C++ programming, a language widely used in software development. The course helps build skills in writing clean, scalable code, using design patterns, and debugging, all transferable to general software engineering. The specific focus on game development provides a unique and engaging context for learning these skills.
Simulation Developer
A Simulation Developer creates virtual environments for training, research, and entertainment. This course provides practical experience in Unreal Engine 5 and C++, which are used in creating realistic and interactive simulations. The course helps to build a foundation for developing character movement, combat mechanics, and AI behaviors. The course is valuable for learning how to create dynamic and responsive simulations.
Software Developer
A Software Developer is responsible for designing, coding, and testing software applications. This course may be useful as it provides hands-on programming experience in C++, a widely used language in software development. The course helps to build skills in writing clean, scalable code, using design patterns, and debugging. The context of game development offers a creative and engaging way to apply these skills.
Engine Programmer
An Engine Programmer works on the underlying technology that powers video games. While this course focuses on gameplay programming, it helps one gain a deeper understanding of Unreal Engine 5 and its C++ API, which is valuable for an Engine Programmer. The course may improve one's understanding of game mechanics and systems, which can be used to inform engine-level development. This can be a stepping stone towards more advanced engine programming roles.
Graphics Programmer
A Graphics Programmer focuses on the visual aspects of game development, including rendering, lighting, and special effects. While this course primarily focuses on gameplay mechanics, it may be useful because it provides a strong foundation in C++ and the Unreal Engine, which are essential for graphics programming. A Graphics Programmer might find the course useful for understanding how gameplay elements interact with the visual components of a game, providing a more holistic view of game development.
VR Developer
A VR Developer creates immersive experiences for virtual reality platforms. The course may be useful because it provides a solid foundation in Unreal Engine 5 and C++, which are commonly used in VR development. A VR Developer might find the practical experience in game development helpful in creating interactive and engaging VR experiences. The course may help improve one's knowledge of character movement and combat mechanics so they can be adapted for VR.
Tools Programmer
A Tools Programmer develops software and scripts to aid in the game development pipeline. This course focuses on creating an action combat game in Unreal Engine 5 using C++. The course helps one gain a solid understanding of the engine's architecture and the programming workflows involved in game development. A Tools Programmer may find this knowledge valuable in creating efficient and effective tools for game developers.
AR Developer
An AR Developer builds applications for augmented reality devices, blending digital content with the real world. This course helps one gain a solid understanding of Unreal Engine 5 and C++, which are increasingly used in AR development. The course may provide a foundation for creating interactive and responsive AR experiences. The knowledge of game mechanics and character control may be adapted to create compelling AR applications.
Technical Artist
A Technical Artist bridges the gap between art and programming, creating tools and workflows to enhance the artistic creation process. The course may be useful for a Technical Artist because it provides a strong foundation in C++ and Unreal Engine, enabling them to better understand and manipulate the technical aspects of game art. The understanding of game mechanics and systems gained from the course helps a Technical Artist create more effective and integrated art assets.
Mobile Game Developer
A Mobile Game Developer creates games specifically for mobile devices. The course focuses on C++ development within Unreal Engine 5, which can be used to target mobile platforms. The course may provide a foundation for developing optimized and engaging mobile games. A Mobile Game Developer might find the course beneficial for understanding game mechanics and implementing them efficiently on mobile devices.
Network Programmer
A Network Programmer specializes in implementing multiplayer functionality in video games. This course, with its focus on C++ and Unreal Engine 5, may be useful as a starting point for understanding the engine's architecture and programming practices. Although the course may not directly cover networking, the skills acquired in C++ and game logic implementation can be built upon to learn network programming concepts. The experience of building game systems provides a useful foundation for understanding how to synchronize game data across a network.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Unreal Engine 5 C++: Make Your Own Action Combat Game.
Provides a catalog of well-established patterns for game development. It is particularly useful for understanding how to structure and organize code in a game engine environment. The book offers practical solutions to common design problems encountered in game development. It will help you write cleaner, more maintainable, and more efficient code in Unreal Engine 5.
This cookbook provides practical solutions to common problems encountered while developing games in Unreal Engine 5. It valuable resource for learning how to implement specific features and functionalities. The book covers a wide range of topics, including character movement, AI, and combat. It useful reference for both beginners and experienced Unreal Engine developers.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

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.

Affiliate disclosure

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.

© 2016 - 2025 OpenCourser