A collection of Unreal Engine C++ Tutorials that I have created over the years. This page includes a wide range of topics such as guides, sample game projects, specific C++ game features, tips & tricks, etc.

Getting Started with C++

Start with my long form Complete Guide to Unreal Engine C++ article. The C++ Guide covers many of the essential programming concepts you will use day to day in Unreal Engine. I recommend bookmarking it to keep as reference guide when watching programming tutorials or following my C++ Course.

Co-op Action Roguelike Sample Game

The Co-op Action Roguelike Sample Game (Codenamed “Project Orion”) is open-source on GitHub and the most advanced and complete sample project I have built for Unreal Engine over the years. It comes with a large number of features you need to build games including a framework with a custom Ability System, enemy AI, full multiplayer support and a range of optimization tricks. You can find the full breakdown on the new Orion Sample Game project page along with the full source code.

This is what you will build in my Unreal Engine C++ Course (minus some of the later additions and experiments found on the Main Branch in GitHub). If you want to learn exactly how to build it, the reasoning behind every line of code, and tons of more tips and tricks we cover along the way, click here!

Left: Combat with Enemy AI, Buffs, Abilities, and multiplayer support. Right: Blackhole Ability sucking up the environment.

C++ Gameplay Framework Guide

Essential knowledge for Unreal Engine is the built-in Gameplay Framework (Actor, Pawn, GameMode, etc.) as you will be dealing with these core classes constantly. It is written from a C++ perspective, but even for Blueprint users it’s highly relevant as you extend from the same classes.

Unreal Engine Bookmarks Collection

For many more C++ content created by others in the community, check out my Unreal Engine Bookmarks page.

Latest C++ Content

Setting up Rider for C++ and Unreal Engine

Installing and configuring JetBrains Rider for Unreal Engine C++ programming requires a very specific set of components. This guide will help you make this setup process go smoothly.

Unreal Engine C++ Complete Guide

The complete reference guide to C++ for Unreal Engine game development. Covering all the essential programming concepts you need to code effectively in Unreal Engine C++. It includes all the commonly used concepts such as pointers, references, interfaces, macros, delegates, modules and more
 Use it alongside other learning resources to learn more about a specific C++ programming concept.

Why you should be using GameplayTags in Unreal Engine

You may or may not be familiar with GameplayTags in Unreal Engine. It’s heavily used in Unreal’s Gameplay Ability System, but can be used stand-alone in your game framework. In this article, I will introduce GameplayTags and how they can be used in your game, even if you choose not to use GAS.

Unreal Engine C++ Save System

For your game, you will eventually need to write some kind of save system. To store player information, unlocks, achievements, etc. In some cases, you will need to save the world state such as looted chests, unlocked doors, dropped player items, etc.

Creating Latent Blueprint Nodes

For my upcoming game WARPSQUAD, I was curious how easy it is to fetch data from a web service to be displayed in-game. The initial use case is a simple Message of the Day (MOTD) to be displayed in the main menu. Allowing for easy communication with players during playtests or (service) issues. You could use such web interfacing for posting in-game feedback too or whatever data you want to keep outside of the game executable to update on the fly.

Making C++ Arrays with Structs more readable in Unreal Editor

Editing Arrays containing Structs in Unreal Engine has some bad UX. Especially for arrays with many entries as each element provides no context to its contents until you expand each element in the UI to inspect the contents. There is a way to make this look better using the TitleProperty meta-specifier! This trick is only available to arrays created in C++ that are exposed to be viewed in the Unreal Editor.

Adding Stat Traces (Stat Commands) in Unreal Engine

The only sane way to optimize your game is by having good profiling metrics. Unreal Engine comes packed with several good profiling tools and “stat commands” is one such feature. It allows us to measure pieces of our (C++) code in different ways. In this short article I explain how you can use this to your advantage.

Unreal Gameplay Framework Guide for C++

The Gameplay Framework of Unreal Engine provides a powerful set of classes to build your game. Your game can be a shooter, farm simulator, a deep RPG, it doesn’t matter. The framework is very flexible and does some heavy lifting and sets some standards. It has a pretty deep integration with the engine so my immediate advice is to stick to these classes instead of trying to ‘roll your own’ game framework as you might with engines like Unity. Understanding this framework is ...

Healthbars and Nameplate Widgets with UMG

Today I’d like to quickly show how you can add UI for things like health bars, nameplates, interaction prompts and more in Unreal Engine. It’s quite simple to do, and I hear a lot of questions about this, so today I’ll share you some tricks to make this even easier. The sample code is done in C++, but keep reading as I show you a quick and easy Blueprint-only trick too! The following guide explains the concept of how to be able to fetch the information you desire for your ...

Simple C++ FPS Template for Unreal Engine

As I have been preparing some Unreal Engine C++ tutorials, I wanted to use the Built-in C++ FPS Template that ships with the engine as a base project and found it has VR and Touch-input code in the character class which don’t serve any purpose unless you are interested in VR and/or mobile. Since I needed a super simple C++ template to not scare people away from learning this language, I decided to create a simplified version with only the essentials for non-VR projects and...

Unreal Engine UFUNCTION specifiers Explained

In this post I will be covering the common keywords used with the UFUNCTION macro in Unreal Engine 4. Each of the keywords covered include a practical code sample and a look at how it compiles into Blueprint nodes.  I left out the networking specific keywords as they deserve a separate post on networking in Unreal Engine 4 and instead I focus on the different keywords used for exposing your C++ to Blueprint.

Using C++ Timers in Unreal Engine

Timers are incredibly helpful for gameplay programming in Unreal Engine. However, the syntax can be a little tricky if you’re unfamiliar with C++. This blog post will cover all the essential features and syntax for using C++ timers effectively in your game.

Updated: