Unreal Engine comes with a gameplay framework which provides a lot of powerful functionality already upfront. When I was completely new to Unreal and had never worked with the gameplay framework, it all seemed pretty confusing.
What helped me was a guide created by Tom Looman which explained many of the gameplay framework classes. The guide is awesome and I recommend everybody to read it (Unreal Gameplay Framework Guide for C++ - Tom Looman). However, the puzzle piece that was still missing for me was how all these classes interrelated. So, I created the diagrams shown in this post.
The diagrams show the inheritance relationship to other classes and broadly categorize gameplay framework classes into two buckets:
- Deriving from AActor
- Deriving from UActorComponent
AActor and UActorComponent in turn derive from UObject. As a bunch of other useful classes do as well, but those aren’t central to the gameplay framework.
These classes are the main components which make up the gameplay framework. Each one is an essential cornerstone and has a very specific purpose in a game.
Classes derived from UActorComponent can be attached to normal actor classes to augment the actor with additional functionality. It’s a great pattern to add new functionality via composition instead of inheritance or blowing up individual classes to godlike classes.
Note: There are many UActorComponent derived classes available. Only some of which are shown in the diagram below.