April 24, 2014

Unreal Engine 4.1 Release Notes

By Ray Davis

Major New Features

Platforms

PlayStation 4 and Xbox One Support

  • Full support for PlayStation 4 and Xbox One!

Console

  • Engine source for Playstation 4 and Xbox One is available to subscribers who are registered developers with Microsoft or Sony, respectively.
  • For now, deploying projects to Playstation 4 or Xbox One requires compiling source from GitHub using a Windows computer

 

SteamOS/Linux Support (Preview)

  • You can now package your games and deploy to SteamOS and Linux!

 

Linux steam approved

 

  • For now, deploying projects to Linux requires compiling source from GitHub using a Windows computer.

 

Marketplace Content

Elemental Demo (Coming Later Today)

  • Remember that cool Unreal Demo we showed running on PlayStation 4? Elemental is a spectacular showcase of Unreal Engine 4’s high-end rendering capabilities, including dynamic lighting and shadowing real-time reflections, subsurface scattering and GPU powered particle effects.

 

elemental

 

Math Hall, a new Content Example level

  • The Math Hall example provides an introduction to basic vector math and the concept behind various math functions.

 

content examples

 

New Project Templates

Flying Template and Rolling Template

  • We’ve created two new project templates that demonstrate simple flying and rolling character movement.

 

  • The Flying template (C++ and Blueprint) feature simple flying movement:

FLying machin

  • The Rolling template (C++ and Blueprint) feature a physics-based rolling ball as the player character:

Rolling

Editor and Tools

New Built-in Editor Tutorials

  • We’ve added new built-in in-editor tutorials.  They’ll appear automatically the first time you encounter these features.
    tutorial image
  • Cascade Particle Editor Tutorial walks you through the basic user interface and concepts used when creating Particle Systems and effects.
  • Material Editor Tutorial explains the basics of creating Materials.
  • Static Mesh Editor Tutorial covers the interface and tools available for setting up Static Meshes.
  • Persona Animation Editor Tutorial walks you through the various user interface elements and concepts for the different asset types and modes.

 

Scene Outliner Folder System

  • You can now organize your actors into folders in the Scene Outliner.

sceen outliner

  • The create button will create you a new folder containing the currently selected actors.
  • Visibility toggling on folders affects all their contained actors.

 

Editor News Feed

  • The editor now has a built-in News Feed. You can access it using the new button in the top-right of the editor.
  • The News Feed will tell you about new Marketplace content, video tutorials and blog posts.

Editor News feed

Asset Deletion Assistant

  • This feature makes it easy to delete assets by helping you interactively inspect and repair references.

asset delete

  • Allows graceful cleanup of assets still being referenced on disk or in memory
    • You can click on any referenced asset to navigate to it and fix it up manually.
    • You can Replace References, formally known as “Consolidate”. 
    • You can perform a Force Delete, or you can Cancel and go handle the references yourself.
  • Allows for multiple simultaneous deletes.
    • Even if an asset is referenced by other assets, as long as they are also being deleted, it won’t flag that as a problem.
  • Reference Navigation
    • Double Clicking on referenced assets will open their editor
    • If an asset is being referenced in the open map, Double Clicking the map asset will take you to it in the open map.

Drag and Drop Directory Importing

  • You can now select multiple folders with textures, meshes and animations, and drag them directly into the Content Browser to import everything inside those folders.

Drag and drop

 

Undo History Window

  • The Editor now has a way to access the undo history.

undo history

  • You can access the Undo History window from the Windows menu (Windows > Undo History).     

New: Remapping Viewport Controls

  • We now allow users to remap their WASD controls for the viewport.
  • You can find these settings under Editor Preferences > Keyboards Settings > Viewport Navigation.

remapping viewport

New: Debug Histogram Visualization

  • You can now draw a histogram (graph) of float values in the world.

debug histogram

  • You can record the value of a property or other aspect of the game over time and visualize that as a histogram at a specific location in the world.
  • Values can be recorded and histograms can be drawn from both C++ code and Blueprints.

Histogram

  • Note: This feature is designed for debugging purposes. Debug drawing is not recommended during normal gameplay.

 

Translation Editor (Preview)

  • The Translation Editor makes it easier to edit translations for strings in your game code and assets.   

translation Editor

  • Note:  This tool is still an early work in progress.  This tool can be enabled in your editor preferences under the Experimental section.

 

Blueprints

Jump to Connection in Graph

  • You can now right click on pins and jump to connections.

Jump Connections

Class Dynamic Casting

  • You can now safely convert between compatible types of objects in your Blueprints.

Description: DynamicCasting.png

