Engine Features Preview 10/27

We’re excited to share a few of the new features now available on the Master branch on GitHub. To be able to try out these new features, you will need to download the source code for the Master branch and build the Engine yourself. For more information about how to build the Engine from source code, please see this page. The Master branch on GitHub is constantly being updated and is not quality tested so it may be potentially unstable. We do not recommend using the Master branch for project development. If you wish to wait, these features will be made available to all in an upcoming official release.

Engine News

New Features
Experimental UMG 3D!

To add 3D UI to the world, create an Actor blueprint and add a Widget Component to it (under the “Experimental” section). Then just drag the blueprint into the world like you would any other.


Under “UI” in the component details, choose the Widget Blueprint class to assign to the component. Adjust the draw size as needed to account for the size of the widget base size.


Background Color is both the clear color of the component render target and the color applied to the backside of the component (if two sided).

A component with two sided disabled is invisible from behind. Enable Is Opaque if the component does not need to be translucent.
This will greatly improve the aliasing of the text on the widgets.

Translucent Font:


Translucent Back (two-sided):


*Opaque front: *


Opaque back(two-sided):


**New: Demo Recording! **

There is a new demo recording feature that allows you to capture replays of network games, and play them back for later viewing at any time.

You can fly around the demo as a spectator, and view the playback from any position/direction.

Basic features currently allow you to pause, slow down, or even fast forward through the action.
Later on you will have the ability to rewind and fast forward with scrub style tool.

This should mostly be a game agnostic feature as long as the game is built around the multiplayer framework of UE4.

Programming Improvements!

Many improvements have been made to basic C++ programming in Unreal, and many more are coming. Here are some of the new changes:

  • You now define and use “normal” C++ constructors for your classes. You can use parameterless constructors too now!
  • You no longer need to supply a category for your properties to expose them to the editor or Blueprints. You’ll get a default category now.
  • Casting between objects and interfaces is now simple. You can use Cast<> to convert between anything!
  • FPostContructInitializeProperties is deprecated. It’s replaced by FObjectInitializer, and you only have to specify it when you actually need it
  • “GENERATED_BODY” no longer resets your protection level to “public”. It will preserve your settings.
  • We’re getting rid of TSubobjectPtr. It was confusing and weird. Just use normal pointers to your sub-objects now!
  • We no longer need to synthesize “dummy” UObjects if you only have structs and enums in your source file
  • Please use the new “GENERATED_BODY” specifier instead of “GENERATED_UCLASS_BODY”. It enables many of these new improvements!

Some additional improvements:

  • C++ compile times are improved overall and we are constantly working on getting this faster
  • The new “TFunction<>” class lets you store lightweight function pointers, similar to std::function
  • We’re working on iteration times with UnrealBuildTool, specifically allowing it to start compiling instantly. More on this soon.


  • Added tooltip for Console for Gamepad Labels in Experimental preferences.
  • Added output logging upon successfully capturing a screenshot.


  • Added some synchronization to NameList GraphPin’s to ensure the current values match the UI.

**- **Automatic Hot Reload from Xcode is now supported on Mac platform!

  • AV Foundation Media Player Changes - iOS and Mac should now work properly - Changes made to iOS and Mac file paths.


  • Unified labeling for blend spaces across different create menus.
  • Expanded Action/Axis mappings when clicking + buttons to add a new one.

Adam, Thank you for posting another great update. But the pictures are missing/broken for me.

Same here, looking forward to them appearing ! :wink:

Yeah regrettably I also can’t see the images,
but regardless oh my goodness 3D UMG, epic! Hope it makes it into 4.6, congratulation to everyone who has been working on that :D.

And, WOWWW, that Demo Recording sounds unbelievable, that would be all kinds of epic for competitive multiplayer games but still incredible for any multiplayer games really, can’t wait to see that in action :D.

Well, at least now UMG will start being used by enough people so that the Slate rendering performance problems get addressed.

Sounds great, can’t wait to see these go live!

Very cool ! thank for all update .

Hi everyone,

Apologies for the images, they should be correctly displayed now.

Can demo recordings be shared in any way with others who have the same build/content? This sounds like the underpinnings for a recorded multiplayer “film” feature, similar to Halo’s Film system. If so, I’m very much looking forward to tinkering with this.


With the 3D UI I wonder if it would be possible to eventually allow using the editor in VR.

I imagine it as a high level hack that turns the normal viewport into a stereo viewport sent to the HMD, and then sets all the normal editor windows up as 3D planes. Any additional windows could be their own planes.

Awesome, the demo recording feature sounds really fun and useful. Thanks Epic!

Thanks Adam, they work for me now. Please keep posting the Previews, they’re great.

These are some nice additions. =)

**C++ Question For Epic

Custom Character Movement Components in 4.6?

How are we going to use the constructor to initialize custom character movement components in 4.6 ?

Example code from 4.5 and prior:

AStarChar::AStarChar(const class FPostConstructInitializeProperties& PCIP)
	: Super(PCIP.SetDefaultSubobjectClass<UMyCustomMoveComp>(ACharacter::CharacterMovementComponentName))

Please do let me know so I can prepare!


AFAIK you just need to rename FPostConstructInitializeProperties to FObjectInitializer.

Will the update automatically replace the occurrences on the code?

I am really excited about all those changes to C++!

No. But you will get warnings to do it yourself.

I guess in this release code will compile with warnings, in next release if you haven’t changes it won’t compile at all.

UMG is 3D Already. Epic is so fast; When you actually want to add a feature…
We need mesh render sorting back to the engine or “render layers” to prevent first person guns/arms from clipping into walls/objects. :mad:

I’m looking forward to those C++ changes, but I just know its going to break out project way more than 4.5 did. Hopefully the removal of tsubobjectptrs will remove a lot of the constraints native components introduced.