We may earn an affiliate commission when you visit our partners.
GameDev.tv Team and Nathan Farrer (aka Dapper Dino)

If you’re interested in learning how to make your own third person action combat game, similar to Dark Souls or Assassin’s Creed, then this is the course for you.

Using Unity 2022.1, you'll learn how to create your own 3rd person combat system (similar to that used in games like Dark Souls or Assassin’s Creed). It can easily be added to your RPG project, or any other 3rd person game you’re working on.

You’ll learn about player input, animation state machines, attack combos, dodging, target locking, cinemachine camera options, simple enemy attack AI and more.

Read more

If you’re interested in learning how to make your own third person action combat game, similar to Dark Souls or Assassin’s Creed, then this is the course for you.

Using Unity 2022.1, you'll learn how to create your own 3rd person combat system (similar to that used in games like Dark Souls or Assassin’s Creed). It can easily be added to your RPG project, or any other 3rd person game you’re working on.

You’ll learn about player input, animation state machines, attack combos, dodging, target locking, cinemachine camera options, simple enemy attack AI and more.

By the end of the course you’ll have created your very own sandbox arena where you can hack and slash as many enemies as you like, using a 3rd person camera and control system - with either mouse / keyboard or game controller.

This course is aimed at a beginner plus to intermediate level. You'll need a basic understanding of the Unity interface and C# (if you've taken any of our other Unity courses then you should be good to go).

All students have access to the Q&A forums where our Instructors, Teaching Assistants and Community are ready to help answer your questions and cheer on your success.

Ready to create your own combat game? Come join the course now.

Enroll now

What's inside

Syllabus

Let’s have a look at what we’re going to be working towards in this course and how we’re going to achieve it.

In this video (objectives)…

  1. Nathan welcomes you to the course.

Read more

In this video (objectives)…

  1. Lucy invites you to join us in our various community support forums in order to ask questions, connect with other students and share your progress.

In this video (objectives)…

  1. Any time we change our project during a lecture we will commit that change to a public source control repository for students to access. In this video we show you how to access that content.

In this video (objectives)…

  1. We create our new project and then download and install the packages that we will be in future lectures.

In this video (objectives)…

  1. Nathan introduces you to the section where you’ll be learning about state machines.

In this video (objectives)…

  1. We look into what a State Machine is and why we should use it to control our player and enemies.

In this video (objectives)…

  1. We start to create our own custom state machine to handle the flow of logic for our player and enemies.

In this video (objectives)…

  1. We learn how we can use inheritance and constructors to share logic between states.

In this video (objectives)…

  1. We create the first implementation of our State Machine for the player character.

In this video (objectives)…

  1. We create an “Input Actions Asset” to set up key bindings for various input methods.

In this video (objectives)…

  1. We create a script to handle reading input so that we can then use that in our states to control the player.

In this video (objectives)…

  1. We subscribe to our input reader events to change state when a button is pressed.

In this video (objectives)…

  1. Nathan introduces you to the section where you’ll be creating basic movement using our state machine.

In this video (objectives)…

  1. We use Mixamo to download a model and basic animations for our character, which we then import into Unity.

In this video (objectives)…

  1. We set up our animations in Unity’s animator state machine which we can then drive from our own custom state machine.

In this video (objectives)…

  1. We create the player’s free look state which handles movement logic for when the player is not locked onto a target and set up the player’s movement input.

In this video (objectives)…

  1. We use Unity’s character controller component to handle our player’s collisions and movement within our world.

In this video (objectives)…

  1. We create a blend tree for our player’s locomotion animations which we can then control from within our states when moving the player.

In this video (objectives)…

  1. We use Unity’s Cinemachine package to set up a 3rd person camera that orbits the player as they move around the scene that we can also control with our mouse and/or gamepad.

In this video (objectives)…

  1. We adjust our movement state logic to move the player relative to the camera’s rotation rather than relative to the world.

In this video (objectives)…

  1. We rename the PlayerTestState to the PlayerFreeLookState and refactor before moving on to the next section.

In this video (objectives)…

  1. We import and use some environment assets such as trees and houses to make the world for our player much more interesting to traverse.

In this video (objectives)…

  1. Nathan introduces you to the section where you’ll be creating melee combat with targeting, dodging, blocking, and more!

In this video (objectives)…

  1. We create the ability to set objects in the world as targets that the player will be able to lock onto.

