Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon
24. October 2016


The Unity game engine just received another patch, this one 5.4.2p1.  The contents of this patch include:

  • Graphics: When graphics jobs are enabled added an Assert to detect recursion e.g. a graphics job runs inside another graphics jobs.
  • Unity IAP: Support transaction receipt logging for all store platforms.
  • VR: Update Oculus to version 1.9 .
  • (823935) - 2D: Fixed an issue with UV rounding errors when using the OverrideGeometry method on sprites.
  • (none) - Android: Added "Mute Other Audio Sources" option to Android player settings in editor.
  • (825442) - Android: Buildpipe - Fixed splitting files for OBB.
  • (807983) - Android: By default lower volume of the background audio instead of muting it.
  • (826201) - Android: Return internal temporary cache and persistent data paths when external paths are unavailable.
  • (822232) - Animation: Fixed a bug where deactivating a GameObject with an attached Animator might cause a crash.
  • (832996) - D3D11: Take into account ColorSpace (linear/gamma) when capturing screenshots.
  • (819770) - Editor: Fixed a crash when deleting GameObject with ScrollView component.
  • (819900) - Editor: Fixed drag'n'drop a shader onto a material not setting the correct shader keywords but choosing the shader from the material UI shader drop down would set them correctly.
  • (815720) - Editor: TargetInvocationException error no longer appears when importing Windows Store Apps plugins.
  • (828380) - Graphics: Fixed GPU instancing not working with procedurally generated meshes.
  • (829694) - Graphics: Prevent RendererScene modifications from within OnPreRender callbacks, similar to other callbacks.
  • (834633) - IL2CPP: Use the no-strict-overflow flag to compile generated C++ code on gcc and clang based compilers so that we match the integer overflow behavior of C#.
  • (none) - iOS: Fixed run loop mode warning on iOS 10 devices.
  • (819351) - MAC OS X: Fixed Codesigning for Editor Build to prevent firewall from asking multiple times for permission.
  • (819813) - OpenGL: Prevent Windows editor crash when opening old project that had legacy OpenGL selected.
  • (833783) - Rendering: Fixed incorrect batching of Renderers with different PropertyBlocks.
  • (819962) - Scripting: Fixed TransformDirection and InverseTransformDirection operations being affected by scale.
  • (766144) - Scripting: Fixed a crash on Invoke(null, …).
  • (833425) - Shaders: Fixed a potential crash when calling GetShaderSettingsForPlatform on Windows.
  • (720704) - Shaders: Fixed some cases of inout struct variables with COLOR semantic members wrongly translating into GLES2.0.
  • (828454) - Shaders: Added fixes to tessellation shader compilation on OpenGL and OpenGL ES.
  • (none) - Tizen: Added Showing loading indicator in Tizen.
  • (833452) - tvOS: Added support for top shelf wide image.
  • (none) - UnityAnalytics: Fixed an invalid userId issue on WebGL.
  • (825429) - UnityWebRequest: Allow setting Accept-Encoding header at users own risk.
  • (775178) - WebGL: UnityWebRequest.downloadProgress now returns the actual progress as opposed to 0.
  • (none) - WebGL: Fixed Code Blob memory leak.
  • (829648) - Windows Store Apps: Location services can be enabled or disabled while the app is still running.
  • (835218) - Windows Store Apps: Player preferences are no longer lost between game sessions.
  • (none) - Windows: Added safety check when receive new window size with zero values, make minimum value 1, otherwise functions like CreateDepthStencilView will fail.

As always the patch is available for download on Windows and Mac right here.

GameDev News

21. October 2016


A new preview release of Unreal Engine is now available, version 4.14.  Being a preview release means that you probably shouldn’t use this release in production and to expect some issues.  This release is loaded with new functionality, the details are listed below.  As always, you can download the 4.14 preview release using the Epic Game Launcher.


  • Rendering Updates:
    • A Forward Shading Renderer for VR (Experimental) that supports high-quality lighting features, enables Multisample Anti-Aliasing, and is faster than the Deferred Renderer in select projects.
      • To use this, enable ‘Forward Shading’ in the Rendering Project settings and restart the editor.
      • To use MSAA, set the default Anti-Aliasing Method in the Rendering Project settings.
      • DBuffer Decals, Dynamic shadows and Capsule shadows do not handle MSAA properly yet and may exhibit artifacts along object edges.
      • Not yet supported in the Forward Renderer:
        • Screen space techniques (SSR, SSAO, Contact Shadows)
        • Shadow casting Movable Lights
        • Dynamically shadowed translucency
        • Translucency receiving environment shadows from a Stationary light
        • Light functions and IES profiles
    • Automatic LOD generation for static meshes can now be accomplished without middleware plugins.
      • The high level settings for controlling the generated LODs are in the static mesh viewer under LOD Settings.
      • “LOD Group” provides a list of presets. These can be changed per project in BaseEngine.ini under [StaticMeshLODSettings]. The use of LOD groups is suggested.
      • If modifying details of auto generation for each LOD, they can be found under Reduction Settings.
    • Reflection Capture lightmap mixing improvements.
      • The engine mixes the indirect specular from the Reflection Capture with indirect diffuse from lightmaps. This helps to reduce leaking.
      • Lightmap mixing is no longer done on very smooth surfaces.
      • Reflection Captures and SSR match much better and it's harder to spot transitions.
      • This affects existing content - in cases where you had reflection leaking on smooth surfaces, that leaking will be much more apparent. To solve this, place additional reflection probes to reduce the leaking. Levels should have one large spherical capture at a minimum. You can also revert to the old lightmap mixing behavior with a rendering project setting: "Reduce lightmap mixing on smooth surfaces"
    • The Contact Shadows feature helps provide sharp detailed shadows at the contact point of geometry.
      • You can enable these by setting the Contact Shadow Length property. This controls the length of the ray cast in screen space where 1 is all the way across the screen. Large values can degrade quality and performance so try and keep the length to the minimum that achieves your desired look.
    • A Live GPU Profiler is available which provides per-frame stats for the major rendering categories. To use it, enter the console command: stat gpu.
      • The GPU stats can be recorded to a file when the title is running for analysis later. As with existing stats, you can use the console commands stat startfile and stat stopfile to record the stats to a ue4stats file, and then visualize them by opening the file in the Unreal Frontend tool.
    • The new Vector Noise material graph node adds several functions with 3D or 4D vector results. Due to the run-time expense of these functions, it is recommended that once a look is developed with them, all or part of the computation be baked into a texture using the Draw Material to Render Target Blueprint feature
    • NVIDIA Ansel support is now exposed as a plugin. Once you have enabled the plugin you can access Ansel in a standalone game session. Please read the included Ansel documentation for instructions on how to whitelist your in-development application.
    • A few new Material Graph Nodes have been added to the graph editor. Each is intended to improve workflow and increase readability.
      • GetMaterialAttributes - This node is a compact replacement for BreakMaterialAttributes
      • SetMaterialAttributes - This node is a compact replacement for MakeMaterialAttributes
      • BlendMaterialAttributes - This is a new node to allow easier blending of Material Attributes structures.
  • Framework Updates:
    • Animation Tools have been split into separate asset editors rather than using one editor with multiple modes. Functionality that is common to each of the editors is now generally found in the viewport.
    • Default Post-Process Animation Blueprint allows you to assign an Animation Blueprint to a Skeletal Mesh that will always be run after any Animation Blueprint assigned in the component. This allows for dynamics, controllers, IK or any other anim blueprint feature to be related to a mesh and not have to be duplicated in every animation blueprint intended to be used on that mesh.
    • The engine is updated to use PhysX 3.4, which enables a lot of features which will be exposed over time. Current available improvements: kinematic objects update faster, CCD support for kinematic objects, and faster convex hull cooking.
    • Vehicle Improvements have been made with wheel forces and the addition of SimpleWheeledVehicleMovementComponent.
    • Skeletal Mesh to Static Mesh Conversion lets you right-click actor(s) in the level viewport and convert their current state to a new Static Mesh asset.
    • Simplygon SDK integration has been updated to version 8.1.
    • Cloth Skinning improvements have been made by calculating our own mesh-to-mesh skinning data for clothing within the engine rather than using exported render data. This resolves issues where normals could sometimes appear incorrect, and there is no longer a restriction to one UV channel.
    • Streamlined GameMode and GameState Classes by adding GameModeBase and GameStateBase classes as parents of existing classes GameMode and GameState. Core features needed by all games are now in the Base classes, while legacy and shooter-specific features are in the GameMode/GameState
    • Improved Cable Component by adding simple collision, stiffness setting, sockets at each end, and the ability to set either end as "free".
    • Improved PoseDriver animation node by allowing it to drive bone transforms as well as Morph Targets, adding an option to use translation of the driving bone, and showing more information in debug drawing.
    • Virtual Bones can be added to a skeleton, which can be used to make it easier to retarget or change reference frames for controllers.
    • Child Anim Montages can be created based on a parent Montage, allowing you to replace animation clips while maintaining overall timing.
  • Core Updates:
    • Cooked builds can now use a completely new Event Driven Loader (Experimental) which is far more efficient than the old streaming code. Games using the EDL should see the load times drop by about 50%. The Event Driven Loader comes with an unified code path for loading assets. This means that all packages will be loaded using the new async path instead of the old blocking path. EDL is currently an experimental feature and is disabled by default but can easily be enabled through Project Settings.
  • Editor/Tools Updates:
    • Support has been added for editing TMap and TSet properties from the Details Panel.
      • Sets are similar to Array but Sets will ensure that all contained elements are unique.
      • Maps will have a key and a value and you can edit both within the details panel. Like Sets, all keys must be unique.
    • Multitouch Support in Windows has been added. Touch events will now be generated in Windows 7, 8, and 10 when using a touch screen. This will enable touch enabled games and experiences on new Windows tablets and also enables testing touch controls for mobile games without having to deploy to a target device.
    • Outlines on Fonts can be applied in UMG and Slate.
  • Network Updates:
    • Replication Performance has been improved by as much as 40% by refactoring how the engine replicates properties from the server to connected clients. It now shares the work for all types of properties (not only unconditional ones), which means the work done to check when properties have changed (and need to be sent) happens much less often.
  • Build Updates:
    • Visual Studio "15" is now supported, in addition to Visual Studio 2015. If you have multiple versions of Visual Studio installed, you can select which to use through the ‘Source Control’ section in ‘Editor Preferences..’.
  • Sequencer Updates:
    • The Camera Rig Crane has been updated to mimic the movement of a physical crane.
    • Record audio from a microphone while recording into a sequence.
    • Drag and drop files from your computer into the Media Player's viewport.
  • VR Updates:
    • Multiview Support (Experimental) for the Mobile Forward Rendering path improves performance by reducing hitches of instanced stereo. You can enable this under Project Settings > Rendering > VR > Mobile Multi-View, then re-start the editor.
  • VR Editor Updates:
    • Landscape Editing in VR can now occur using motion controllers.
    • You can instantly Reset the world's scale to its default by tapping the touchpad button while gripping the world. This makes it easy to get back to your "player's size" while editing.
  • Mobile Rendering Updates:
    • Mobile games ship with Vulkan support and can now be enabled or disabled using device profiles, with fallback to ES 3.1 and ES2
    • Custom Depth is now supported on mobile. Custom Post-process materials can now sample from SceneDepth and CustomDepth as well as SceneColor.
    • The Scene Capture Source settings that output Inverse Opacity and Depth values are now supported on mobile.
    • The Mobile Patch Utilities Blueprint library now included contains all the functionality required to allow a mobile game to download and install game contents and patches from a cloud website instead of being distributed as part of the initial download from the App Store. Both Android and iOS are supported.
  • Landscape Updates:
    • Landscape Mirror Tool now supports rotated mirroring to create diagonally-opposed multiplayer maps.
  • Platform Updates:
    • Amazon GameCircle Plugin for Kindle Fire is included. Enabling the plugin will provide access to a new Amazon GameCircle project settings panel under the Plugins category. Changes to the AndroidManifest.xml for Fire TV may be enabled here.
    • Initial Support for Android on Linux thanks to pull requests from the community. CodeWorks for Android from Nvidia for Linux is the easiest way to set up the NDK and SDK tools needed. In addition, OpenJDK 1.8 should be installed; set JAVA_HOME to point to your install. Please note Android Vulkan on Linux is not supported at this time.
    • SDK Updates for XboxOne, PS4, HTML5, MacOS 10.12, iOS/tvOS 10.0.

