Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon
11. February 2016


In a move that will surprise absolutely nobody, today at the Vision VR/AR Summit, Valve announced they will be bringing SteamVR support to Unity, as well as a new VR rendering plugin for extended functionality.

From the announcement:

Today, during the opening keynote of the inaugural Vision VR / AR Summit, Valve and Unity Technologies announced a new collaboration to offer native support forimage SteamVR in the Unity Platform, giving developers new reach at no extra cost. Additionally, we will be adding a new VR rendering plugin to further enhance functionality.

The collaboration means that all of Unity’s developers will have access to native support for Valve’s upcoming SteamVR platform. Beyond SteamVR support, Valve has developed an advanced rendering plugin for Unity to further enhance fidelity and performance, bringing consumers more realistic experiences.

Valve co-founder Gabe Newell announced the news during a special video address at the Vision Summit, adding:“We made many of our Vive demos using Unity, and continue to use it today in VR development. Through that process, and in working with VR developers, we found some opportunities to make Unity even more robust and powerful for us and really want to share those benefits with all VR content creators.”

Unity CEO John Riccitiello went on to discuss the news during the Vision Summit opening keynote: “Valve and Unity are both dedicated to creating the highest quality VR experiences possible. That means giving developers every possible chance to succeed, and our collaboration with Valve is designed to do just that.”

Valve will also be providing a talk at Vision, and to celebrate the launch, they are surprising every developer at the conference with a free HTC Vive Pre, the latest SteamVR development system. For more information, please visit

GameDev News

10. February 2016


This news care of /r/gamedev, EA have released EASTL under the BSD license on Github.

EASTL has been around for ages, and got a limited release a number of years back, but this is the first time there has been a complete release under a BSD license.  EASTL is an implementation of the Standard Template Libraries in C++, but optimized for game performance, especially on consoles.  This new release represents a more up to date version and one that is actively maintained.

If you are familiar with the C++ STL or have worked with other templated container/algorithm libraries, you probably don't need to read this. If you have no familiarity with C++ templates at all, then you probably will need more than this document to get you up to speed. In this case, you need to understand that templates, when used properly, are powerful vehicles for the ease of creation of optimized C++ code. A description of C++ templates is outside the scope of this documentation, but there is plenty of such documentation on the Internet.

EASTL is suitable for any tools and shipping applications where the functionality of EASTL is useful. Modern compilers are capable of producing good code with templates and many people are using them in both current generation and future generation applications on multiple platforms from embedded systems to servers and mainframes.

The Github repository is available here.

GameDev News

10. February 2016


Intel RealSense is a technology and SDK for computer vision including motion controls, facial recognition and more.  There are several cameras and laptops on the market these days that are compatible with RealSense.  Very similar in scope and function to Kinect for the Xbox and Xbox One.

Well, earlier this week a plugin was released for Unreal Engine enabling RealSense support.  From the announcement:

Intel is always excited to introduce innovative tools and technologies that empower the world's most passionate content creators. In case you're unfamiliar, the Intel RealSense cameras use infrared light to compute depth in addition to normal RGB pictures and video. To assist in the development of applications with this technology, Intel created the RealSense SDK, a library of computer vision algorithms including facial recognition, image segmentation, and 3D scanning. 

Short-Range, User-Facing RealSense Camera Developer Kit

Seeing the potential use cases for this technology in gaming, we would now like to introduce you to the RealSense Plugin, a collaborative effort among games engineers at Intel to expose the features of the RealSense SDK to the Blueprints Visual Scripting System in UE4.

Check out the plugin source code and a sample project here.


The plugin is architected as a set of Actor Components, each of which encapsulates a distinct set of features from the RealSense SDK. Using these relatively lightweight components, you can add 3D sensing capabilities to nearly any actor in your game, and you can access this data anywhere by simply instantiating another instance of the same component.

Figure 2: ace scanning and mapping in Unreal Tournament using the Scan 3D Component


Currently, the plugin features these three RealSense Components:

  1. Camera Streams Component: Provides access to the raw color and depth video streams from the RealSense camera.
  2. Scan 3D Component: Supports the scanning of real-world objects and human faces (Pictured above).
  3. Head Tracking Component (Preview): Supports the detection and tracking of a user’s head position and orientation.

The downside to head tracking controls is the user ultimately still has to look at the screen!  So while it would be awesome to have the computer track your head movements in say... a car racing sim, you still need to keep your head looking straight ahead.  Well except of course in VR, where this entire process is done in the hardware.  Have any of you encountered actual cool usage of RealSense in a game?

