C++ コードでゲームプレイ要素をプログラミングする場合、各モジュールにはたくさんの C++ クラスが含まれることがあります。

クラスはそれぞれ新規のアクタまたはオブジェクトに対するテンプレートを定義します。クラスヘッダ ファイル内では、そのクラス、クラスの 関数 および プロパティ が 宣言されます。クラスには、関連プロパティの整理と操作をしやすくするデータ構造である 構造体 も含まれます。構造体はそれ自体でも定義することができます。 インターフェース は追加のゲームプレイの挙動を異なるクラスで実装できるようにします。
Unreal Engine でプログラミングする場合、標準の C++ クラス、関数、変数をもつことが可能です。これらは、標準の C++ 記法で定義することができます。ただし、Unreal Engine に新規のクラス、関数、
変数を認識させるように UCLASS() 、UFUNCTION() 、UPROPERTY() マクロを使用することができます。例えば、 UPROPERTY() マクロで始まる宣言のある変数はエンジンによるガーベジ コレクションの対象となることができ、
Unreal Editor 内での表示と編集が可能です。UINTERFACE()
マクロと USTRUCT()
マクロ、および各マクロのキーワードを使って
クラス、 関数、 プロパティ、
インターフェース、構造体 の Unreal Engine と Unreal Editor 内での挙動を指定することができます。
上記のマクロに加えて、UPARAM() マクロがあります。このマクロは主に C++ コードをブループリントに公開する場合に使用します。UPARAM() の使用例は、「ゲームプレイ要素をブループリントに公開する」を参照してください。