Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon
11. July 2017

Unreal Engine just released a new preview release, version 4.17 preview 1.  Of course this release is a preview, meaning you should expect flaws and probably shouldn’t use it in a production environment.  While the 4.17 release doesn’t have any standout new features, it is absolutely packed with new functionality and improvements.

Details of the release from the Unreal forums:

  • Animation/Physics Updates:
    • Baking out materials on StaticMesh instances is now supported.
      • Support for baking out materials on a Static or Skeletal Mesh asset is also added as an experimental feature (requires enabling the Asset Material Baking under Experimental settings).
    • New physics optimizations by having PhysX tasks batched together to reduce overhead. This can be tuned with p.BatchPhysXTasksSize. Bigger batch sizes reduce per-task overhead at the cost of less parallelism.
    • The ‘Additional Meshes’ feature for previewing modular meshes now uses the ‘Copy Pose’ node instead of ‘MasterPose’. This means it can support meshes that do not share a Skeleton, and bones are copied by name.
    • ProceduralMeshComponent now supports Async PhysX Cooking, avoiding hitches at runtime.
    • Runtime PhysX Cooking can be turned on and off as a plugin instead of an engine recompile.
    • The animation Asset Browser now uses folder filters.
    • Added a MakeDynamicAdditive node to animBlueprints.
    • Two Bone IK improvements including a ‘NoTwist’ option and an ‘Enable Debug Draw’ option.
    • (Experimental) Animation Blueprints can now be live edited and recompiled while running on a PIE/SIE instance. When choosing an instance to debug in the level, the viewport is now 'connected' to that instance and displays a mirror of the instance's animation state.
    • (Experimental) Clothing Tools improvements.
      • Refactor of clothing paint tool framework to create a more extensible editor.
      • Clothing Masks are supported. This allows multiple masks to be defined and swapped between during development while testing different configurations.
      • Reworked tools framework for cloth painter and added new tools.
  • Audio Updates:
    • Audio Streaming is no longer experimental, and contains a number of fixes.
    • (Early Access) The new Unreal Audio engine now supports Android, PS4, Xbox One, iOS, and Mac OS.
  • Console Updates:
    • New features and improvements are coming for development on XBox One, Nintendo Switch, and PS4. Since console code is not available for the Previews, details will be provided with the final 4.17 release.
  • Core Updates:
    • Plugins may now declare dependencies on other plugins, allowing the engine to automatically enable and load anything they require. Dependencies can be listed in a .uplugin using with the same syntax as .uproject files.
    • UE4 now includes support for the PVS-Studio static analyzer (available separately). To enable static analysis with PVS-Studio, append -StaticAnalyzer=PVSStudio to the UnrealBuildTool command line.
  • Gameplay/Scripting Updates:
    • The Asset Manager now has Blueprint access and is ready for production. The Asset Manager is a global object that can be used to discover, load, and audit Maps and game-specific asset types in the editor or at runtime. It provides a framework to make it easier to create things like Quests, Weapons, or Heroes and load them on demand, and can also be used to set up cook and chunk rules when packaging and releasing your game. The Asset Manager tab in Project Settings can be used to set up the rules for your game. Primary Asset Types that are scanned by the Asset Manager can be queried at runtime before they are loaded, and can then be asynchronously loaded on demand. To use the asset manager, call functions on the native UAssetManager class (which can be subclassed for your game), or call Blueprint functions in the Asset Manager category such as Async Load Primary Asset.
    • A new Orphan Pin feature has been added to help avoid mysterious content breakage as the result of pin removals. Any time a pin that is in use has been removed from a node, instead of that pin quietly vanishing, breaking all connections, the pin will now be retained as an Orphan, and an error (if it is connected) or a warning (if it is an input pin with a non-default value) will be emitted.
    • Native member variables can now make use of uproperty markup to be exposed to Blueprints via ufunction accessors even if the property had been previously exposed directly using BlueprintReadOnly or BlueprintReadWrite markup.
  • Mobile Updates:
    • Translucent objects marked as “Mobile Separate Translucency” will be rendered separately after Bloom and Depth Of Field. This option can be found in Translucency section of Material Editor.
    • Executable sizes have been reduced on iOS and Android. Further mobile executable size reductions are coming in 4.18.
      • For iOS we now disable exceptions for ObjectiveC by default, saving around 6.5 MB from the executable size.
      • For Android we have enabled -ICF flag for android shipping builds. This saves around 5 MB from the Engine’s .so size (uncompressed) and 1.2 MB inside the apk file (compressed).
    • Android applications built with OpenGL ES3.1 or Vulkan will now use native sRGB sampling instead of emulating it. You can expect better texture brightness.
    • The Android toolchain now supports NDK 14b with NDK 15 as experimental.
      • Google Play Services upgraded to 9.8.0
      • Gradle is supported as an experimental build option. This is enabled per project in the Android Project Settings with the “Enable Gradle instead of Ant [Experimental]” checkbox.
    • Android support for ultra-wide aspect ratios. By default maximum supported screen aspect ratio is 2.1 (width / height). Android will automatically letterbox application on devices with bigger aspect ratio. Default aspect ratio can be changed in Android section of Project Settings.
  • Rendering Updates:
    • A new Composure Compositing Plugin is available to help with real-time compositing pipelines. (note, this currently causes the project to crash in Preview 1) It includes many features, such as:
      • Binding mechanism between a Player Controller and a Texture Render Target 2D to replace the engine default’s video game rendering pipeline by the project specific C++ or Blueprint implemented compositing pipeline output
      • Parametric lens distortion
      • UVMap pass to distort textures according UV displacement map and UV matrices
      • Engine tonemapper independent pass
      • Experimental alpha channel support in Engine’s post processing chain
      • Post process material domain and their alpha channel output support in the Blueprint canvas drawing API
      • And more…
    • (Experimental) Shaders are now supported in Plugins and Projects due to changes made to the shader file directory structure and a new file extension.
      • USH files are used for shader header files that do not contain a shader entry point and that should only be included by other shader files
      • USF files would be the only non includable files that have the shader entry points.
      • Shader files have been split under public and private folders. The public API should be placed in files under a public folder, while the implementations are placed in the private folder.
      • Plugins & projects modules that have global shaders requires PostConfigInit loading phase.
      • Project and plugins can include other plugin’s USH file in Public directory freely.
      • USF files should be only in Private directory.
      • All calls to IMPLEMENT_SHADER_TYPE, should now include the full path of the USF shader file (e.g. “/Engine/Private/Foo.usf” or “/Plugin/FooBar/Private/MyComputeShader.usf”).
      • C++ Generated files should be mapped within the /Engine/Generated/ virtual directory.
      • Shaders/ directory requires at least a Private/ or Public/ directory, and Generated/ directory shall not exist.
    • Bent Normal Maps are an additional piece of information that can come when calculating ambient occlusion. With this information we can do multiple things to improve indirect lighting. Most traditionally bent normals are used with AO to improve diffuse indirect and make it look closer to GI. We also use this information in a powerful but less traditional way, for Reflection Occlusion (occlusion for specular indirect light). This can reduce specular light leaking significantly, especially when SSR data is not available.
    • We have added several Blueprint and Material nodes to generate point locations using the Sobol quasi-random sequence. The Sobol sequence can generate points with a large number of independent dimensions.
    • We have added Texture-based Importance Sampling Blueprint nodes to place points according to a given density function. Blueprint nodes allow flexible 2D placement based using a texture to drive the placement. The Make Importance Texture Blueprint node processes the texture for use, and the Importance Sample Blueprint node gives point locations driven by the provided density.
  • Sequencer Updates:
    • Sequencer is now more tightly integrated with the World Outliner. The World Outliner shows which level sequences an actor is bound in. It also displays actors spawned by sequencer so that you can access all actors bound by sequencer in one location. There’s also a new filter in the “View Options” to “Show Only Sequencer Actors”.
    • There’s a new toggle which helps you divide up your work so that you can be confident in whether a change to a property will affect a single shot or propagate to other shots. When “Allow Sequencer Edits Only” is enabled, any edits to properties will automatically create a track if it doesn’t exist and/or a keyframe. These changes will be isolated to the particular shot you’re working on and won’t leak into others. When “Allow Level Edits Only” is enabled, you’ll be editing default properties on objects. Properties that already have tracks in sequencer will be disabled in the details panel when you want to make global changes that affect all shots.
    • Improvements to blending, including automatic easing between blendable sections, per-channel animation of transforms, and more.
    • Auto-key has been simplified to be a single toggleable state.
  • Tools Updates:
    • Slate has a new clipping system that properly supports complex layered clipping quads with arbitrary transforms. Additionally widgets can now individually opt into clipping their children. More details here.
    • UI improvements to the Materials and Sections panels of the Static and Skeletal Mesh Editors.
    • In VR Mode, selecting a camera or actor with a camera now gives an in-world preview of what that camera sees.
  • VR Updates:
    • Spectator screens are now supported on the Oculus and HTC Vive.
    • Stereo layers have been unified across all platforms, allowing developers to use them agnostically across any platform without worrying about functional differences between platforms.
    • (Experimental) Google Tango AR platform support is now available as a plugin.

