Create your first code project and add a new C++ class.
Choose your operating system:
Windows
macOS
Linux
Unreal Engine 4 provides two toolsets for programmers which can also be used in tandem to accelerate development workflows. New gameplay classes, Slate and Canvas user interface elements, and editor functionality can be written with C++, and all changes will be reflected in Unreal Editor after compiling with either Visual Studio or XCode. The Blueprint visual scripting system is a robust tool which enables classes to be created in-editor through wiring together function blocks and property references.
C++ classes can be used as a base for Blueprint classes, and in this way programmers can set up fundamental gameplay classes that are then sub-classed and iterated on by level designers.
Getting Started
Create your first code project and add a new C++ class.
Development Setup
Reference guide for solution and project build configurations.
Reference guide for solution and project build configurations.
Compiling Unreal Engine from source code.
Compiling Unreal Engine from source code.
Compiling individual game projects using Visual Studio on Windows, or Xcode on Mac.
Compiling individual game projects using Visual Studio on Windows, or Xcode on Mac.
Steps for connecting to the source code repository and downloading the latest build of Unreal Engine.
Steps for connecting to the source code repository and downloading the latest build of Unreal Engine.
Describes how to update your fork of the Unreal Engine source code to get the latest fixes and new features.
Describes how to update your fork of the Unreal Engine source code to get the latest fixes and new features.
Describes how to use the GitHub Pull Request mechanism to submit changes you've made to the Unreal Engine source back to Epic.
Describes how to use the GitHub Pull Request mechanism to submit changes you've made to the Unreal Engine source back to Epic.
Recompile and patch your game's binaries at runtime.
Recompile and patch your game's binaries at runtime.
Adding code and generating project files.
Adding code and generating project files.
An overview of the C++ Class Wizard in Unreal Engine.
An overview of the C++ Class Wizard in Unreal Engine.
An overview of the C++ Class Wizard in UE.
An overview of the C++ Class Wizard in UE.
Applications, tools, and add-ins that are useful for programmers working with Unreal Engine.
Applications, tools, and add-ins that are useful for programmers working with Unreal Engine.
The Sparse Class Data system eliminates wasted memory from redudant properties.
The Sparse Class Data system eliminates wasted memory from redudant properties.
Tips, tricks, and techniques for setting up Visual Studio to work with Unreal Engine
Tips, tricks, and techniques for setting up Visual Studio to work with Unreal Engine
Guide for installing, setting up, and using the UnrealVS extension for Visual Studio.
Guide for installing, setting up, and using the UnrealVS extension for Visual Studio.
Useful tips and tricks for working on UE content in Visual Studio
Useful tips and tricks for working on UE content in Visual Studio
Unreal Engine Architecture
Whether you are programming with C++, Blueprints, or a combination of the two, the underlying Unreal Engine architecture is the same.
Reference for Unreal Engine's Assert Functionality
Reference for Unreal Engine's Assert Functionality
Reference for creating and implementing gameplay classes.
Reference for creating and implementing gameplay classes.
Reference for creating and implementing functions for gameplay Classes
Reference for creating and implementing functions for gameplay Classes
Collections of gameplay classes belonging to a game project compiled into DLLs.
Collections of gameplay classes belonging to a game project compiled into DLLs.
Reference to creating and implementing interfaces.
Reference to creating and implementing interfaces.
Metadata keywords used when declaring UClasses, UFunctions, UProperties, UEnums, and UInterfaces to specify how they behave with various aspects of Unreal Engine and the editor
Metadata keywords used when declaring UClasses, UFunctions, UProperties, UEnums, and UInterfaces to specify how they behave with various aspects of Unreal Engine and the editor
Reference for creating and implementing properties for gameplay classes.
Reference for creating and implementing properties for gameplay classes.
Reference to creating and implementing structs for gameplay classes.
Reference to creating and implementing structs for gameplay classes.
Step-by-step instructional guides for hands-on learning of programming in Unreal Engine.
Step-by-step instructional guides for hands-on learning of programming in Unreal Engine.
Create your first code project and add a new C++ class.
Create your first code project and add a new C++ class.
A How To Guide for Referencing Actors in Unreal Engine 4.
A How To Guide for Referencing Actors in Unreal Engine 4.
Gameplay Architecture
TMaps are primarily defined by two types — a key type and a value type — which are stored as associated pairs in the map.
TMaps are primarily defined by two types — a key type and a value type — which are stored as associated pairs in the map.
TSets are a fast container class to store (usually) unique elements in a context where the order is irrelevant.
TSets are a fast container class to store (usually) unique elements in a context where the order is irrelevant.
Data types that reference and execute member functions on C++ Objects
Data types that reference and execute member functions on C++ Objects
Explanations of the basic gameplay elements, Actors and Objects.
Explanations of the basic gameplay elements, Actors and Objects.
Methods for loading and unloading assets during runtime.
Methods for loading and unloading assets during runtime.
Core Redirects enable remapping classes, enums, functions, packages, properties, and structs at load time.
Core Redirects enable remapping classes, enums, functions, packages, properties, and structs at load time.
Developers can extend this system to validate assets with custom-scripted rulesets.
Developers can extend this system to validate assets with custom-scripted rulesets.
Modules are the building blocks of Unreal Engine's software architecture. You can organize your code into modules to create more efficient and maintainable projects.
Modules are the building blocks of Unreal Engine's software architecture. You can organize your code into modules to create more efficient and maintainable projects.
Learn how to create a runtime module for your game from scratch.
Learn how to create a runtime module for your game from scratch.
How assets are discovered by the editor and how to make it know more about asset types before they are loaded.
How assets are discovered by the editor and how to make it know more about asset types before they are loaded.
An Overview of the Tasks System.
An Overview of the Tasks System.
Overview of the features of the UObject system.
Overview of the features of the UObject system.
Custom implementation of shared pointers, including weak pointers and non-nullable shared references.
Custom implementation of shared pointers, including weak pointers and non-nullable shared references.
Using customized serialization code and versioning to control how Objects are loaded from Assets and Packages
Using customized serialization code and versioning to control how Objects are loaded from Assets and Packages
Methods of creating new instances of Objects in gameplay code.
Methods of creating new instances of Objects in gameplay code.
Gameplay Guides
Unreal Engine API Reference
Unreal Engine C++ API Reference
System Guides
Guide to creating new nodes for use within graphs in Anim Blueprints.
Guide to creating new nodes for use within graphs in Anim Blueprints.
Overview of the automation system used for unit testing, feature testing, and content stress testing.
Overview of the automation system used for unit testing, feature testing, and content stress testing.
Technical guide for programmers working with Blueprints.
Technical guide for programmers working with Blueprints.
Learn how to use online subsystems and services in Unreal Engine, including Epic Online Services.
Learn how to use online subsystems and services in Unreal Engine, including Epic Online Services.
An overview of Online Subsystem Steam, including how to set up your project for distribution on Valve's Steam platform.
An overview of Online Subsystem Steam, including how to set up your project for distribution on Valve's Steam platform.
Information for graphics programmers working with the rendering systems and writing shaders.
Information for graphics programmers working with the rendering systems and writing shaders.
Program user interfaces with Unreal Engine's Slate framework.
Program user interfaces with Unreal Engine's Slate framework.
Reference material for Unreal Engine's build pipeline
Reference material for Unreal Engine's build pipeline
Automated Builds
Learn syntax to write BuildGraph script conditions.
Learn syntax to write BuildGraph script conditions.
Learn about BuildGraph Elements.
Learn about BuildGraph Elements.
Learn about valid data types for BuildGraph attributes.
Learn about valid data types for BuildGraph attributes.
Customize your builds with the BuildGraph scripting system.
Customize your builds with the BuildGraph scripting system.
This page provides sample BuildGraph Script usage.
This page provides sample BuildGraph Script usage.
Asset Handling Reference Guides
Methods for loading and unloading assets during runtime.
Methods for loading and unloading assets during runtime.
How assets are discovered by the editor and how to make it know more about asset types before they are loaded.
How assets are discovered by the editor and how to make it know more about asset types before they are loaded.
Developers can extend this system to validate assets with custom-scripted rulesets.
Developers can extend this system to validate assets with custom-scripted rulesets.