GameDev News

18. October 2016


Inkscape 0.92 beta was just released.  Inkscape is a popular open source vector based graphics application that was featured in my free game development tools guide.  From the WIP release notes, the new features include:


  • The new Object dialog allows to select, label, hide and lock any object in the drawing from a dialog that lists them all Spirolive
  • Selection sets make it possible to 'group' objects together regardless of document structure
  • Guides can now be locked to avoid accidental movement
  • Several new path effects have been added, among them Envelope/Perspective, Lattice Deformation, Mirror and Rotate Copies
  • There are several new extensions (e.g. a seamless pattern extension) and a new filter (colorblindness simulation) included in the release, many old extensions have been updated or got new features
  • Many SVG2 and CSS3 properties are now supported for rendering (e.g. paint-order, mix-blend-mode)
  • Spray tool and measure tool received a set of nifty new features
  • Interactive smoothing for lines created with the Pencil tool
  • BSplines (and more) are available for the Pen tool
  • Checkerboard background can be used to more easily see object transparencies
  • Open Type font functionality




This bullet list is nowhere near complete however, check the release notes for all of the new features, including animations of much of the new functionality in action.  Currently this release is only available in source form, to download the 0.92pre2 source package click here.


17. October 2016


The following is a recap of major events in the world of game development for the week ending October 17th, 2016.  I do a weekly video recapping the news available here with this week’s video embedded below.  This post is a collection of links mentioned in the recap.