Unreal Engine 4.17 Preview 1 can be installed using the Epic Game Launcher.

GameDev News

11. July 2017

Announced in beta a few months back, Unity 2017.1 is finally available.  There are some pretty massive new feautres in this release such as Cinemachine (advanced camera controls for cutscenes), Timeline (for sequencing) and new post-processing filters.  Unity Collaborate, the Unity team asset system, is now out of beta in this release.   The release also sees improvements in the 2D realm, with the new 2D Sprite Atlas replacing Sprite Packer.

For programmers, there are some extremely welcome additions in 2017.1 as well.  Unity now supports Visual Studio 2017 Community as part of the install (instead of 2015).  Perhaps most importantly and over due... C# 6 is finally here!  Sort of.  This release includes experimental support for C#6 and .NET 4.6.

A summary of the major new features from the Unity blog.

Artists & Designers: Brand new tools for storytelling and in-game sequences

Unity 2017.1 introduces new ways artists & designers can create stunning cinematic content, compose artistic camera shots and tell better visual stories with the Timeline, Cinemachine and Post-processing tools.

Timeline is a powerful new visual tool that allows you to create cinematic content such as cutscenes and trailers, gameplay sequences, and much more.

Cinemachine is an advanced camera system that enables you to compose your shots like a movie director from within Unity, without any code, and ushers in the era of procedural cinematography.

