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
Improved Screen Space Ambient Occlusion**
The new Screen Space Ambient Occlusion supports a much larger radius and eliminates the “halo” artifact you often see with effects like this. Performance has improved too! The new SSAO has a bit more noise than the old one, but it should hardly be noticeable. If you’ve customized your game’s SSAO settings, you might want to reset those settings to new defaults.
Top: Old SSAO, Bottom: Improved SSAO
&d=1421272718Async Framework
We started working on a new framework for asynchronous programming, which is located in the Core module. The goal is to simplify the process of writing code that executes asynchronously or in parallel. The Engine already had several mechanisms for this in place for a long time (threads, thread pool, task graph, etc.), but they required a fair amount of boilerplate code.
The first iteration of this new framework attempts to reduce the amount of boilerplate to an absolute minimum. The two most important additions are the Async<T>() function template and the TFuture<T> type. If you used Java, C# or the newer version of the C++ STL then you may already be familiar with these concepts.
Here is a quick example:
int Foo()
{
Future<int> A = Async<int>(EAsyncExecution::Thread, CalculateA);
Future<int> B = Async<int>(EAsyncExecution::Thread, CalculateB);
Future<int> C = Async<int>(EAsyncExecution::Thread, CalculateC);
// other code here
....
return A.Get() + B.Get() + C.Get();
}
Read more about this feature here.
Fast Incremental C++ Builds
UnrealBuildTool now starts up fast and checks dependencies very quickly. After the first time building a target, compiling a change should begin almost instantly.
The first time you try to build a target, we now create a “Makefile” with everything needed to build that target. It will reuse that makefile in subsequent runs. There is some new console output that shows you what’s going on.
Important workflow change: When you add new C++ source files, you now must update your Visual project files! Either add the new file to the project yourself using the IDE, or just regenerate all project files.
Read more about this new feature here