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
Development Setup
Unreal Engine Architecture
Whether you are programming with C++, Blueprints, or a combination of the two, the underlying Unreal architecture is the same.