Post-processing lets you easily apply realistic filters to scenes using film industry terminology, controls, and colour space formats to create high quality visuals for more dramatic and realistic looks, so you can tell a better visual story.

Efficiency: collaboration, live-ops analytics, tools

We’re announcing Unity Teams, a set of features and solutions that simplifies the way creators work together, which includes Collaborate (now out of beta) and Cloud Build.

Our live-ops Analytics introduces new, easier ways to understand your users and dynamically react and adjust your games without having to redeploy.

On top of that, there are many productivity updates to the Editor, including improvements to FBX import, animation workflows, 2D functionality, working with assets bundles and Visual Studio integration.

Graphics & Platforms:  improvements across the board

There are a number of advancements in the areas of Particle Systems and the Progressive Lightmapper offering more options to achieve your artistic vision and control performance. Various platforms get rendering boost options with Deferred Rendering on iOS and NVIDIA VRWorks on PC.

Those are just the highlights of Unity 2017.1, read on to get the full list and juicy details!

This is only scratching the surface of new functionality in this release.  Be sure to read the full blog post for more details.  Unity 2017.1 is available for download here.

GameDev News

10. July 2017

Unity have announced that as of Unity 2017.3 Unity Editor and Player will no longer support the Direct X 9 renderer.  Why you may ask?  Unity have posted a blog explaining this:

Due to diminishing hardware numbers and the loss of platform support from Microsoft, we have come to the conclusion that continued support of the DirectX 9 API is no longer feasible and is working against us when it comes to developing new features in Unity. It has become increasingly difficult to support and maintain feature parity across several DirectX API versions (9, 11, and 12).

With the rise of new graphics APIs, we feel that Unity continues to have excellent coverage of the hardware and API choices available now and in the future.

What does this mean in practical terms?  Once Unity 2017.3 is released, that version and future version will no longer be able to target Window XP machines.  This is becoming increasingly less of an issue, but there are still a number of users working on Window XP.  Here are the current OS breakdown for Windows users according to the most recent Steam Device survey.


