Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon
6. May 2016


You have to love the new speed of releases for major game engines, it’s a great trend and I hope it keeps up.  As the title suggests, Unity have released a new patch bringing the version to 5.3.4p6.  Once again this patch is composed almost entirely of fixes and is not considered dangerous or beta.

The changes include:

  • Cluster Rendering : Improvement on cluster networking layer and reduced instability while using cluster input.
  • (788040) - Android: Buildpipe - Don't make use of preview SDK tools installed.
  • (786918) - Android: Buildpipe - Fixed AAPT errors on project export.
  • (765396) - Android: Buildpipe - Fixed AAR plugin and resource issues on exported projects.
  • (779338) - Android: Fixed immersive mode switching off on some KitKat devices when pressing volume buttons.
  • (779877) - Android: Fixed potential crash when using WWW without having Internet permission (also affects use of Unity Analytics).
  • (none) - Android: Fixed potential race condition in atomic access on ARM processors.
  • (689644) - Animation: Fixed scale value getting zeroed when removing scale curve components in AnimationWindow.
  • (762739) - AssetBundles: Fixed Compress Assets On Import setting ignored when switching platform
  • (734216) - AssetBundles: FIxed CreateFromMemory not working with "." in filenames.
  • (790345) - Editor: Fixed New installed Unity command line activation issue.
  • (776528) - iOS: Fixed memory leak when using On Demand Resources.
  • (783713) - MacOSX Editor: Fixed UI text rendering on Radeon HD 4000 series and older AMD GPUs.
  • (763638) - OpenGL: Fixed mislocated fragment shader default float precision. Now also basing the default precision on actual HW capabilities.
  • (784880) - OpenGL: Fixed rendering when Graphics.Blit is being called after WaitForEndOfFrame.
  • (none) - OpenGL: Shader compiler: Added unused global uniform pruning.
  • (780831) - OpenGL: Shader compiler: Avoid temp name collisions.
  • (782514) - OpenGL: Shader compiler: Fixed shader translation bugs.
  • (773226) - Particles: Fixed a case where if OnWillRenderObject renders, it breaks the main scene.
  • (788023) - Particles: Fixed batching issues when using multiple cameras in the same position.
  • (780257) - Physics2D: Fixed a problem where both AreaEffector2D and PointEffector2D scaled-up forces for each additional collider on a rigidbody.
  • (none) - Physics2D: Fixed a problem where constantly changing an Effector2D collider would mean that no contacts were ever processed stopping the effector from working.
  • (754351) - Prefabs: Implemented OnWillSaveAssets callback when applying prefabs.
  • (764711) - UI: Fixed issue with crash due to dirty renderer being in the dirty list after being destroyed.
  • (none) - VR: Fixed an issue with incorrect Render Texture size being used. Most notable with deferred rendering.
  • (none) - VR: VRFocus now respects RunInBackground. Run In Background value of true will now disable rendering if VRFocus is lost.
  • (none) - Wii U: Fixed issues causing known crashes.
  • (none) - Windows Store: Fixed an assert happening during mesh compression.
  • (789538) - Windows Store: Fixed Build & Run for Universal 8.1 solution.
  • (789439) - Windows Store: The maximum amount of characters for short name for tiles will be 40 now.

The patch is available for download on Windows and Mac here.

GameDev News

5. May 2016



Welcome to the first part of a multipart tutorial series on creating games using the Haxe programming language with the Heaps graphics engine.  Heaps is under development by Nicolas Cannasse, the guy that created the Haxe language in the first place.  In his own words:

Heaps is a cross platform graphics engine designed for high performance games. It's designed to leverage modern GPUs that are commonly available on both desktop and mobile devices. The framework currently supports HTML5 WebGL, Flash Stage3D, native Mobile (iOS and Android) and Desktop with OpenGL. 

Heaps is a very cool library, but not an incredibly well documented one.  So that’s where this tutorial series comes in.  We are going to look at creating 2D then 3D graphics using the Heaps engine.  For this series I will be doing both text and video versions of each tutorial.  The video version of this tutorial is available here.


