Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon

8. February 2017


Epic Games have just released Unreal Engine 4.15 preview 4.  This release is composed entirely of fixes.  From the release notes:

We have just released Preview 4 for 4.15! Thank you for your continued help in testing the 4.15 build before its official release. As a reminder, the Preview builds are for testing only, and should not be used for the active development of your project.

Fixed in Preview 4 - CL 3286799
Fixed! UE-41213 Persona - Scene Setup not working correctly
Fixed! UE-41389 Crash in Skeletal Editor due to null ActorFactory reference
Fixed! UE-41376 Pitch and LPF parameters updated incorrectly in audio mixer
Fixed! UE-41377 Audio device hot swap fails for extreme audio device ranges
Updated! UE-41450 PhysicsBall BP not updating location with Collision volumes
Fixed! UE-41497 Illegal Else Without Matching If
Fixed! UE-41474 Putty directory is missing from \Engine\Extras\ThirdPartyNotUE\ in binary builds from the Launcher
Fixed! UE-40740 Unable to escape from the truck in PlatformerGame
Fixed! UE-38060 Ribbon Trails are inconsistent in Content Examples
Fixed! UE-41353 MatineeFightScene too dark due to tonemapperfilm changes
Fixed! UE-41368 Subway Sequencer too dark due to tonemapper film changes in 4.15
Fixed! UE-41360 Incorrect camera starting position in PlatformerGame
Fixed! UE-41359 Crash in FTickFunction::RegisterTickFunction
Fixed! UE-41333 [CrashReport] UE4Editor_AssetRegistry!FAssetRegistry::GetSubClasses() [assetregistry.cpp:2803]
Fixed! UE-41339 Second Controller input not recognized on console
Fixed! UE-41298 iOS Device displays textures darker than in Editor
Fixed! UE-41498 PS4 differential patch size is abnormally large
Fixed! UE-41565 Movie playback not keeping texture filtering settings when switching contexts
Fixed! UE-40779 Crash occurs with PlatformMediaSource called in infinite loop
Fixed! UE-40063 Crash when a material with a texture parameter is deleted when it has instances with static permutations
Fixed! UE-41283 Engine Scalability view distance settings are not being reflected accurately in the viewport
Fixed! UE-41380 Clicking reimport on a skeletal mesh crashes the editor - UE4Editor_Engine!USkeleton::GetSmartNameContainer() [skeleton.cpp:1410]
Fixed! UE-41496 QAGame Controller Loses Focus on Edge of Viewport
Fixed! UE-41113 Widgets can no longer take focus after clicking somewhere other than the widget itself
Fixed! UE-41495 Crash setting actor rotation via details panel in VR editor


As always the preview version is available for download using the Epic Game Launcher.  Also, as always, this is not a release intended for production use, you have been warned.

GameDev News

7. February 2017


Unity have released a pair of patches for Unity, today they released 5.3.7p4 while a couple days back they released a patch for the newer 5.5.1p2 branch.


Details of the 5.3.7p4 patch:

  • Virtual Reality: Updated to Oculus runtime version 1.11.
  • (854214) - Android: Fixed an incorrect behaviour with Application.persistentDataPath.
  • (none) - Android: Play audio from background applications at the original volume when it is not muted.
  • (668043, 837519) - Asset Pipeline: Fixed an issue where asset and timestamp maps could get out of sync.
  • (865666) - Graphics: Fixed a crash that occurred when loading models from AssetBundles with Tangents set to Calculate Legacy.
  • (none) - Networking: Skip proxy check when using the "file://" protocol.
  • (764734) - Shadows: Fixed a memory leak and assert when shadows are cast from lights with specific properties and in a specific scene setup.
  • (813101) - WebPlayer: Fixed compression settings for WebPlayer when building from command line.