At this point we are talking > 1% of the PC market.  All told, a fairly reasonable cut-off in my opinion.  Even with Direct X 9 support going away, Windows XP machines can still be supported via the OpenGL renderer.

GameDev News

5. July 2017

There are a wealth of great add-ons for the Godot game engine, such as Add_Primitives, which adds several geometric primitives to the Godot editor, such as capsules, spheres and more.  This quick tutorial (including a video) goes step by step through the process of enabling an add-on in your Godot project.

First, you need to download the add-on you wish to enable, that or git clone it.  In this tutorial we are going to simply download it.  This link will download the add_primitives add-on zip.

Next, create a project.  Add-on’s are now located at the project level, not in the %APPDATA% folder.  In the project directory, create a folder called Addons.  In that folder, extract the zip file you downloaded earlier.  Next be sure to rename it from add_primitives-master to add_primitives, so the folder name matches the add-on name.  If you cloned using git, you wont have to perform this step.

Now load Godot.  Select the Scene Menu->Project Settings.


Switch to the Plugins tab


Next change Status to Active.


And done!  If you are using the Add_Primitives add-on from this example, you should now see an additional icon in the 3D view:


The Add-on will also be shown in your project view:


You can watch the above process in video form below.


5. July 2017

Blend4Web is a technology that enables you to create games or applications entirely in Blender but publish them to the web, powered by WebGL.  The 17.06 release brings several new features including support for most Blender constraints, experimental AR support, a new camera logic node as well as new lighting and reflection features.

Details of the release from the release notes:B4W

New Features
  • Support for essential Blender constraints.

    Copy Location, Copy Rotation, Copy Transforms and Track To are available to use now. Also the following API methods have been added: append_copy_loc, append_copy_rot and append_copy_trans.

  • Experimental Augmented Reality support.

    Check out the AR application to get the look of the feature we’re going to improve much in our next releases. The application can be found in the apps_dev/AR folder and is also available in Project Manager.

  • New logic node Set Camera Limits.

    This node allows changing limits of the camera. Each limit can be set separately. Only limits available for current move style of the camera are applied after node execution.

  • Improved AA rendering.

    Scheme of rendering post-processing effects has been changed. It increases performance and quality of the anti-aliasing.

  • New experimental environment lighting algorithm for scenes with Cycles materials.

    Materials with Glossy BSDF and Diffuse BSDF nodes automatically enable environment lighting, which takes into account roughness of the glossy component.

    New algorithm requires WebGL 2.0 or WebGL 1.0 with available extension EXT_shader_texture_lod for correct work.

  • Optimized rendering of reflections.

    Cube reflections for scenes with no reflexible objects has been optimized. Now in such scenes the sky is used for reflections directly without redrawing for each individual reflective object.

  • Support for camera loading.

    From now on it’s possible to load additional cameras to the scene using dynamic loading feature.

  • Physics API improvements.

    Added set_angular_velocity. It allows to set object’s angular velocity.

  • The “pivot” setting in the “params” parameter for the target_setup method has been made optional.
  • The Material API was improved to provide more clear messages in the browser console in case of errors. Also two methods have been added: is_node_material and is_water_material.
  • Sequential video fallback for video textures isn’t applied anymore in MS Edge due to the native support for HTMLVideoElement.
  • Fixed incorrect rendering of materials with normal mapping.
  • Fixed VR code snipped.
  • Fixed keyboard events when the engine is working inside an iframe.
  • MSAA is disabled from now on for Adreno 4xx/5xx GPUs to prevent some rendering bugs.
  • Fixed translating/rotating of non-active cameras.
  • Fixed getting coordinates for mouse/touch events via the get_coords_x and get_coords_y methods.
  • Fixed bug with looped speakers that couldn’t be stopped in Firefox after calling the stop and the play methods sequentially.
  • Fixed sky redrawing after world node material parameters change.
  • Removed auto applying modifiers for objects with the Array modifier.
  • Fixed rendering artifacts for the transparent node materials in Firefox under Linux.
  • Fixed applying a node material animation after material inheritance.
  • Workers were disabled for physics simulation in IE11 and MS Edge to improve physics stability.

GameDev News

GFS On YouTube

See More Tutorials on!

Month List