Setting Up Your Haxe Development Environment

This tutorial is going to assume you are using Windows, if you are on another operating system, the steps are going to vary slightly.

First head to and download the appropriate Haxe installer for the most reason version.


In my case I am going with the Windows Installer.  Run the executable and say yes to any security messages you receive.  You want to install everything like so:



Install where ever you like:



Verify your install worked correctly.  Fire up a command prompt and type haxelib version:



That was easy, eh?  Next you will probably want an IDE or Editor.  Personally I am using Haxe Develop, a special port of Flash Develop.  This is a Windows only IDE though.  Another option is Visual Studio Code with the Haxe language extensions.


Finally we need to install the Heaps library.  It’s not registered with Haxelib yet, so we currently have to install it from Github.  Run the command:


haxelib git heaps



And done.


Creating a Hello World application

Now let’s create our first application to make sure everything is up and running correctly.  A simple hello world app.

Assuming you are using HaxeDevelop, go ahead and create a new project via Project->New Project



I created a JavaScript project like:



Inside our project folder, we need to create a folder for our resources.  I simply created a directory called res.  Simply right click your project in the Project panel and select Add->New Folder...



Next we need a TTF file, I personally used this font.  Simply download that zip and copy the ttf file into the newly created res directory.  You can open an Explorer window to that directory by right clicking it and selecting Explore.  I personally renamed it to not be all caps, it should work either way though.  If you are using HaxeDevelop, your project should look something like this:



We have two final bits of configuration.  First we need to text HaxeDevelop that we use the Heaps library, and that the resource folder is named Res.  Right click your project and select Properties



Next select the Compiler Options tab.  First add an entry to Compiler options with the value –D resourcePath=”res”.  Then add a value to Libraries of heaps.  That’s it, click Apply then Ok.



Finally some code!  First we need a WebGL canvas for our application to run in.  Simply open up index.html located in the Bin folder and add a canvas.  Your code should look something like:

<!DOCTYPE html>
<html lang="en">
	<meta charset="utf-8"/>
	<meta name="description" content="" />
	<canvas id="webgl" style="width:100%;height:100%"></canvas>
	<script src="JSTest.js"></script>


Now we need to edit our main Haxe code.  By default it will be called Main.hx and it’s the entry point (and entirety) of our program.  Enter the following code:

import h2d.Text;
import hxd.Res;
import hxd.res.Font;
import js.Lib;

class Main extends hxd.App {
        var text : Text;