In this video (objectives)…

  1. We create the PlayerTargetingState that we can enter and exit with different button inputs.

In this video (objectives)…

  1. We select a target when entering the PlayerTargetingState that we can then lock our camera onto as we move around.

In this video (objectives)…

  1. We create a second camera setup that we can switch to when targeting an enemy to position them in the centre of the screen.

In this video (objectives)…

  1. We use Cinemachine’s “State Driven Camera” to switch the active camera whenever the player’s animator changes state.

In this video (objectives)…

  1. Congratulations and what to do next!

In this video (objectives)…

  1. We create the Force Receiver component that will sit on the player and handle calculations related to gravity and knockback.

In this video (objectives)…

  1. We start creating the player’s targeting movement and make sure that the player always faces their target.

In this video (objectives)…

  1. We set up the targeting movement animations in a blend tree and add code to the targeting state that will drive the blend tree.

In this video (objectives)…

  1. We make sure that targets are visible on the screen before locking onto them and will prioritise the closest target to the centre of the screen.

In this video (objectives)…

  1. We fix a couple issues that students may face if they have downloaded their model and animations before a recent change to Mixamo.

In this video (objectives)…

  1. We create the PlayerAttackingState and transition to it with mouse input. We can then transition back when the animation finishes playing.

In this video (objectives)…

  1. We give the make the PlayerAttackingState data driven so that we can reuse it for each of the player’s different attacks.

In this video (objectives)…

  1. We check how far through the attack animation we are to determine when the player can combo into their next attack.

In this video (objectives)…

  1. We create a way to handle external forces being applied to the player so that we can push the player forward whenever they attack.

In this video (objectives)…

  1. We create the Health and WeaponDamage components to be able to deal damage when attacking.

In this video (objectives)…

  1. We refactor and polish a few parts of the attacking related scripts that we have been working on in this section.

In this video (objectives)…

  1. We import an improved version of the environment that Rick has created for us which will allow us to better test our traversal mechanics later in the course.

In this video (objectives)…

  1. Nathan introduces you to the section where you’ll be creating Enemy AI!

In this video (objectives)…

  1. We create a new implementation of the StateMachine class for our enemies.

In this video (objectives)…

  1. We create the first state for our enemies, the EnemyIdleState.

In this video (objectives)…

  1. We set up our enemies to have a detection range and to switch to the chasing state when the player is close.

In this video (objectives)…

  1. We give our enemies a NavMeshAgent component that allows them to move in the world to chase the player.

In this video (objectives)…

  1. We create the EnemyAttackingState to transition to once the enemy has reached our player.

In this video (objectives)…

  1. We give our enemy weapon and set up its collisions and damage.

In this video (objectives)…

  1. We make the both character’s attacks able to apply knockback as well as damage when they hit someone.

In this video (objectives)…

  1. We create impact states for the player and enemies that we switch to when they are hit.

In this video (objectives)…

  1. We finish creating our impact states and hooking them up to the state machines.

In this video (objectives)…

  1. We create the dead states for the player and enemies which will handle disabling various components when they are defeated.

In this video (objectives)…

  1. We set up ragdolls for the character models and then enable them when the characters enter their dead state.

In this video (objectives)…

  1. We create the PlayerBlockingState where the player can use their shield to block incoming attacks.

In this video (objectives)…

  1. We make adjustments to the features that we’ve worked on in this section to improve the feel of the combat.

In this video (objectives)…

  1. Nathan introduces you to the section where you’ll be creating advanced movement for your character such as jumping and climbing!

In this video (objectives)…

  1. We create the ability to dodge whilst locked onto an enemy to be able to avoid attacks.

In this video (objectives)…

  1. We create the PlayerJumpingState and the PlayerFallingState to handle the flow from grounded, to jumping, to falling, to grounded.

In this video (objectives)…

  1. We extract the dodging logic out into its own state as well as implementing animations and invulnerability.

In this video (objectives)…

  1. We set up ledges on the roof of our buildings and allow the player to detect them.

In this video (objectives)…

  1. We give the player the ability to jump to and hang off of the ledges.

In this video (objectives)…

  1. We give the player the ability to climb up when they are hanging onto a ledge.