Improved Blueprint Components Editing

  • You can now drag-and-drop component nodes between Blueprint editor windows.
    • This will create a new component variable in the new Blueprint that inherits its attributes from the original (except variable name, to avoid conflicts.
  • You can now undo/redo component attachment and detachment operations.
    • This works for the “Make New Scene Root” operation as well

 

Important Upgrade Notes

Upgrading Projects

  • Some steps may be required to get your 4.0 project working in 4.1.

 

  • Upgrading Blueprint-only projects
    • You can load your existing project in the new editor normally.
    • Note:  Some Blueprint APIs may have changed between versions, which could cause warnings in your content.  Read the API Changes section for more information.

 

  • Upgrading C++ code projects
    • You’ll need to recompile the C++ project for the new version of Unreal Engine
    • Locate the .uproject file in your game’s folder, and right click on it.  (on Mac, you can also Command + Click)
    • Select Switch Unreal Engine Version  ->   4.1 (on Mac, this is in a Services menu)
    • Right click to generate new C++ project files, then recompile your game normally.
    • Note:  Some C++ APIs may have changed between versions, which can cause compile errors.  Read the API Changes section for more information.

 

  • Sorry for the inconvenience!  We’re working on simplifying the upgrade process for future versions.

 

Known issues:

  • Generating Visual Studio projects will fail for projects that have an underscore in the name if the  Xbox One SDK is installed
  • Xbox One and Playstation 4 do not yet fully support projects with spaces in any of their parent directories.
  • Steamworks is not yet supported on Mac – we’re working on it!
  • ShooterGame requires using source from GitHub to be compiled as a dedicated server
  • Projects created from the First Person template may crash on Playstation 4
  • Elemental Demo crashes when deploying to Mac using the “Launch On” button in the editor
  • Tappy Chicken on iOS crashes at startup if you’re signed into Game Center

 

Special Thanks

We’d like to thank all of the amazing developers who contributed code in this release. We are humbled and amazed by what you are doing!

  • Allar (Michael Allar)
    • Added Shared Texture resource support for D3D11RHI
  • AndrewScheidecker (Andrew Scheidecker)
    • Fix Actor->Acor K2 redirect typo
  • cdietschrun
    • Fix "Actions taking a object" message
  • clide
    • Mac GL Fix
  • dkjer (Donald Kjer)
    • Fixes for case-sensitive filesystems
  • DiCoJamesTan (James Tan)
    • Fix attachment bug with ChildActorComponent
  • fxtentacle (Hajo Nils Krabbenhöft)
    • Fix Azimuth & Elevation calculation on Mac
  • Kamayuq
    • Mac UnrealBuildTool Fix
  • Kyle Rocha (kylawl)
    • Add plane interct function to KismetMathLibrary
  • PostalDude (Frederic Lauzon)
    • Fix invalid module linker output file path
  • sbc100  (Sam Cleeg)
    • Fix build warnings in UnrealBuildTool
    • Fix linux compile warnings
  • wshearn (Wesley Hearn)
    • Fix HTML5 Shipping Client build

Release Notes

Marketplace Content

  • ShooterGame: Now supports Xbox One and PlayStation 4 deployment.

Shooter

  • Memory Game: A card-matching memory game created entirely in Blueprints. Optimized for mobile devices!

Memory game

  • Effects Cave: Spelunking has never been this fun! See the pretty things you can make to add richness to your world by exploring the Effects Cave. Using the Cascade visual effects editor you can layer on countless details including GPU-powered particles, dynamically lit sparks, wispy puffs of smoke and more.

Effects cave

  • Realistic Rendering: Easily build true-to-life environments or emulate architectural visualizations using UE4’s physically-based material system, the improved Lightmass global illumination system and photometric lighting. Supports Oculus Rift!

 

Realistic rendering

 

  • Blueprint Office: Shows a wide variety of use cases for Blueprints ranging from level design tools to intelligent security systems to sophisticated AI behavior. Each example includes a brief in-game explanation.

 

Blueprint Office

 

Learning Resources

Unreal Engine Launcher

  • New: Install multiple versions of Unreal Engine side-by-side.
    • Use the Launcher’s new Version Selector drop-down to choose which version you want to install and run!
  • New: You can now uninstall the engine versions right through the launcher using a new ‘Uninstall’ button on the main UI
  • New: Launcher Marketplace pages now show download size.
  • New: The Marketplace now supports different versions of items
  • New: The EULA is now shown and accepted through the launcher.
  • New: Project files can be associated with engine versions installed through the launcher.
  • New: The Unreal Installer and Launcher are now localized for Korean and Japanese.
    • For the launcher you can select a language in on the login screen.
  • Fixed not being able to queue Marketplace items while the Engine is downloading.
  • Fixed installer not warning users if they did not have Windows 7 SP1 installed
  • Fixed an issue preventing Unreal Engine shortcuts from being removed from the desktop on uninstall in some cases.
  • Fixed rare issue with being stuck on "Syncing your account".
  • Fixed cancelled automatic downloads so they will not resume.
  • Fixed self-update ignoring empty files.
  • Fixed UI size information not displaying with decimal places.
  • Fixed an issue causing a failed installation to start all over again rather than resuming from previously successful files.
  • Fixed a rare issue where a failed data file download could cause the install to never finish.
  • Fixed Mac Launcher crash on close.
  • Fixed download size indicator to support showing the compressed download size rather than uncompressed size.
  • Fixed some UI issues with progress percentage information.

Editor and Tools

- General Editor
  • New: Improved the 3D viewport grid!
    • Removed the grid dots for a cleaner view. The grid is now also scaled according to the grid snap settings.
    • Perspective grid precision improved with thinner lines.
    • Orthographic grid now has power of 10 major gridlines, soft fading transitions between levels, and colored axis lines.
  • New: Added a Preview Meshes preference that allows customization of meshes displayed in viewports when holding the Backslash key.
  • New: Icons for your project can now be assigned via Window/Project Settings.
  • New: Startup Movies for your project can now assigned via Window/Project Settings.
  • New: Pressing the C key now creates comments in the Material and SoundCue editors.
  • New: Added an option to invert middle mouse pan movement. Invert Middle Mouse Pan option in the Editor Preferences -> Viewports.
  • New: Added search support in the Placement Browser.
  • New: Holding Ctrl now prevents Vertex Painting from de/re-selecting actors.
  • New: Added support for Ctrl + Backspace and Ctrl + Delete to editable text boxes.New: Added Enable Sound option to Play-In-Editor settings.
  • New: Save window now displays "Save Map" or "Save Asset" depending on what's being saved.
  • New: Added ability to scale individual sub-curves to the curve editor.
  • New: Content is now autosaved by default, and the notification shows you the number of packages that will be saved.
  • New: Pressing F4 to view details will now potentially spawn a new Details panel if all the currently open ones are locked.
  • New: Browse button in the content browser context menu now works on unloaded objects.
  • New: The Reset Layout feature has been moved to the Window menu from Editor Preferences.
  • New: Property names can be set to display as they are in code (English) on the Region & Language editor preferences.
  • New: You can now customize the selection colors in the Editor Preferences.
  • New: You can now override the far view plane on a level editor viewport.
  • New: Columns are now sortable in Save Content dialog.
  • New: 3D marquee select has been re-added with the same original keybinding (Ctrl + Alt + Left Click Drag).
  • New: Added a message log link to diagnose load errors in-editor.
  • New: If there is an active camera safe frame, the High Resolution Screenshot UI allows you to set the capture region to that safe region.
  • New: Added prompt to restart the editor after you’ve enabled or disabled a plugin in the Plugins Editor.
  • New: Improved how the zoom slider in the Texture Editor interacts with the Fit to Viewport setting.
  • Improved decal scaling performance in the editor.
  • Improved Asset Discovery time in the editor.
  • Improved Arrow Component readability at a distance.
  • Updated Code View functionality to now exist in a plugin.
    • Please enable the Code View plugin to reactivate this functionality (Window Menu -> Plugins -> Editor -> Code View).
  • Fixed Region & Language editor preferences to be more user friendly. Changing them should be less confusing or awkward.
  • Fixed High Resolution Screenshot facility.
    • Screenshot capture is now limited to the viewport from which the High Res Screenshot action was selected.
  • Fixed Editor Preferences not listing all available languages and regions.
  • Fixed Select Actors using this Asset not selecting Actors in other streaming sub-levels.
  • Fixed selection problems in orthographic viewports due to mouse tests not extending from beyond the origin plane.
  • Fixed Actors not remaining selected after copying Actors from multiple levels into the clipboard.
  • Fixed global shortcut keys not functioning in floating windows in some cases
  • Fixed safe frames and aspect ratio bars not displaying when locking a camera in Matinee when no camera is selected.
  • Fixed viewport settings not being saved into the layout preferences file instead of the editor preferences files.
  • Fixed notifications not being anchored to their appropriate monitor work area.
  • Fixed copying text from the Output Log not copying lines in the correct order.
  • Fixed Output Log auto scrolling.
  • Fixed level locking changes in the level browser not being able to be undone or redone.
  • Fixed unintuitive project switching by displaying the name of the project in the splash screen.
  • Fixed survey notification not fading away instantly after clicking Cancel to close it.
  • Fixed Actors being selected when the viewport is hiding the layer they are in.
  • Fixed Tutorial window to no longer play sounds.
  • Fixed the white square artifact with the Virtual Joystick by adding a StartupDelay function.
  • Fixed crash on save when FindObject is called.
  • Fixed curve handle movement in Viewports to no longer be inverted.
  • Fixed dropping assets onto Brush edges/verts, it now leaves them at the correct location.
  • Fixed SVN binaries not being included with the editor when installed from the launcher.
  • Fixed tooltips not appearing in the Window options on the main menu.
  • Fixed Frame rate settings being allowed to go below zero.
  • Fixed StaticMesh scaling via “ScaleMeshes” console command not taking into account the existing BuildScale into consideration before making any changes.  
    • Fixed home button not appearing in the tutorial window appears after viewing Blueprint tutorials.
  • Removed unused splash screens.
  • FBX
    • New: Added an Import All button to the FBX import dialog.  This will import all selected files with the same FBX settings without being asked more than once
    • Changed FBX Import Options Window for clarity:

FBX

  • Changed the default setting of Import Meshes in Bone Hierarchy, under the Skeletal Mesh import settings, to be enabled by default. This will result in any non-skinned meshes in the bone hierarchy being imported as actual meshes and not as bones.
  • Fixed importing with Materials and Textures that are the same name as each other or a mesh. This will no longer cause a crash, instead unique names will be generated for each conflict.
  • Fixed overlapping nodes on Materials imported from FBX.
-Content Browser
  • New: You can now rename folders by right clicking on them and selecting Rename.
  • New: Added new Content Browser view options:
    • Show Only Assets in Selected Folders will only show assets in the currently selected folder when searching or filtering.
    • With Real-Time Thumbnails enabled, any loaded asset will show material animation.
  • New: Changes to Behavior Tree assets can now be displayed interactively while using the Diff Tool.
  • Fixed the Developer Folder appearing in the Content Browsers breadcrumb trail if the Developer Folder option is disabled.
  • Fixed Textures in thumbnails often drawing with blurry graphics by improving streaming for thumbnail Textures.
  • Fixed not being able to type immediately into Content Browser search when window is summoned.
  • Fixed move/copy to only prompt for asset load once per folder group move/copy.
-Matinee
  • New: Matinee now supports rendering to PNG and JPEG formats (along with BMP and AVI).
  • New: Safe frames and aspect ratio bars can now be displayed when locking a camera and in Matinee when a non-camera is selected.
  • New: Notification now occurs when attempting to delete an actor from the Viewport while Matinee is open.
  • Optimized invalidation of curve editor viewport, which improves Matinee’s performance.
  • Fixed inconsistencies with how Undo/Redo works in Matinee compared to other editors such as Cascade.
  • Fixed not being able to interact with graph labels and buttons while in Zoom Mode.
  • Fixed Slomo tracks not being able to slow the play rate down below 10%.
-Persona: Animation Editor
  • New: You can now select and edit multiple bones at the same time in Persona.
  • New: You can now save assets straight from Persona’s built-in Asset Browser.
  • New: Animation Notifies can now be deleted by selecting them and pressing the Delete key.
  • New: You can now open assets directly from Blueprint nodes that reference them.
  • New: Added function to Persona to allow the user to remove unused bones from a skeleton.
  • New: Added recently opened file history in the form of Forward and Back browser buttons in the Asset Browser in Persona.
  • New: Added filters to Asset Browser in Persona.
  • Changed the setting of the default preview mesh on skeletons to make sure they never start will a NULL mesh.
  • Fixed not being able to undo and redo changes to bones.
  • Fixed some Persona settings not being remembered between sessions.
  • Fixed Persona mode widgets not indicating dirty state.
  • Fixed a crash in Persona’s skeleton tree context menu.
  • Fixed the preview viewports not drawing when dragging a slider in Persona.
-Source Control
  • New: P4 plugin now supports P4HOST masquerading, password login and connection to stream depots.
  • New: P4 can no longer connect to workspaces that do not map to your project (and similarly for SVN working copies)
  • New: Added toast popup when successfully checking in.
  • Fixed Perforce source control plugin not supporting Unicode workspace names and user names.
-Material Editor
  • New: You can now zoom in and out by holding Left + Right Mouse Buttons and dragging.
  • New: Material Attributes can now be connected to Feature Level and Quality switches.
  • New: Added context sensitivity when dragging off pins in the Material Editor.
  • New: Lighting-specific options in the Material Details are now grayed out when Unlit mode is active.
  • New: Changed Material statistics to be displayed in their own tab.
  • New: Added New Mobile Stats Icon for Material Editor.
  • New: Added title coloring for Material Expression nodes.
  • New: Added option to Panner Material Expression to use fractional component of the time calculation to improve accuracy.
  • Exposed default material values that were missing and added tooltips to non-required inputs.
  • Fixed Material asset name not being displayed in the Material Editor Title tab.
  • Fixed propagating changes from material functions to any materials or functions using them.
-Geometry Editing
  • New: Geometry brushes will now attempt to keep the material information even when their core parameters are altered.
    • Changes where the number of polygons remain the same are completely supported.
    • Changes where the number of polygons differ only support a single material across the whole mesh.
  • Fixed dragging and dropping Geometry Brushes into the Scene Outliner not working correctly.
  • Fixed not being able to scroll through the various Geometry Editing mode controls.
  • Fixed legacy builder brush visible in the 3D scene while Geometry Editing mode is active.
  • Fixed the Lathe tool to create a brush.
  • Removed Volumetric and Sheet brush shapes as they were non-functional.
-Landscape and Foliage
  • New: Landscape splines now have a Max Draw Distance setting for meshes on the spline.
  • New: Added new Landscape LOD preview settings to viewports.
  • New: New controls for collision settings were added to Foliage tool.
  • New: Added Resample option for Change Component Size tool.
  • New: The Landscape Spline sprite automatically scales with the width of the spline to prevent them from getting too big.
  • New: The Landscape move-to-level tool will now operate on the component under the cursor when there is no component selection active.
  • Updated the order of the Landscape Visualizers menu.
-Mesh Paint Tool
  • New: Paint brush radius is now saved with your editor preferences.
  • Updated the default paint brush radius to 128.
  • Data Table Editor  
    • New: To aid in readability, even and odd rows now have different background colors.
    • New: Search has been implemented in the Data Table Editor.
  • Scene Outliner
    • New: More options for managing Actors and folders in the Scene Outliner right click context menu.
    • Fixed Undo/redo with folders in the Scene Outliner.
  • World Browser
    • New: Added option to handle cooking for worlds created by World Browser -map=PersistentMapName?worldcomposition.
    • New: Added time threshold between tile distance streaming load/unload requests. Can be changed in configuration files: TilesStreamingTimeThreshold.
    • New: Added position snapping for level tiles, use Ctrl+Left Click Drag.
    • Replaced World Browser async loading of level tiles with a blocking load and added "long operation" message.
    • Removed the Always Loaded level type.
  • Device Profile Editor
    • New: Device Profile Editor is now always available through the Window Menu -> Device Profile Editor
    • Updated the device profile editor UI with a layout which reflects its primary usage.
    • Updated CVar addtion, removal, and parenting to be a lot more evident for a profile.
  • Translation Editor:
    • New: Translation Editor now searches the Engine, Editor, and the currently loaded project's directories for localization files to determine which projects/languages can be translated.
    • New: Added event triggered by a property change to the translation data object to write the data to file, to prevent data loss due to user forgetting to save, or the editor crashing.
    • Fixed Translation Editor to read local cached versions of old manifests when possible instead of syncing them from Source Control again.

Blueprints

  • New: Added undo/redo support for component attach/detach operations in Components mode within the Blueprint editor.
  • New: Added undo/redo support for repositioning graph nodes in a Blueprint graph.
  • New: Added proper undo/redo support for duplicating components in Components mode within the Blueprint editor.
  • New: Added support for dragging components between 2 different Blueprint editor windows in Components mode.
  • New: Added support for drag-and-drop with multiple components selected in Components mode within the Blueprint editor.
  • New: Added a graph node section in the details view of the Blueprint editor that provides the ability to rename nodes that the user can rename.
  • New: Added ability for Blueprint cast nodes to cast from one interface to another.
  • New: You can now multiply LinearColors by floats using a Float * (LinearColor) Blueprint node.
  • New: Added a new ParseIntoArray function for easily splitting up strings.
  • New: Variable Get/Set nodes can now display Rich Tooltips. To view them, mouse over a node and hold Ctrl+Alt.
  • New: Alt + Right Click can now be used as an alternative to zoom Blueprint graphs.
  • New: Added menu extensibility hooks for additional items in the Debug Object drop down.
  • New: Graph nodes can now be renamed via the details panel when a node is selected
  • New: Added support for searching Blueprint Interfaces.
  • New: Renaming Blueprint Interface’s functions now properly renames the functions in implementing Blueprints.New: Added the Ability to set the PlayRate of a Montage from within Blueprint.
  • New: Added Impact Velocity parameter to OnProjectileBounce, to allow blueprints to override bounce velocity vector.
  • New: Added “value (clamp) range” exposure to numeric variables in Blueprints to go along with “slider UI range.”
  • Updates allowing multiple pending latent actions at a particular call site from a Blueprint.
  • Fixed Combo button menu scaling in the Blueprint Editor.
  • Fixed Realtime rendering in the Blueprint Components mode Viewport. It is now disabled when Components mode is deactivated within the Blueprint editor.
  • Fixed the Toggle Particle System Helpers option to work on Blueprint Actors that contain Particle System Helpers.
  • Fixed Blueprints to be properly flagged as being modified when toggling between absolute and relative transform settings.
  • Fixed not being able to undo/redo after moving nodes around on the graph.
  • Fixed Grid Snap while translating components in Components Mode.
  • Fixed Sprite Component visualizers switching to the default “Actor” icon in the Blueprint editor preview during Play in Editor or Simulate in Editor.
  • Fixed renaming Blueprint interface functions, they will now properly rename in implementing Blueprints.

Rendering

  • General
    • New: Added ability to disable parts of the DBuffer decals effect (Material Decal Response).
      • You can mask color, normal, roughness.
      • This can free up texture sampler units, improve performance, and gives more control.
    • New: Added feature to choose graphics adapter (r.GraphicsAdapter) or let the system do this automatically
      • By default, this favors non-integrated graphics card (at the moment we check for "Intel" in the adapter name).
    • Improvements to Sky Lights:
      • New: Movable objects receive sky shadowing from static shadow casters.
      • Fixed TLM_Surface materials to render sky reflections properly.
    • Improved glossy screen space reflections to reduce noise.
    • Fixed situation that could cause incorrect viewport dimensions to be calculated when setting render target to lower mip levels with the D3D11 RHI.
      • Fixed some possible incorrect casting of D3D texture objects.
  • Android
    • New: Reflection capture data is now stored in the map package.
      • This allows cooking for ES2 to always have valid reflections for maps that have been resaved.
    • Optimized motion blur, UIBlur, and screenspace ambient occlusion.
    • Improved CPU performance by setting affinity mask for the gamethread, renderthread and eventthread.
    • Improved GPU performance by turning on DisjointTimerQueries on Adreno 330-based devices with a driver later than version 53.0.
    • Updated the CVar r.DisjointTimerQueries to enable GPU frametime measurement in STAT UNIT on device.

Gameplay and Framework

  • New: In the Input section of the Project Settings you can now indicate that the mouse should simulate touch behavior.
  • This means only one set of events needs to be mapped for simple touch games being played on PC. New: Added Audio Settings section of Project Settings in which the Default Sound Class and Default Base Sound Mix can be specified.
  • New: Splitscreen options added to Maps & Modes section of Project Settings.
  • New: Added path simplification to path following component using visibility tests, to skip some irrelevant path points. It's disabled by default.
  • New: Added landscape collision data cooking. Cooked landscapes will now create collision objects from a binary stream of cooked data, which improves level streaming performance.
  • New: Text Render Actors now generate and cache static vertex and index buffers.
  • Improved the way Morph Targets calculated their morphed normal.Fixed the lack of feedback if a module fails to load due to a lack of compatibility. An error message will now be displayed.
  • Fixed editor-only sprites being loaded while cooking.
  • Fixed movement components to correctly handle analog input.
  • Fixed a crash in material indices and LOD mapping indices.
  • Fixed Async package loading no longer allows objects to be post-loaded before they are pre-loaded.
  • Fixed the example device profile selection plugin requirement to launch UE4.

Fixed Always Loaded levels to be flagged as Should be Visible by default. Networking

  • General
    • New: Character Movement Component movement mode is now replicated. 
    • New: Launch Character can now be simulated client side for non-locally controlled characters.
    • New: The setting Only Relevant to Owner is now available to Blueprints.
    • Improved character movement on moving platforms for remote network clients and for simulated proxies.
  • PlayStation 4
    • Socket subsystem support for UDPP2P sockets.

Animation

  • New: Added support for reference pose scale
  • Fixed AnimMontages to no longer allow branch points to overlap.

Physics

  • New: PhysX and APEX have been upgraded to 3.3.1 and 1.3.1
    • In some cases it may be necessary to recook physics data.
    • This upgrade fixes some physics related bugs. See NVIDIA release notes for more info.
  • New: Maximum angular velocity of a BodyInstance has been exposed in code and blueprints.
  • New: Pawns will now collide with destructible mesh. Large and small chunks can be set to get different interaction with pawn.
  • New: Breakable joints are now available for ragdolls and physics assets.
  • New: Support for cloth on ragdolls and physics assets.
  • Updated soft physics constraints to use body mass implicitly.
  • Updated the Async physics scene to be disabled by default.
    • This feature is somewhat advanced and uses more memory. As such it's been turned off by default and can be changed in the Edit Menu -> Project Settings -> Physics -> Simulation category.
    • If Async scene is disabled all actors are placed in the regular scene regardless of the Enable Async flag on the Actor.
  • Updated the player Pawn to no longer interact with the Async scene by default.
  • Fixed overlap event related bugs. Correct behavior related to overlap flags may break old content relying on bad behavior.
    • A collision between two objects can be set to Ignore, Overlap, or Blocking.
    • An overlap event will occur if two objects Overlap and both have the Generate Overlap Events flag set to true.
    •  A bug in the code made it so that in certain situations an overlap would trigger even if one of the overlapping objects had the flag set to false.
    • This means overlap events that were previously firing could now stop due to improper flagging.
  • Fixed Overlap events to only fire when collision is marked as overlap.
    • There was a bug where in some cases an overlap event would fire even if a collision was marked as Blocking.
  • Fixed Hit Events now require both objects to opt in by enabling Simulation Generates Hit Events.

Audio

  • New: Added Enable Sound option to PIE settings.
  • New: Added Add Input button to appropriate Sound Nodes.
  • Improved DialogueWaves so they can be played immediately after creation/modification.
  • Limited the Random Sound node choices in Play in Editor if Preselect at Level Load setting is used.

Core

  • New: UnrealBuildTool can now be configured using an XML configuration file!
    • It looks for the BuildConfiguration.xml file in two possible locations (Engine/Saved/UnrealBuildTool and My Documnets/Unreal Engine/UnrealBuildTool). The first one should be used for branch/engine configurations, while the second one is for personal settings. Notice that environmental variables settings will be overridden by those values if set.
    • The syntax is described in \Engine\Programs\UnrealBuildTool\BuildConfiguration.xml.
  • New: Added support for cross-compiling Linux client.
  • New: All platform memory and allocator memory statistics are now available through the stats system.
  • New: Added metadata for threads and thread group for the stats system.
  • New: Improved save format of the stats files (not fully utilized yet).
  • New: [Windows] Shell integration now supports multiple engine versions side by side.
    • To add an engine installation, or to set up shell extensions and file associations for the first time, run UnrealVersionSelector from each Engine\Binaries\Win64 directory.
    • Each .uproject file can be configured to open with a different engine installation.
  • New: The -UTF8Output command line argument can be passed to any program using the engine to force stdout into UTF-8 mode.
    • Use this if you are getting question marks in your Unicode strings being logged.
  • Improvements to the Visual Studio accessor (particularly for Express).
  • Fixed InstallVisualizers.bat complaining about no version of Visual Studio installed, when only Visual studio 2010 is missing.
  • Fixed UnrealBuildTool to raise an error early about attempting to build the Editor in a Win32 configuration.
  • Fixed the size of the internationalization libraries. 
    • Internationalization now loads its data from a binary file rather than from a static library.

Platforms

  • Android
    • Improved Android device detection. It is now threaded and more efficient in general.
    • Fixed Launch showing texture formats not supported by the connected Android devices. It will now only display texture formats that are supported by the connected Android devices.
  • Mac
    • New: Packaging on Mac now creates a self-contained app bundle.
    • New: Mac UE4 now uses our crash reporter.
    • New: Added ability to use Mono installed on Mac instead of the one bundled with the engine.
    • New: Added support to UBT for generating dSYM debugging symbol bundles on Mac OS X.
    • New: Implemented text input method system for Mac platform.
      • This uses the native Cocoa InputMethod services on Mac OS X to support the different input methods.
    • Simplified Xcode project and improved code indexing in Xcode.
  • iOS
    • New: Added a device enumeration for iPad mini with retina display.
    • New: Added experimental support for showing the Game Center leaderboard in-app (EXPERIMENTAL_ShowGameCenterLeaderboard)
    • New: Added -compress=best command line for Shipping iOS via Windows workflow builds
  • Various improvements and bug fixes to iAd support.
    • Fixed some threading issues with IOS gamecenter.
  • PlayStation 4
    • New: Added PlayGo Support.
    • New: Implemented Achievements.
    • New: Added support for shader scratch memory.
      • Enable with r.ShaderScratchBuffers=1 in the ConsoleVariables.ini file.
    • New: HZB occlusion culling now supported on PS4.
    • Added detection of render target/shader mismatches at runtime.
    • Updated render target output formats to be set through ModifyCompilationEnvironment rather than using the SLOT defines in the shader files.
  • Xbox One
    • New: Added 10:10:10 final color output on Xbox One. This allows us to remove quantization noise in tonemapper, which is faster.
    • New: Screen safe area is now implemented.
    • New: Implemented Achievements.
    • Enabled optimizations for all pixel shaders.
    • Improved XAudio2 implementation to be more feature complete.
    • Fixed various GPU hangs.

UnrealVS (Visual Studio Extension)

  • New: Command Line box now automatically adds the game project file for 'Game' projects in UE4.sln.
  • New: Visual Studio’s Customize feature now supports UnrealVS’ tool bar commands.
  • New: UnrealVS Quick Build menu now allows easy access to building in any configuration without changing the config in the IDE.
  • New: Added logging to help debugging.
  • Changed code projects for game-specific editor builds (e.g. MyGame “Debug Editor|Win64”) no longer need the project added to the command line in UnrealVS.
    • Previously the UnrealVS command line args to debug the editor for the example above would have been “MyGame.uproject ”
    • The command line in UnrealVS for the example above is now just “”, UnrealVS adds the project name automatically when the project is run.
    • The project name is still passed to the editor executable but UnrealVS now adds it automatically and does not display it.
    • Existing command lines will work as before but will display differently.
    • If no project name is supplied, UnrealVS should strip it from the displayed command line and popup a warning dialog.
  • Fixed Startup Project selector and Batch Build to correctly recognize executable projects on non-Windows platforms.

API Changes

Gameplay and Framework

  • Added bForceRescan parameter to IAssetRegistry::ScanPathsSynchronous.  If true, path scanning not ignore paths that have already been scanned.
  • Added GetDerivedClasses to IAssetRegistry. This is just a wrapper function for the pre-existing GetSubClasses.
  • Added a flag to disable blue onscreen messages in DrawTransition in GameViewportClient.
  • Added ability for Blueprints to use GetOverlapInfos.
  • Added OnClosed delegate as a parameter to IOnlineExternalUI::ShowLoginUI.
  • Added a flag to disable blue onscreen messages in DrawTransition in GameViewportClient.
  • Added support for loading an ObjectLibrary from multiple paths, and a constructor for easily creating an ObjectLibrary in memory.
  • Improved the support for Blueprints in an ObjectLibrary when calling UObject::CreateLibrary. If the bHasBlueprintClasses is true it will check the type for you.
  • Renamed FGameWorldContext to FLocalPlayerContext, as it binds to a player and not a world.
  • Renamed GetWorldContextFrom functions returning a World Context reference to GetWorldContextFrom*Checked. 
    • GetWorldContextFrom now returns a pointer and returns NULL if no WorldContext exists for the supplied input.

Removed FSimpleReticle from AHUD. You can add this to your subclass if desired.

  • Removed unused lifecycle event OnEngineHasLoaded from AGameMode.
  • Removed SGameWidget class as it is no longer necessary
  • Removed PendingLevelPlayerControllerClassName from GameEngine and replaced it with PendingLevelPlayerControllerClass in LocalPlayer.
    • This makes it work like the other PlayerController references, and avoids a confusing warning on every map join
  • Changed AActor::CalcCamera to consider whether a component is activated when trying to find the camera component to use (allowing selection between multiple camera components by managing activation).
  • Made SKismetLinearExpression more permissive in what it will show as a function (now tries to do something with any pure K2Node with one output).
  • ADebugCameraController and ADebugCameraHUD can now be extended and accessed outside of the Engine module.

Editor and Tools

  • Slate drag drop operations now use RTTI that is compatible with inheritance.  This allows DragDrop::IsTypeMatch to work properly allowing for static casting to any level of the inheritance hierarchy.
    • Please replace previous instances of GetTypeId in FDragDropOperation derivatives with DRAG_DROP_OPERATOR_TYPE.
    • FSlateApplication::GetDragDropReflector() is now obsolete and has been removed.
  • Removed unused Linked Obj Editor framework

Platforms

  • Mac
    • The minimum supported Mac OS X version is now 10.9.2.
      • We no longer support OS X versions prior to 10.9.2 due to OpenGL driver bugs & feature deficiencies that won't be fixed in earlier versions.
    • Mac build is now using OS X 10.9 SDK, code and compile settings were updated to be compatible with Xcode 5.1.
    • Config files on were moved to ~/Library/Preferences, logs to ~/Library/Logs, all other files from Saved folders are now in ~/Library/Application Support/Epic.
  • PlayStation 4
    • Specification of TitleID, package PassCode, and other data should now be in a text file in your project directory under Build/PS4/PackagingDataPS4.txt.  This replaces the old metadata system in UBT.   Examples can be found in ShooterGame, and the base Engine/BuildPS4 directories.
  • Xbox One
    • Code updated to build against March 2014 XDK.
    • Deprecated functions (D3DAllocateGraphicsMemory, etc) have been removed/replaced.

Core

  • FPlatformString::Stricmp now converts to lower case to match std::stricmp.
    • This may result in slightly different sorting orders if your strings only differ by underscores or any other character between the ASCII lower and upper case ranges.
  • Warnings are now issued during bad string conversions (e.g. Unicode characters which can’t be represented as ASCII).
    • You may notice extra debug text in the output log if this happens often in your code
  • TArray::Append and TArray::Insert are now overloaded to allow the insertion of multiple elements at once.
  • TSet is now accessed through operator [] instead of operator ().
  • You can use now TObjectRange in the same way you use TobjectIterator for when you want to use C++11’s ranged-for syntax.
    • Example: for (UClass* Cls : TObjectRange<UClass>())
  • Removed unused property flag CPF_AlwaysInit.
  • Removed unused struct flag STRUCT_Transient.
  • Added support for saving and loading FVector4 to config files using GConfig->SetVector4 and GConfig->GetVector4
  • Licensees using cultures (locales) other than the following languages will need to rebuild ICU's data to include that locale data:
    • German – de, English – en, Spanish – es, French – fr, Hindi – hi, Italian – it, Japanese – ja, Korean – ko, Polish – pl, Portuguese – pt, Russian – ru, Swedish – sv, Chinese – zh
  • DrawDebugHelpers: added support for displaying a Histogram of float values. Use FDebugFloatHistory to record samples, and DrawDebugFloatHistory to draw in game. Also available in blueprints.

Networking

  • Modified PreReplicatedRemove, PostReplicatedAdd, and PostReplicatedChange functions on FFastArraySerializerItem to also have a parameter representing the owning array serializer.
  • Exposed bOnlyRelevantToOwner setting to blueprints.

Animation

  • New: AnimInstance now has a CalculateDirection function for BlendSpaces.