Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon
1. December 2015


Autodesk just announced the release of Extension 2 for 3ds Max 2016.  Extensions are interim updates between major releases.  Extensions 2 adds the follow functionality:

  • With fundamental improvements in the Max Creation Graph (MCG), users can now animate accurate simulation data like Computational Fluid Dynamic (CFD) data or other data inside their 3ds Max scenes. 
  • With the new built-in “Send To” Autodesk Print Studio button, users can quickly export and 3D print any of their 3ds Max creations. 
  • The new Texture Object Mask modifier allows users to position and animate textures on an object using other objects in the scene. 
  • The new TextPlus feature, introduced in Extension 1, now has the ability to use text strings and shapes to be used as a material map, creating material decals in your scene.  

They have created a video showcasing the new capabilities:

Read more at the official announcement.

GameDev News ,

1. December 2015


Blender4Web, a 3D engine that enables you to create web content directly in Blender, just released version 15.11.


From the release notes:

New Features
  • Initial support of WebGL 2.0 technology.

    New API features are automatically provided with compatible browser and hardware

  • New logic editor nodes:

    • Camera animation.

      The option to smoothly change camera’s position has been added to the Move Cameranode.

    • New: behavior animation.

      The Play Animation node can now add Behavior animation to an object.

    • New Stop Animation node

      Can be used to stop object’s animation

    • New Stop Sound node

      Can be used to stop a speaker’s sound playback

    • New Stop Timeline node

      Can be used to stop NLA animation

  • MSAA support

    This antialiasing algorithm is used in systems compatible with WebGL 2.0. For now, it allows highest image quality on the ULTRA settings by using 16x MSAA algorithm.

  • Viewer interface improvements.

    A Home button has been added. When pushed, it will open the basic scene specified in the application’s URL parameters, or, if there isn’t any, a placeholder scene with Blend4Web cubic logo will be opened.

    The Reset button has been moved to the right side of the application’s upper panel and will now reset not only internal but also URL parameters (such as loaded basic scene) of the Viewer.

    The Auto View Mode button used for automatic walkthrough of all scenes has been moved to the Tools & Debug panel.

  • High precision rendering performance measure mechanic.

    Using the WebGL extension EXT_disjoint_timer_query allows high precision timers to be created, which can be used to measure the performance of GPU operations. With the activation of the debug mode in the Viewer (‘’HUD Info`` option in the Tools & Debug panel), the time (in milliseconds) the GPU needs to render part of the scene (subscene) is shown in the last column of the debug information.

  • Web player improvements.

    Now, the cursor changes appearance while the camera is moving.

  • There are numerous additions and improvements in the documentation.


Additionally there were several changes and bug fixes announced.

GameDev News ,

1. December 2015


Paradox the C# based cross platform game engine we featured a few months back, as just announced a major version release and a name change to Xenko.  First about the update:


New Features With This Release
Users Can Now Edit Documentation!

We’re so glad to have added this feature that allows users to share information about how to best use Xenko. We know our documentation is not entirely complete yet, so we are really looking forward to hearing and sharing information through the community.

The process for adding to Xenko documentation is real simple. ‘Edit on Github’ in the top right hand corner and you will be able to edit our documentation. If the user-submitted information passes the verification process, we will add it to the documentation.

Edit documentation on GitHub

Automatic Symbols and Source Code Download

Being open source is great, but only if you can find the sources matching the binary version you are using. From now on, Xenko will download the right sources and symbols for an optimal debug and programming experience so you don’t have to worry about doing it yourself.

The process is simple. All you need to do is open Visual Studio options, go to Debugging > General, and check “Enable Source Server Support”:

Enable PDB


Next some news on an upcoming December release:

New Animation System

We’ve added a new animation system that allows you to animate any game property throughout the engine. Animating models is great but why limit animation only to the models? With the newest version of the engine, you will be able to animate material color, UI transparency, and generally any property of your game!

Simple, In-Game Profiler