The Video


13. October 2016


In the recent release of Blender 2.78 Blender received a new feature that’s quite cool, B-Bones or Bendy Bones.  This post is going to take a look at how you can use this new bone option.  So what exactly is a b-bone?  Simply put, it’s a new bone type in Blender that allows itself to be subdivided and bend as a smooth spline instead of as a single entity.  This enables you to use fewer bones to control curved meshes such as a tail or eyebrow.  Don’t worry, it will all make sense in a second.


Let’s first take a look at a regular bone and a b-bone side by side:



The bendy bone on the right still only uses two bones in the armature, but the b-bone has additional detail enabling a smoother bend and tighter controls.  Now let’s look at how you use Bendy bones in the first place.  At this point I am going to assume you already know how to use bones in Blender.  If you don’t be sure to check out either this tutorial on animation in Blender.


To use Bendy Bones, create an armature like normal.  Then head over to the armature tab:



Now under display make sure B-Bones is selected:



Now you can control each individual bone in the Bones section:



Segments determines how many sub-divisions occur within the bone:



The remaining controls enable you fine tune control over the spline controlling the sub bones.


Using Curve, Roll, Scale and Easing, we’ve got fine tune control over the way the individual bendy bones perform.



Bendy Bones are a (pun intended) flexible way of adding detail to bending bones without having to create several more bones.  There is a catch however!  Outside of Blender most game engines are going to have no idea what a Bendy bone is.  For example, you can see (by the pinching) that the Bendy Bone is ignored completely once imported into Unity.



It would be awesome if they added the ability to export B-Bones that automatically split into multiple bones.  The only alternative is to get B-Bones support added to the various game engines, a much less likely result.


If you want more information on the math behind Bendy Bones, be sure to check out this very technical post.


Video Version



AppGameKit Studio

See More Tutorials on!

Month List