Details of the 5.5.1p2 patch:

  • Virtual Reality: Updated to Oculus runtime version 1.11
  • (854214) - Android: Fixed an incorrect behaviour with Application.persistentDataPath.
  • (none) - Android: Fixed readback from float RenderTexture into half float Texture.
  • (none) - Android: Play audio from background applications at the original volume when it is not muted.
  • (865057) - Animation: Fixed crash in animation window when starting playback on invalid optimized game object
  • (849656) - Animation: Fixed vertical and horizontal flips using Box Tool with tangents set to Infinity.
  • (846853) - Asset Bundles: Fixed a crash when loading a scene with occlusion culling from an asset bundle in editor play mode.
  • (none) - Asset Importing: Significant performance improvements to DXT1, DXT5, BC4 and BC5 texture compressor, resulting in faster asset imports.
  • (865507) - Audio: Fixed a WACK certification failure in UWP player builds using the Microsoft HRTF audio spatializer.
  • (840009) - Cache Server: Fixed an issue when building, an unreachable cache server was reported as a warning not an error and did not cause the build to fail.
  • (none) - Cloudbuild Analytics: Fix for iOS and Android crash when all services are OFF.
  • (857206) - Deployment Management: Corrected the behaviour on Windows where using -logfile on batch mode with an emptry string would cause output to go to stdout, consistent with all other platforms.
  • (857507) - Editor: Disallow setting DontSave on a transform unless it is already set on the GameObject.
  • (824020) - Editor: Fixed a crash for D3D platforms if shader compilation did not return any compiled shader data ie, a shader contained #error pre-processor directive.
  • (836737) - Graphics: Don't render the screen space depth buffer if nothing requires it ie screenspace shadows are disabled.
  • (866230) - Graphics: Fixed large objects lit by a directional light self shadowing in editor when player was set to android.
  • (861445) - Graphics: Fixed a crash that occurred when loading models from AssetBundles with Tangents set to Calculate Legacy.
  • (874227) - IL2CPP: Allow the Unity Ads engine integration to work properly on iOS builds that are archived and uploaded to TestFlight.
  • (none) - Physics 2D: Ensure that a PhysicsMaterial2D can be reassigned to a Collider2D.
  • (871727) - Physics 2D: When turning on Rigidbody2D.simulated, the body position/rotation should be synchronized to the current Transform.
  • (857087) - UI: Fixed miscoloured mesh when this was created with CanvasRenderer.SetMesh, passing an array of Color objects to Mesh.colors.
  • (814290) - Virtual Reality: Fixed inconsistency in game view between Singlepass Stereo and Multi Pass when using Split Stereo Diplay.
  • (830612) - Virtual Reality: Fixed incorrect culling in Split Stereo Display.
  • (832185) - Virtual Reality: Fixed incorrect eye view in Split Stereo Display.
  • (832283) - Virtual Reality: Fixed incorrect viewport bounds in Singlepass Stereo.
  • (none) - Windows: When standalone player is embedded into other window, Alt+Enter shortcut for full screen is disabled.


The patches are available for download here.

GameDev News

6. February 2017


In our previous tutorial we materials in our ongoing Babylon Tutorial Series but today we are going to take things a step higher up and let someone else worry about doing the work for us.  Today we will look at exporting 3D models from Blender for use in our game.  A number of exporters exist (3ds Max, FBX, Cheetah, Unity), but today we are specifically going to talk about using Blender.

First we need to download and install the plugin.  Fortunately they make a zip version available for download.  Head on over to and click Download:



Save the zip file somewhere you will remember.  Now fire up Blender.  Select File->User Preferences…  then select the Add-Ons tab



Now choose Install From File… and select the newly downloaded zip.  Then in the filter area type “Bab” and Import-Export: Babylon.js should be available.  Simply check the checkbox to the right hand side to enable it.  We can now export our scene as a .babylon file for use in our game.  Simply select File->Export->Babylon.js:



There are no settings for the exporter, so simply pick your game asset directory and click Export Babylon.js Scene.  A .Babylon file and all of your textures will be created in your selected save location:



Now let’s look at the code required to load and display this model in our game:

    window.addEventListener('DOMContentLoaded', function(){
        var canvas = document.getElementById('canvas');

        var engine = new BABYLON.Engine(canvas, true);
        engine.enableOfflineSupport = false; // Dont require a manifest file
        var createScene = function(){
            var scene = new BABYLON.Scene(engine);
            scene.clearColor = new BABYLON.Color3.White();

            var camera = new BABYLON.ArcRotateCamera("arcCam",
            var light = new BABYLON.PointLight("PointLight",new BABYLON.Vector3(
            light.parent = camera;
            light.intensity = 1.5;

            scene,function(newMeshes) {
                    mesh.rotation = new BABYLON.Vector3(BABYLON.Tools.ToRadians(
                }                );

            return scene;

        var scene = createScene();



The magic is done using the Y() function call.  You can load a specific asset from within the .babylon file by specifying it’s name, but in this case we just want the whole thing.  Import mesh has a callback when the mesh is loaded ( it’s loaded async, so you need to use this callback ) and it’s passed an array of Mesh objects.  We simply loop through this array ( in this example it’s only one item long, so we could have just as easily done newMeshes[0] and accomplished the same thing ).  Sometimes you will need to reposition your objects when loaded due to different coordinate systems, this example shows rotating each mesh by 45 degrees along the X axis.


This example uses the ShippingContainer blend file available as part of the Patreon dropbox assets, but you can use any applicable Blend file to create the example.  If you are a Patreon support (thanks by the way!) you can find this model in Art\Blender\ShippingContainer and the code is all available (including the exported Babylon file) in Tutorial Series\Babylon\5 - PartFive – Models.


When we run this example, we should see:



The Video

Programming, Art , , , ,

2. February 2017


Krita is a popular open source painting application that has been rapidly improving as of late.  They just released version 3.1.2 and the marque feature is the addition of audio support to animations to help with synchronizing with voices and music.  You can import WAV, MP3, OGG and FLAC files and the audio can optionally be included when exporting animations.  In addition to audio support, 3.1.2 contains several new features and bug fixes including:

  • Ctrl key continue mode for Outline Selection tool: if you press ctrl while drawing an outline selection, the selection isn’t completed when you lift the stylus from the tablet. You can continue drawing the selection from an arbitrary point.
  • Allow deselection by clicking with a selection tool: you can now deselect with a single click with any selection tool.
  • Added a checkbox for enabling HiDPI to the settings dialog.
  • remove the export to PDF functionality. It is having too many issues right now. (BUG:372439)
Bug Fixes
  • fix a number of bugs with creating and editing bundles (BUG:352151)
  • fix loading presets with embedded patterns (BUG:374745)
  • Fix to the erase mode button so it keeps track of the blending mode (BUG:348290)
  • Fix creating a brush from a stamp (BUG:373846)
  • Load 16-bit RGBA TIFF files that have no embedded ICC profile as gamma corrected sRGB  (BUG:375479)
  • Make it possible to use the same language for translations as the desktop (BUG:374928)
  • Fix a possible crash in the brush engine when using older Wacom tablets on Windows 10 and a stylus that does not support rotation (BUG:375253)
  • Add extra precision to the gray slider in the levels filter (BUG:375201)
  • Fix settings for cumulative undo
  • Hide text for buttons with an icon in the toolbar
  • Restore the default favorite blending modes
  • Make it possible to delete system tags (BUG:347607)
  • Restore a step of 0.1 for the crop tool ratio spinbox (BUG:374021)
  • Fix saving the name of a local selection mask (BUG:374383)
  • Fix crash when creating a document after closing it with opacity keyframes (BUG:374381)
  • Icon updates for redo, mirror view, rotation, smoothing modes, merging layers, rotating canvas, split layer, color to alpha
  • fix crash when attempting to use a document that has a 16-bit float XYZ color space
  • Fixed making the fullscreen action checkable again (BUG:373906)
  • Don’t reset the OCIO settings when moving the window (BUG:373481)
  • Fix saving pass-through mode for group layers
  • Make user visible color space names in color models consistent
  • Fix a crash when using two windows (BUG:371124)
  • Fix a possible crash with the undo stack (BUG:374524)
  • Fix confusion when saving per-stylus presets between sessions (BUG:374957)
  • Don’t generate thumbnails without a height or width (BUG:373835)
  • Fix a potential crash when switching to the tool options in the toolbar (BUG:374497)
  • Fix exporting animation that doesn’t start with the first frame
  • Don’t reset the animation export range every time when exporting an animation

You can read the complete release notes here.

GameDev News

2. February 2017


Scirra just released information on their upcoming Construct 3 release and I have to imagine the response isn’t what they were hoping for.  Construct is a codeless game engine that ultimately generates HTML5 behind the scenes.  There are two major changes to Construct 3:c3

    • they have moved to a subscription model, $99 USD per year, which includes exporting to all supported platforms.
    • Construct 3 is now hosted entirely in the browser, Chrome specifically

Details from the original announcement:

Construct 3 works in Chrome on Windows, Mac, Linux, and Chrome OS. There's nothing to install — it's as simple as visiting a website. There are too many new features to list here, so we'll be posting regular updates over the next few weeks going in to more detail. However we've designed it web-first, with features like cloud save, remote preview, integrated WebFonts support, native-grade WebGL rendering, and much more. But don't worry - it'll still work fine when you go offline, even with an intermittent connection, and you can keep your projects offline too if you prefer. And as we promised, Construct 2 projects import with high fidelity. You won't have seen anything like this running in your browser before. And we're nearly ready to share what we've created.

Moving software to the web changes everything. Consequently we've had to make one change to the old way of doing things. As with the vast majority of web-based services, Construct 3 licenses will be based on a subscription rather than a one-off payment. We also know many existing Construct 2 users will be thinking about upgrading. Here's a summary of how pricing and upgrades will work.

  • A Construct 3 Personal subscription will be $99/year. This covers all export platforms.
  • Existing licensed Construct 2 users (including on Steam) will get 50% off their first year.
  • Anyone who buys Construct 2 from today until Construct 3's release will get their first year of Construct 3 for free. To make it a no-brainer, we're also putting Construct 2 on sale for $99. So there's no reason to wait!
  • If they choose, our existing Education users will be able to upgrade to Construct 3 for the remainder of their license period at no additional cost.
  • We will still have a basic free edition of Construct 3.

A public beta of Construct 3 will begin by April. At first our focus will be on testing, but we aim to make the full release by summer. We think you'll love it.


Judging by several of the comments in response to this announcement, the community is not exactly pleased:





It’s not all negative though, there were a few positive comments in the mix:



One major point of contention is the browser based nature and the requirement to be online, to which the Construct team responded:



I personally don’t mind browser based tools, but I do dislike single browser based tools.  With every release I am liking Chrome less and less and being tied to a single browser eliminates a lot of the web based advantage to start with.  Want to work in Safari on your iPad… you can’t.  Most recent Chrome update broke on your computer…  good luck with that.


Today, Scirra followed up with another blog post actually previewing upcoming changes in Construct 3.  (Personally I would have lead with this….)

The interface

The Construct 3 interface has been redesigned from the ground up. We've kept many familiar and useful aspects, like the panes layout and the Properties Bar. There are also some significant differences. We've aimed for a simplified, minimal design that reduces clutter and helps you focus on your content. The ribbon has been condensed down to a toolbar with just the most essential features. Everything else is now under the main menu button.

Being browser-based, the UI style can be modified using CSS. We're keen to add a custom theming system to allow anyone to edit the appearance!

Log in to Construct 3

Near the top-right corner is the user account menu. In this screenshot it's showing a guest user who hasn't logged in. You'll be able to log in to Construct 3 with the same account you use on the website. This makes it dead easy to use Construct 3 on any computer, at home, work or school. Remember, there's nothing to install! We can't wait for you to try this.

High-quality display

This screenshot was taken on a 4K high-DPI display. The high-DPI rendering in Construct 3 is flawless: every detail scales perfectly. The icons for example are all SVG, which means they scale perfectly to any size or detail. The icons have also all been redesigned with a modern flat style like Google's material design. The Layout View also works perfectly with high-DPI displays, and also features zoom-to-mouse, a greater zoom range, and native-equivalent rendering with WebGL 2. Also note the lack of a status bar - instead status appears when it is needed, and in the right context, such as inside the Layout View pane.

Improved properties

The Properties Bar has also been reworked to be easier to use with extra conveniences. For example you can click the "..." button by the project description to edit the text in a larger window. Checkboxes are used instead of on/off dropdowns. You can type calculations like 1920/2 which will set a value of 960. You can even use some system expressions like sqrt(64). Number values can be dragged smoothly with the mouse and instantly show the effect in the Layout View.


You might be wondering how we handle features that have previously required external software like Java for the minifier, or PNGCrush for image recompression. We didn't want to settle for fewer features in the browser, so we created a suite of equivalents, several of which are compiled to asm.js for near-native performance. Then we went a step further and created a scheduling architecture that uses Web Workers run tasks in parallel across all available CPU cores for maximum performance. This all ensures you can do everything in the browser - not just a subset or "lite" version, it's the real deal.

Can I work offline?

We want to be absolutely clear on this - Construct 3 will work offline! We're using the latest Service Worker technology to download the entire app the first time you visit it. Every time you visit after that, it will load directly from disk. So you can be offline, or have an intermittent connection, and you won't even notice - Construct 3 will keep working. We recognise forcing users to be online would be a significant inconvenience for many users, so we've worked hard to make the sure the offline or "lie-fi" experience is perfectly smooth.

You can of course also keep your projects offline if you prefer. We think many people will find it convenient to save and load from the cloud, especially if you use several different devices. However this is not required - you can still save and load projects locally, as you can with Construct 2.

In future we are also planning desktop builds of Construct 3 for Windows, Mac and Linux. These will work much like Construct 2 does now: you download and install the software, can copy it to a USB drive, and so on. These versions will also cover the surprisingly small featureset that can't be covered in the browser, such as saving a folder-based project to a local folder, and better copy-and-paste support. This allows you to take Construct 3 to a computer that is permanently offline, for example.


So, what do you think of the changes to Construct 3.  As was illustrated recently with Unity, many people find subscriptions completely abhorrent.   I also know many people strongly dislike browser based tools as well.  This combination is a bold choice, but one that is sure to alienate a portion of their user base.  The question remains is… how much?

GameDev News

Month List

Popular Comments