As good as a game engine can get, at some point, you’re always going to be limited by the hardware’s performance. To help with this, we’ve added a built-in profiler so that you will easily be able to identify problems and bottlenecks in your game. Even better, you will be able to turn on the built-in profiler at any point during the process of making your game.

Debug Physics Collision Shapes At Run-Time

Debugging physics is never easy. To streamline this, you will be able to display all the physics collision shapes at any time in your game.

Built-In Scripts

Writing scripts takes time and is not necessarily accessible to everyone. To improve on this, we added some built-in scripts to the engine so that users will be able to do basic operations with ease. Things like animating the camera, displaying physics debug shapes, and adding profiling information can be done in just a few clicks.


Finally on the name change:

So, on to the big news! Paradox is officially changing its name to Xenko. We wanted to show our roots a bit more since we are one of the few Japanese-based gaming engines. Xenko was inspired by the Japanese word, Zenko 善光. The Japanese characters signify perfection and light. Sticking with the Xenko theme, we will strive to improve your experience with the Xenko engine (ah, feels good to say the new name).

We know this is a big change, and we truly appreciate your patience as we have been honing in on this transition. Please note that support and download access to any previous Paradox releases will end on December, 25th, 2015.

You can read the full release here.


Not sure what I think of the new name, but the old one was certainly confusing.  Whenever I posted Paradox related news in the past there would always be a comment or three expecting that it was Paradox Interactive releasing their game engine.  These transitions can often create a fair bit of pain, especially if they rename at the code level too.

GameDev News , ,

30. November 2015

Corona Labs, makers of the popular Lua based game engine CoronaSDK have been acquired by Perk a mobile rewards provider.

From the Corona blog:

Today, I’m really happy to announce that Corona and the team are joining Perk.

Perk is a publicly traded, profitable company that has built a service/platform that rewards people for everyday mobile and internet activities. Their goal is to enable developers like you to leverage their rewards system and advertiser relationships to both monetize and engage your users.

Having gone through multiple acquisitions (most recently with Fuse), I can tell you that this is really good news for Corona.

The key thing for me is that Perk builds and publishes apps — and more importantly — their engineers are huge Corona fans! They’ve built several apps with Corona already and at a fundamental level understand what makes Corona so special.

In fact, when we first met, they told us that it took them 3 months for their team to build an Android app natively. In contrast, one of their developers who had never used Corona before was able to port this app to Corona in 1 month!

The teams on both sides have been talking about a lot of different activities that are going to make this combination really great. And when I look at the conversations that the engineers are having on both sides, it’s clear they talk the same language: no nonsense, let’s get sh*t done.

* * *

This has been an incredible year for Corona.

As I look back at the agenda and themes we set for 2015, I’m extremely happy that we accomplished nearly all of it. The list is really quite extensive: Mac App, Win32 App, Corona Store, Lua-based plugins, custom shader effects, tvOS, etc.

On top of that, we now have a tremendous partner in Perk. They are excited about Corona at all levels of the company. They see value in what the team here does, in what you the community do with Corona, and in what Perk/Corona will be able to do together. The fact that they already build many of their own apps with Corona makes this transition so natural.

Because of all this, I feel like Corona is in the best shape it’s ever been. So I’ve decided this is a really great time to take a step back from my day-to-day role. Moving forward, I’ll be taking on the role as advisor to Perk/Corona Labs.

Pixar co-founder, Ed Catmull, talked a lot about how they built something that is self-sustaining — that will outlive the founders — in his book “Creativity, Inc.” In particular, he highlights the key role that the braintrust plays in that.

Well, the Corona team is my braintrust. These guys are rockstars. I credit them for what makes Corona so special and for why Corona has helped you all build such great apps.

I sometimes wondered if I would ever feel comfortable stepping away from the “captain’s chair”. Not anymore. The team has already stepped up and grown in so many ways. It’s time to take the training wheels off, so that they can continue to grow.

While I won’t be working side-by-side with the team on a daily basis anymore, I hope you’ll join me in cheering them from the sidelines.