In this video (objectives)…

  1. We spend some time wrapping up the course by fixing some bugs and polishing some features.

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Uses Unity 2022.1, which is a relatively recent version, ensuring compatibility with current tools and techniques
Covers player input, animation state machines, and enemy AI, which are fundamental concepts in game development
Teaches the "State Pattern" design, which is useful for creating modular and expandable character logic
Requires a basic understanding of the Unity interface and C#, so learners may need to acquire these skills beforehand
Employs Mixamo for character models and animations, which may require learners to create an account and familiarize themselves with the platform
Relies on the Cinemachine package for camera implementation, which may require learners to install and configure this asset within Unity

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Practical unity 3rd person action game

According to learners, this course offers a solid foundation and highly practical approach to building a 3rd person combat and traversal system in Unity. Students particularly praise the clear explanations of complex topics like state machines and the hands-on application of concepts. The project-based structure allows learners to build a functional system component by component, similar to games like Dark Souls. While the course assumes basic Unity and C# knowledge, some students found it challenging but ultimately rewarding. A few mentioned needing to troubleshoot minor issues or find external resources for deeper dives or specific problems, but the instructor responsiveness and community support are frequently highlighted as positives.
Requires basic Unity/C# foundation.
"Definitely need basic C# and Unity interface knowledge before starting this course."
"As a beginner-plus, some parts were challenging, but manageable if you have the prerequisites."
"It's not for absolute beginners, but if you have a few other Unity courses under your belt, you'll be fine."
Responsive help available in Q&A.
"The instructor was very active in the Q&A and helped me solve my issues quickly."
"Support in the forums is excellent; my questions were answered fast."
"Really thankful for the responsive help when I got stuck on a bug."
Effective use of the camera system.
"The Cinemachine setup for both free look and targeting felt really polished."
"Learning how to use Cinemachine for the 3rd person camera was very helpful."
"The camera work feels professional thanks to the Cinemachine lessons."
Instructor's teaching style is effective.
"The instructor is very clear and concise, making complex topics easy to follow."
"Great teaching style, breaks things down into manageable steps."
"Really appreciated the clear code explanations and the step-by-step process."
Learn by building a functional system.
"I love how we built the system piece by piece. It feels like I'm actually creating a real game mechanic."
"This isn't just theory; you get to implement everything hands-on, which is the best way to learn."
"The project structure kept me engaged and motivated as I saw the combat system come together."
Clear breakdown of a core game dev concept.
"I've struggled with state machines before, but this course explains them so clearly and shows exactly how to implement one."
"The section on the custom state machine was a game changer for me. It finally clicked!"
"Understanding the state pattern was crucial, and the course makes it surprisingly easy to grasp and use."
Students may encounter minor issues.
"Had a few small issues with code not working initially, had to spend some time debugging."
"Needed to reference the provided source code to fix some errors I ran into following along."
"Some parts required a bit of troubleshooting, but the Q&A helped."

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 Unity 3rd Person Combat & Traversal with these activities:
Review C# Fundamentals
Solidify your understanding of C# syntax, data types, and control flow to better grasp the scripting aspects of the course.
Browse courses on C# Scripting
Show steps
  • Review basic C# syntax and data types.
  • Practice writing simple C# scripts.
  • Complete online C# tutorials.
Practice with Unity's Animation System
Familiarize yourself with Unity's animation system to better understand how character animations are controlled and blended in the game.
Show steps
  • Create a simple animation state machine in Unity.
  • Experiment with animation blending and transitions.
  • Import and animate a character model.
Review 'Game Programming Patterns'
Understand common game programming patterns to improve code structure and maintainability.
Show steps
  • Read the chapter on the State pattern.
  • Identify examples of the State pattern in the course project.
  • Consider how other patterns could be applied.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Follow Cinemachine Tutorials
Explore Cinemachine's features to enhance camera control and create dynamic camera movements.
Show steps
  • Watch tutorials on Cinemachine virtual cameras.
  • Experiment with different Cinemachine camera settings.
  • Implement camera transitions using Cinemachine Brain.
Review 'Unity in Action, Third Edition'
Gain a deeper understanding of Unity's features and capabilities to enhance your game development skills.
Show steps
  • Read chapters related to character controllers and animation.
  • Experiment with the code examples provided in the book.
  • Apply the concepts learned to your combat system project.
Expand the Combat System
Add new features to the combat system, such as new attack combos, enemy types, or special abilities, to solidify your understanding of the course material.
Show steps
  • Design a new attack combo for the player.
  • Implement the new combo using animation and scripting.
  • Create a new enemy type with unique attack patterns.
  • Test and balance the new features.
