Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon

11. August 2017

All the way back to Unity 1.0, the Unity game engine has supported a version of JavaScript called UnityScript.  Today on the Unity blog, Unity have announced that they will no longer be supporting UnityScript going forward.  Starting in Unity 2017 beta 2, they will remove the ability to create JavaScript files directly inside the editor.  Then they will be removing the ability to submit .js files to the Asset Store.  Then at some point in the future they will be removing the compiler completely, although it will be available to be forked on Github.  According to Unity analytics numbers on a very small portion of the community is even using UnityScript at this point, with under 4% using it as the primary language. 

They actually published some fairly interesting stats about language usage:

  • To date, of all the projects that have used Unity 5.6, about 14.6% of them have at least one file with a .js extension in it. 14.6% sounds quite high, but then we broke the numbers down further, and looked at how many files were .js files as a fraction of total script files in the project (.js + .cs).
  • So, that leaves 85.4% of all projects which are entirely in C#, with no UnityScript files at all.
  • 9.5% of all projects are mostly in C# – they have some UnityScript files, but fewer than 10% of their total script file count. Another 1.5% of all projects have between 10% and 20% of their code in UnityScript files.
  • That leaves 3.6% of all projects that have more than 20% of their code in UnityScript.
  • Only 0.8% of all projects are exclusively (i.e. 100%) in UnityScript.

With only a small portion of the community using UnityScript it does make very little sense to continue supporting it, especially now that C# support isn’t stuck in the stone ages.

GameDev News

8. August 2017

Epic have just released a new version of the Unreal game engine, bringing it to version 4.17.  This release adds several new features including Sequencer improvements, a new beta compositing plugin “Composure”, new global shader support in plugins, XBox One X support, VR spectator support, experimental ARKit support, experimental support for new cloth tools and much more.

Details from the Unreal Engine blog:

The new Composure compositing system and Image Plate plugin provide a powerful and flexible means of combining content rendered in realtime with live action footage. Numerous improvements to Sequencer continue to refine the workflow for creating cinematics and linear media.

Discover and load quests, heroes, or other game-specific content with the new Asset Management Framework. Query information about Assets at runtime in Blueprints using the Asset Registry's new Blueprint accessors.

Develop games for Microsoft's Xbox One X console as part of the platform improvements. Make your VR project a social experience using the new VR Spectator Screen support. On Android, we have improved several aspects on high end devices, and we continue the effort to reduce executable sizes even further.

Be sure to read the blog for a great deal more information on new features in this release.  As always you can upgrade using the Epic Game Launcher.

GameDev News

7. August 2017

With the upcoming release of Godot 3.0, Visual Programming is now officially part of the game engine.  In this tutorial we are going to look at the basics of programming using the new Visual Programming interface.

To get started using Visual Programming, just like using GDScript or other options, you have to attach a script to an object in Godot, like so:


In the script creation dialog, you can now select the programming language to use:


It will now bring you to the following programming interface:


To get started, we need to implement one of the available Godot callbacks.  These are exactly the same as GDScript and represent various different functions that will be called over time by the game engine.  To get started, in the Members section, click the following icon:


The various different callback functions available for the selected object type are available:


The most commonly used callbacks are _process() which is called every pass through the game loop, _ready() which is called when the object has been created, _init() which is called to create the object (think constructor), and _input() which is called when input is received.  We are going to create an exceedingly simple example here that moves our sprite each from, so select _process.  Now you should see:


White arrows represent program flow.  Connections on the right represent output, while connections on the left represent input.  This is the entry point for our code and is going to be called each frame.  You can see we are passed a floating point value “delta” as a parameter.  Now we need to get a reference to our object, we use a “self” node for this.  You can locate notes via search:


This gives us access to the Sprite object our script is attached.


Now click on the blue/green ball output from the Sprite and drag a connection out, selecting Get as the option:


This will now give you access to all of the data of a sprite object and all other inherited classes:


Locate and select position, which is a Vector2 object.  Now lets create a variable we are going to use to define our move amount.  In the variables section, click +:


Now right click and select Edit Variable:


Select type as Vector2 and value of (1,0)


Finally click the variable name and rename it to moveBy.  Now drag our newly created variable onto the canvas:


Now we want to create an Add node and add our two vectors together, like so:


Now we use another Self (or the same one we created earlier) and this time do a Set and select position.  We now pass in the added Vector2 result, also we attach program flow from _process, like so:


This simple program will cause the sprite to move by 1 pixel per update.

Video Version

Programming ,

7. August 2017

A release candidate of the upcoming Blender 2.79 has just been released.  Blender is a popular cross platform open source comprehensive 3D application available at for most popular platforms.  RC1 brings several new features to Blender including Cycles renderer improvements, automatic DPI scaling, improved Alembic support, grease pencil improvements and tons of bug fixes.

One important warning about this release is the .blend file generated may not be backward compatible with earlier versions of Blender if using certain add-ons.