		// Called on creation
        override function init() {
			// Initialize all loaders for embeded resources
			// Create an instance of wireframe.tff located in our res folder, then create a font2d of 128pt size
			var font =;
			// Create a new text object using the newly created font, parented to the 2d scene
            text = new Text(font, s2d);
			// Assign the text
			text.text = "Hello World";
			// Make it read, using hex code ( RR GG BB, each two hex characters represent an RGB value from 0 - 255 )
			text.textColor = 0xFF0000;

		// Called each frame
        override function update(dt:Float) {
			// simply scale our text object up until it's 3x normal size, repeat forever
			var scaleAmount = 0.01;
			if (text.scaleX < 3.0) text.setScale(text.scaleX + scaleAmount);
			else text.setScale(1);

        static function main() {
            new Main();

Now go ahead and run your code by either hitting F5 or click this button image

You should see:



Congratulations, your first Haxe programming using the Heaps library.  Next up, we will jump into 2D graphics with Heaps.



Programming , ,

5. May 2016


Construct is an HTML5 based game engine designed to create 2D games while requiring no coding.  They just released a new update, r228, which should be considered a beta.  New features in this update include:

Add - Windows Store plugin: added "Set back button visible" action. This can show/hide a 'Back' button in the caption for desktop apps (the back button cannot be hidden on mobile). Pressing it triggers the Browser object's 'On back button' like on mobile.

Add - AJAX plugin: 'On any completed', 'On any error' triggers; 'Tag' expression

Add - System 'On save failed' trigger. For example can be triggered if the user disables all local storage in their browser settings.

Change - Windows 8 plugin: renamed to "Windows Store"

Change - Cordova iOS: in WKWebView mode, can still start up if the cordova-httpd server plugin is unavailable, but note it will probably be unable to play video (since the HTTP server is necessary to work around WKWebView limitations for video playback). This should improve robustness against different build systems that may not automatically use C2's exported list of Cordova plugins.

Change - Restored audio encoders from r221 in the 32-bit build, since there seemed to be a problem with them in r227.

Change - Windows 10 apps: now no longer depends on WinJS library, which makes apps a bit smaller and more efficient

Bug Fix - User Media: now maintains aspect ratio when displaying camera feed

Bug Fix - User Media: fix support for selecting specific camera. Spec changes make this hard to support cross-browser, so now it relies on the WebRTC adapter.js library to try to improve cross-browser support.

Bug Fix - Pathfinding behavior: could sometimes find paths across diagonals when it should not have been able to

Bug Fix - Picture editor: Ctrl+X/C/V should now work with tool options (e.g. origin position)

Bug Fix - Sprite: animations did not always start playing if the initial animation was not the default

Bug Fix - Mouse is over object/is touching object did not always work correctly in OR blocks

Bug Fix - Runtime: should now correctly respond to window size changes/orientation changes while loading


The release can be downloaded here.

GameDev News

4. May 2016


Substance Designer (and companion to Substance Painter covered in this video) is a tool that enables artists to define complex shaders for PBR (Physically Based Rendering) and is fast becoming the weapon of choice for texture artists everywhere.  They just released Substance Designer 5.4, available for download on their servers now or available next Monday on Steam.

Release 5.4 brings the following new features:

    • added a link to Substance Store
    • Support For HighDPI screens
    • Enabled re-ordering of tabs
    • export render to ArtStation
    • added default shader to shader list
    • display resource names on top of bitmap nodes
    • improved listing order of space bar search menu
    • new baker “position from mesh”
    • new normal map setting “Tangent” and “Binormal” in World Space Normal baker
    • enabled execution of scripts during the save, export and publish actions
    • added a collapse/expand option based on selection in dependencies
    • added a warning regarded shell extension conflicts
    • Bug Fix – crash on exit
    • Bug Fix – designer process still running after exit
    • Bug Fix – Iray outputs are not sent to mdl materials when switching renderers
    • Bug Fix – Tile sampler: pattern rotation random should not rotate the shape

GameDev News

4. May 2016


Mixamo is a great animation resource, that enables you to quickly (and currently freely) add animations to your 3D models.  However, if you want to incorporate the results into your Blender workflow, it can be a bit non-intuitive.  The Mixamo documentation recommend using Collada, which simply does not work well.  There instructions also skip completely the process of actually using the resulting animations...  a rather key component.  The following workflow is perhaps the easiest with the best results.


First off, when exporting your animations from Mixamo, use the following settings:



This will result in a zip file containing your model, as well as several animations, like so:



If you haven’t already, load Blender.  Next go to File->Import->FBX.  The next part is critical, in the Import FBX settings select Manual Orientation and Apply Transform



Your model and it’s armature should now load fine, with full proper textures showing up.  I suggest you rename your armature something meaningful, as each animation is going to come in with the same name (Armature, Armature.001, etc.).


Next do the import again, with the exact same settings, this time bring in one of your animations.  If you only need to wire up a single animation, you are nearly done.  Just bring up the DopeSheet, switch to Action Editor



You can now toggle between any animation available in the Blend file:


Keep in mind, I renamed my main character Timeline, then the walk animation armature was renamed Walk, etc...


If however you need to use multiple animations, or want to create a single timeline with all of the animations on it, you are now going to have to break out the NLA Editor.  It is simply a matter of Add Action Strip to your main character, for each animation in the timeline, like so:



And, the end result:



I glossed over part of the process, but never fear... I also did a video!

Art , ,


Month List

Popular Comments