Create a Combat Showcase Video
Record and edit a video showcasing the combat system you've created, highlighting its features and functionality.
Show steps
  • Plan the content and structure of the video.
  • Record gameplay footage of the combat system.
  • Edit the footage and add music and effects.
  • Share the video online and gather feedback.

Career center

Learners who complete Unity 3rd Person Combat & Traversal will develop knowledge and skills that may be useful to these careers:
Combat Designer
A Combat Designer specializes in creating engaging and challenging combat experiences within a game. This course may be directly relevant to the responsibilities of a combat designer, offering hands-on experience building a combat system from the ground up. The focus on attack combos, dodging mechanics, target locking, and enemy AI provides the combat designer with a practical understanding of the elements that contribute to compelling combat. A Combat Designer may find the course useful as it helps them prototype and iterate on various combat mechanics. The course's emphasis on creating a sandbox arena for testing combat scenarios may allow the combat designer to refine their designs and balance the gameplay.
Gameplay Programmer
A Gameplay Programmer brings game mechanics to life, implementing character controls, combat systems, and AI. This course on third-person combat and traversal directly translates to the responsibilities of a gameplay programmer, providing hands-on experience with the systems they would be building. The course's focus on player input, attack combos, dodging, and target locking mirrors the core tasks of a gameplay programmer working on action or role-playing games. Learning about animation state machines and cinemachine camera options may allow a gameplay programmer to enhance their skills. This course may be particularly useful due to its focus on creating a combat system similar to those in Dark Souls or Assassin's Creed, offering a practical foundation for aspiring gameplay programmers.
Game Programmer
A Game Programmer writes code to implement game features and systems. This course is highly relevant to the work, as it focuses on creating a third-person combat system and character traversal, which are essential aspects of many games. The course's coverage of player input, animation state machines, and AI directly translates to the skills and knowledge a game programmer needs. A game programmer may find the course valuable as it provides hands-on experience with Unity and C#, the same tools and languages used in the game industry. The course's emphasis on creating a complete combat system, similar to those found in Dark Souls or Assassin's Creed, offers a valuable portfolio piece for aspiring game programmers.
Indie Game Developer
An Indie Game Developer works independently or as part of a small team to create and publish their own games. This course is highly valuable for an indie game developer, as it provides the skills and knowledge needed to create a core combat system and character movement mechanics. As an indie developer often wears many hats, the breadth of topics covered in this course is highly beneficial. Learning about player input, animation, AI, and camera systems may allow the indie developer to bring their game vision to life. The course's emphasis on creating a complete game system from scratch allows the indie developer to gain practical experience and build a portfolio piece.
Technical Animator
As a Technical Animator, one bridges the gap between art and programming, ensuring animations work seamlessly within the game engine. This course directly aligns with the skills a technical animator needs, particularly the integration of animations within a combat system. The work on animation state machines is especially pertinent to this role. This course can help a technical animator gain practical experience in implementing and controlling character animations, setting up blend trees, and using tools like Unity's Animator. A technical animator may better understand how to optimize animations for performance and create smooth transitions between different states, ultimately enhancing the visual fidelity and responsiveness of the game. This is especially useful when working with demanding gameplay such as melee combat.
AI Programmer
An AI Programmer develops the artificial intelligence that controls non-player characters in a game. This course provides a foundation in AI programming, specifically focused on simple enemy attack AI within a combat system. An AI programmer may find the course beneficial as it provides a practical example of implementing basic AI behaviors and integrating them with the game's combat mechanics. By understanding how to create AI that reacts to player actions and makes decisions, the AI programmer can create more challenging and dynamic gameplay experiences. This course's hands-on approach to building enemy AI, including considerations for attack patterns and state management, helps the learner to grasp the fundamentals of AI programming in games. The course's use of state machines is highly useful to the AI programmer.
Game Designer
A Game Designer conceptualizes and designs the rules and mechanics of a game. This course may be relevant to a game designer, particularly one focused on combat or action games, as it provides a practical understanding of how such systems can be implemented using tools like Unity and C#. While a game designer may not directly code, understanding the technical aspects of game mechanics, such as those covered in this course, helps them design more realistic and engaging experiences. Learning about player input, animation state machines, and enemy AI may enable a game designer to make informed decisions. The creation of a sandbox arena for testing combat mechanics described in the course offers a valuable perspective for game design. The work on target locking and camera controls can prove useful to the game designer.
XR Developer
An XR Developer creates immersive experiences for augmented reality, virtual reality, and mixed reality platforms. This course may be helpful for an XR developer interested in creating interactive experiences with character movement and combat. The focus on third-person character control and combat systems may allow the XR developer to adapt these mechanics to a VR or AR environment. The course's coverage of camera systems and player input may allow the XR developer to design intuitive and engaging XR interactions. This may be useful as they translate traditional game mechanics into compelling XR experiences.
Animator
An Animator creates the motion and behaviors of characters and objects within a game. This course may be helpful for an animator, especially those interested in working on action or combat-focused games. The course may allow the animator to better understand how animations are implemented and controlled within a game engine like Unity. Topics such as animation state machines and blend trees may allow animators to create and integrate fluid and responsive animations into the game. The course's focus on third-person character movement and combat mechanics offers an animator valuable context for creating animations that feel natural and impactful. The course's use of Mixamo is particularly useful for animators.
Level Designer
A Level Designer creates the environments and layouts in which gameplay takes place. This course may be useful for a level designer, particularly one working on action or adventure games. While the course does not focus specifically on level design, it provides valuable context on how player movement and combat mechanics function within a 3D environment. Understanding how the player interacts with the environment, including traversal and combat, may allow a level designer to create more engaging and challenging levels. This course's coverage of camera systems and player control schemes offers insights that may help the level designer optimize level layouts for both exploration and combat.
Quality Assurance Tester
A Quality Assurance Tester identifies and reports software defects to ensure the quality of a product. This course may be helpful for a QA tester, particularly one focused on testing video games. The course provides a practical understanding of game mechanics and systems. This may allow the tester to more effectively identify and report bugs related to character movement, combat, and AI. The QA Tester may find the course useful as it offers insights into the development process, improving their understanding of the types of issues that can arise. The course's emphasis on creating a functional combat system may allow the tester to develop targeted test cases and scenarios.
Virtual Reality Developer
A Virtual Reality Developer creates immersive experiences for VR platforms. This course may be useful for a VR developer interested in creating action or combat-based VR games. The focus on third-person character control and combat systems may allow the developer to adapt these mechanics to a VR environment. The course's coverage of camera systems and player input helps the VR developer to design intuitive and engaging VR interactions. A VR developer may find the course valuable as they seek to translate traditional game mechanics into compelling VR experiences. The cinemachine camera options are relevant to the VR developer.
UI Designer
A UI Designer creates the user interface elements that allow players to interact with the game. While this course does not directly focus on UI design, it may be helpful for a UI designer to understand the context in which their designs will be used. By learning about player input and game mechanics, a UI designer can create more intuitive and effective interfaces. The course's coverage of camera systems and player control schemes may allow the designer to make informed decisions about the placement and functionality of UI elements. A UI Designer may find the course useful as they seek to gain a deeper understanding of the player experience in a combat-focused game.
Software Engineer
As a Software Engineer, one develops and maintains software systems. While this course focuses on game development, the underlying principles of software engineering are applicable. Although the course may not focus on traditional software engineering topics, the experience of working with C# and Unity can improve coding skills and problem-solving abilities. Those skills are valuable for a software engineer. Software engineers may find the course useful as they seek to broaden their technical skills and explore new areas of software development. The course's emphasis on modularity and code organization may provide insights applicable to software engineering practices.
Motion Graphics Designer
A Motion Graphics Designer creates animated graphics for various media. While this course focuses on game development, the principles of animation and visual storytelling can be applied to motion graphics. A motion graphics designer may find the course beneficial as it offers insights into how animations are created and implemented within a dynamic environment. The course's coverage of animation state machines and camera systems may provide valuable context for creating compelling motion graphics. The motion graphics designer may use this when working on trailers.

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 Unity 3rd Person Combat & Traversal.
Provides a comprehensive guide to Unity development, covering a wide range of topics from basic concepts to advanced techniques. It can serve as a valuable reference for understanding the Unity engine and its features. It is particularly useful for understanding the underlying principles behind the state machine and other architectural choices made in the course. This book is commonly used as a textbook at academic institutions.
Provides valuable insights into common design patterns used in game development. It can help you understand the underlying principles behind the state machine and other architectural choices made in the course. While not required, it offers a deeper understanding of game development best practices. This book is commonly used by game developers to improve their code architecture.

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