Finally, as my last official act, I wanted to thank you — the community — for believing in what we are doing here with Corona. I hope I’ve played a small part in making a positive dent in your universe. I wish you all the best!



It will be interesting to see what, if any, effect this has on the Corona SDK and it’s community.  I covered Corona along side Gideros, Moai and Love in the Battle of the Lua Game Engines a few years back and at that point the Lua based game engines were all but owning the mobile space.  Since then Gideros has gone open source, Moai effectively disappeared and Corona went free just a short while back.  Amazing how fast the gamedev world can change!

GameDev News

30. November 2015


Along side the release of Visual Studio 2015 SP1, Microsoft shipped a new version of the TypeScript programming language.  I personally am a huge fan of TypeScript, but I am not entirely certain I am onboard with the changes introduced in 1.7.  Speaking of those changes, here they are, taken from the MSDN TypeScript blog:


Async/Await for ES6 targets

With the 1.7 release, TypeScript now supports Async functions for targets that have ES6 generator support enabled (e.g. node.js v4 and above). Functions can now be prefixed with the async keyword designating it as an asynchronous function. Theawait keyword can then be used to stop execution until an async function's promise is fulfilled. Following is a simple example:

"use strict";
// printDelayed is a 'Promise<void>'
async function printDelayed(elements: string[]) {
    for (const element of elements) {
        await delay(200);
async function delay(milliseconds: number) {
    return new Promise<void>(resolve => {
        setTimeout(resolve, milliseconds);
printDelayed(["Hello", "beautiful", "asynchronous", "world"]).then(() => {
    console.log("Printed every element!");

We are working on bringing async/await support in TypeScript for other targets, including a breadth of browsers, which might not have ES6 generators support. For more information on current implementation of async/await and how to use it, see our previous blog post.

Polymorphic this Typing

After much community discussion and feedback, TypeScript 1.7 adds a new polymorphic this type. A this type can be used in classes and interfaces to represent some type that is a subtype of the containing type (rather than the containing type itself). This feature makes patterns such as hierarchical fluent APIs much easier to express.

interface Model {
    setupBase(): this;
interface AdvancedModel extends Model {
    setupAdvanced(): this;
declare function createModel(): AdvancedModel;
newModel = newModel.setupBase().setupAdvanced(); // fluent style works 

For a deep dive on this typing, checkout the TypeScript Wiki.

As a part of supporting the feature, TypeScript 1.7 has made changes in inferring the type from this. In a class, the type of the value this will be inferred to the this type, and subsequent assignments from values of the original type can fail. As a workaround, you could add a type annotation for this. A code sample with recommended work around, along with a list of other potentially breaking changes is available at GitHub.

ES6 Module Emitting

TypeScript 1.7 adds es6 to the list of options available for the --module flag and allows you to specify the module output when targeting ES6. This provides more flexibility to target exactly the features you want in specific runtimes. For example, it is now a breeze to target Node.js v4 and beyond, which doesn't support ES6 modules (but does support several other ES6 features).

//tsconfig.json targeting node.js v4 and beyond
    "compilerOptions": {
        "module": "commonjs",
        "target": "es6"

ES7 Exponentiation

Finally, a little syntactic sugar! The ECMAScript committee recently moved the Exponentiation Operator proposal to stage 3. So we decided it was ready for TypeScript to adopt, and added support for it in TypeScript 1.7.

let squared = 2 ** 2;  // same as: 2 * 2
let cubed = 2 ** 3;  // same as: 2 * 2 * 2 

let num = 2;
num **= 2; // same as: num = num * num; 

Say goodbye to Math.pow()!


I hate Hate HATE the this operator in JavaScript, I think it is among the single biggest mistakes in language design I have ever encountered.  I really hope a polymorphic this in TypeScript isn’t a step down the road to AwfulVille™.  That said, I have faith in Anders Hejlsberg to do the right thing when it comes to language development, so I will take a wait and see approach.


You can get Typescript 1.7 as part of the Visual Studio 2015 service pack, or update using npm.

GameDev News

Month List