When using add-ons in Blender 2.79 that take advantage of the new data-block pointer properties, the resulting .blend files can't be opened in earlier versions of Blender. Attempting to open such .blend files in Blender 2.78c and earlier may crash.

Details from the release notes:

  • Cycles: Built-in Denoising, Shadow catcher, Principled shader, AMD OpenCL optimizations.
  • Grease Pencil: New frame interpolation tools, per-layer onion skinning.
  • Alembic: Improvements to compatibility, stability and support.
  • User Interface: Initial support for reusable custom configurations, automatic DPI scaling.
  • Twenty Three new and several updated add-ons.
  • And: 100s of bug fixes and other improvements!

3. August 2017

OpenFL 6.0 has just been released.  OpenFL is a Haxe based game/media framework that provides a Flash like API.  We did a brief tutorial series here on GameFromScratch when OpenFL was known as NME if you are interested in learning more.  The 6.0 release brings several new features such as beta support for TileArrays, beta custom shader support, improved blending and colorTransform support, better Stage3D support and more (enabling Away3D and Starling compatibility), DragonBones support and more.

Details from the release blog:

New Features

(Beta) TileArray

We have developed an easy-to-use DisplayObject called Tilemap which makes it possible to use batch hardware rendering. Tilemap is similar to a mixture of Bitmap and the display list, but we have received multiple requests to support an alternative API that is less structured.

This release includes the (beta) API for TileArray, for writing tile data more directly:

var data = tilemap.getTiles ();
data.length = 2;
data.position = 0;
data.setMatrix (1, 0, 0, 1, 100, 100);
data.position = 1;
data.setMatrix (1, 0, 0, 1, 200, 200);
data.alpha = 0.5;
tilemap.setTiles (data);

This API has enabled our team to more easily migrate legacy drawTiles rendering code to the current version of OpenFL.

We welcome your feedback, and hope to continue to improve Tilemap

(Beta) Custom Shader Support

OpenFL 4 added initial support for custom shaders, using the filter API.

However, in time we have found that our use of OpenGL framebuffers was too expensive to make shader filters practical for every-day production. We are enabling an alternative approach in OpenFL 6, where Bitmap, TextField, Tilemap and Video objects can have a custom shader set directly:

var customShader = new CustomShader ();
bitmap.shader = customShader;

We have also enabled support for custom OpenGL shaders for individual tiles in Tilemap

Improved blendMode and colorTransform support

We have improved support for blendMode throughout our renderer, and have added support for hardware-accelerated colorTransform when possible. In other cases, we enabled cacheAsBitmap in order to preserve performance. We also added (beta) support for colorTransform in Tilemap, but it is supported only on hardware since it is very expensive on other render types.

Stage3D Libraries

Although OpenFL has enjoyed stable Stage3D support for some time, we have continued to focus on creating faithful renditions of familiar Stage3D libraries for OpenFL.


Away3D is an open source platform for developing interactive 3D graphics for video games and applications.

The latest development version of Away3D is now compatible with OpenFL, and should continue to improve in quality with time:


Starling is the "Cross-Platform Game Engine", a popular Stage3D framework. OpenFL is hardware-accelerated without the use of Starling, but it still provides a popular alternative to the traditional Flash API.

We currently have 1.8 release of Starling and the Starling particle framework working reliably, and are still working on porting the Starling 2.x codebase for use with OpenFL:


DragonBones is a skeletal animation editor, as an alternative to using SWF assets with OpenFL directly (which is also supported).

We have ported the most recent ActionScript runtime for DragonBones over for use with OpenFL. There is still room to create a runtime using OpenFL Tilemap, but we are still happy to provide a working version of the DragonBones runtime for use with projects:

Other Improvements

We are continuing to invest in SWF asset support. You can use SWF content from Flash Professional or Adobe Animate directly in OpenFL, with layers, animation and object IDs preserved.

In time, we expect MovieClip animation to continue to perform better, as well as accuracy. OpenFL 6 includes improved support for blendMode, colorTransform and frame script when working with SWF source data.

As always, we are continuing to improve and polish a large variety of minor behaviors and features.

GameDev News

Month List

Popular Comments

Quite around here….
Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon

6. December 2012



You may notice that the number of posts around here have dropped off recently and will drop off for a bit longer.  First off, let me just say sorry.  I know I personally hate it when I check on a website in my daily rotation if there isn’t any new updates. 


So why so quite?


Well, there are a couple reasons. 


First, the industry is a bit quite this time of year, no news means nothing to talk about.


Second, I am just coming to the end of a large project I’ve been working on that I can announce more details about shortly.


Third, well, it’s the holidays in my parts.  Oddly enough, all of my celebrations are early this year and the holidays are nothing if not time consuming. There is an ironic flipside to this… later in the month, when the actual holidays approach, well I will have tons of free time, so expect to see new content then by the truckload… at least, if its a very small truck.


So, let me wish you an early Happy Holidays and say, don’t worry… new content is in the works… it will just be a bit slow to appear.

Totally Off Topic

blog comments powered by Disqus

Month List

Popular Comments