GameDev News

10. February 2016


Another week another Unity patch.  No new functionality, this patch was populated entirely with fixes:

  • (742199) - Android: Fixed remote frame debugger.
  • (none) - Android: Marshmallow - Added the possibility to disable the permission dialog by adding metadata to the activity.
  • (755510) - Android: Mono - Fixed crash on startup with Unity Ads when stripping is enabled.
  • (none) - Core: Improved the error message when build data files are corrupted or from a mismatched version.
  • (752733) - Editor: Fixed folder-level toggle when importing assets.
  • (711720) - Editor: Fixed a bug in the property diff recorder would insert property modification on the prefab asset if it was being edited in the inspector.
  • (756409) - Editor: Fixed crash when entering playmode if LoadScene was called during Awake or Start.
  • (761995) - Editor: It is now possible to replace a prefab asset with a different prefab asset.
  • (752855) - Graphics: D3D11 Native API now supports obtaining native Texture type underpinning a Unity Renderbuffer.
  • (746302) - Graphics: Fixed building shaders correctly for WebGL in AssetBundles.
  • (none) - Graphics: Fixed an issue where standard shader using directional lightmaps could output NAN to the framebuffer. This would corrupt the framebuffer if any effects were used that spanned multiple frames.
  • (753593) - Graphics: Fixed occasional movie texture crash with multiple movies present.
  • (none) - Graphics: Reduced framerate spikes where culling system could sometimes stall for several ms while waiting for jobs.
  • (766642) - IL2CPP: Generate proper C++ code for marshaling wrappers of methods that have System.Guid as a parameter type.
  • (761412) - OpenGL: Fixed random crashes on compute shader dispatch.
  • (760830) - Particles: Ensure consistent direction between 3D and 1D rotation.
  • (757969) - Particles: Fixed a collision crash.
  • (763041) - Particles: Fix for terrains ignoring collision layers.
  • (758197) - Particles: Fixed support for negative inherit velocity values.
  • (765300) - Physics: Fixed center of mass and inertia tensor being reset after game object was reactivated.
  • (763806) - Physics: Rigidbodies without non-trigger colliders can. have custom center of mass and inertia tensor again
  • (767645) - tvOS: Fixed build error with Xcode trampoline.
  • (none) - VR: Dynamically switch to headset's audio output / input driver (Oculus SDK 1.0+).
  • (none) - VR: Fixed VR Splash screen color precision. No Longer limited to half the color spectrum for RGBA32.
  • (none) - VR: Mask invisible pixels so GPU time is not wasted (Oculus SDK 1.0+).
  • (765876) - Windows Store Apps: building from Unity will no longer overwrite project.json file if it was modified in solution.
  • (759735) - Windows Store Apps: When building from Unity files in Visual Studio solution will not be overwritten if identical.

Patch can be downloaded here.

GameDev News

9. February 2016


Not every day that there is a new player in the AAA game space, but that’s exactly what just happened with the release of Lumberyard by Amazon.  Amazon has been getting more and more involved with gaming with the launch of their own game studio coupled with their purchased of Double Helix games back in 2014.  Their cloud computing solution, AWS (and more specifically EC2 and S3) have both proven incredibly popular with game developers, providing the networking back end for companies such as Rovio and Ubisoft.  Today however they just made a much bigger splash with the release of a complete game engine, Lumberyard.

Now Lumberyard isn’t actually a brand new engine, in fact it appears to be a mashup of a number of technologies including CryEngine, in house tools created by Double Helix Games and cloud services from AWS, specifically the new Amazon Gamelift service, which is described as:

Amazon GameLift, a managed service for deploying, operating, and scaling session-based multiplayer games, reduces the time required to build a multiplayer backend from thousands of hours to just minutes. Available for developers using Amazon Lumberyard, Amazon GameLift is built on AWS’s highly available cloud infrastructure and allows you to quickly scale high-performance game servers up and down to meet player demand – without any additional engineering effort or upfront costs.

Lumberyard will also feature Twitch integration, and perhaps most interestingly, launch with support, both in forum and tutorial form but also in a paid form, something that is often lacking.  Lumberyard tools only run on Windows 7,8 and 10, while the supported targets at launch are Windows, PS4 and Xbox One.  Of course a developer license is required to target either console.  About the technical bits of Lumberyard:

The Lumberyard development environment runs on your Windows PC or laptop. You’ll need a fast, quad-core processor, at least 8 GB of memory, 200 GB of free disk space, and a high-end video card with 2 GB or more of memory and Direct X 11 compatibility. You will also need Visual Studio 2013 Update 4 (or newer) and the Visual C++ Redistributables package for Visual Studio 2013.

The Lumberyard Zip file contains the binaries, templates, assets, and configuration files for the Lumberyard Editor. It also includes binaries and source code for the Lumberyard game engine. You can use the engine as-is, you can dig in to the source code for reference purposes, or you can customize it in order to further differentiate your game. The Zip file also contains the Lumberyard Launcher. This program makes sure that you have properly installed and configured Lumberyard and the third party runtimes, SDKs, tools, and plugins.

The Lumberyard Editor encapsulates the game under development and a suite of tools that you can use to edit the game’s assets.

The Lumberyard Editor includes a suite of editing tools (each of which could be the subject of an entire blog post) including an Asset Browser, a Layer Editor, a LOD Generator, a Texture Browser, a Material Editor, Geppetto (character and animation tools), a Mannequin Editor, Flow Graph (visual programming), an AI Debugger, a Track View Editor, an Audio Controls Editor, a Terrain Editor, a Terrain Texture Layers Editor, a Particle Editor, a Time of Day Editor, a Sun Trajectory Tool, a Composition Editor, a Database View, and a UI Editor. All of the editors (and much more) are accessible from one of the toolbars at the top.

In order to allow you to add functionality to your game in a selective, modular form, Lumberyard uses a code packaging system that we call Gems. You simply enable the desired Gems and they’ll be built and included in your finished game binary automatically. Lumberyard includes Gems for AWS access, Boids (for flocking behavior), clouds, game effects, access to GameLift, lightning, physics, rain, snow, tornadoes, user interfaces, multiplayer functions, and a collection of woodlands assets (for detailed, realistic forests).

Coding with Flow Graph and Cloud Canvas
Traditionally, logic for games was built by dedicated developers, often in C++ and with the usual turnaround time for an edit/compile/run cycle. While this option is still open to you if you use Lumberyard, you also have two other options: Lua and Flow Graph.

Flow Graph is a modern and approachable visual scripting system that allows you to implement complex game logic without writing or or modifying any code. You can use an extensive library of pre-built nodes to set up gameplay, control sounds, and manage effects.

Flow graphs are made from nodes and links; a single level can contain multiple graphs and they can all be active at the same time. Nodes represent game entities or actions. Links connect the output of one node to the input of another one. Inputs have a type (Boolean, Float, Int, String, Vector, and so forth). Output ports can be connected to an input port of any type; an automatic type conversion is performed (if possible).

There are over 30 distinct types of nodes, including a set (known as Cloud Canvas) that provide access to various AWS services. These include two nodes that provide access to Amazon Simple Queue Service (SQS),  four nodes that provide access to Amazon Simple Notification Service (SNS), seven nodes that provide read/write access to Amazon DynamoDB, one to invoke an AWS Lambda function, and another to manage player credentials using Amazon Cognito. All of the games calls to AWS are made via an AWS Identity and Access Management (IAM) user that you configure in to Cloud Canvas.

Finally we come to price.  Lumberyard is free*.  I say free* instead of free because of course there is a catch, but an incredibly fair one in my opinion.  If  you use Lumberyard you either have to host it on Amazon servers or on your own.  Basically you can’t use Lumberyard then host it on a competitor such as Azure or Rackspace.  Pricing is always a bit tricky when it comes to Amazon services, but unlike Google, they have never once screwed their user base (Google once jacked up prices by an order of magnitude, over night, forever souring me on their technology), so you are pretty safe in this regard.  More details on pricing:

Amazon GameLift is launching in the US East (Northern Virginia) and US West (Oregon) regions, and will be coming to other AWS regions as well. As part of AWS Free Usage tier, you can run a fleet comprised of one c3.large instance for up to 125 hours per month for a period of one year. After that, you pay the usual On-Demand rates for the EC2 instances that you use, plus a charge for 50 GB / month of EBS storage per instance, and $1.50 per month for every 1000 daily active users.

I intend to look closer at the Lumberyard game engine as soon as possible, so expect a preview, review or tutorial shortly.

GameDev News

AppGameKit Studio

See More Tutorials on!

Month List