Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon

4. April 2017


Kotlin is a JVM powered programming language created by JetBrains, the people behind popular developer IDEs such as IntelliJ, WebStorm, CLion and ReSharper.  Kotlin offers 100% interop with existing Java code, while offering better performance and more concise code.  The recently released Kotlin 1.1 enabled JavaScript support giving Kotlin the ability to run in the browser.  Today they went one step further with the announcement of Kotlin/Native.  Kotlin/Native is a compiler that creates a stand alone executable with no need for a Java Virtual Machine at all.  Built over the LLVM technology suite, Kotlin/Native is in early technology preview for Mac OS, Ubuntu Linux, iOS and Raspberry Pi meaning Windows based developers are currently out of luck, with the following being noted:

Due to significant difference in exception handling model on MS Windows and other LLVM targets, current Kotlin/Native may not produce executables working on MS Windows. This situation could be improved in upcoming releases.

Details of Kotlin/Native from the announcement blog:KotlinNative

Kotlin/Native is another step toward making Kotlin usable throughout a modern application. Eventually, it will be possible to use Kotlin to write every component, from the server back-end to the web or mobile clients. Sharing the skill set is one big motivation for this scenario. Another is sharing actual code.

Our vision for inter-platform code reuse is the following: one can write entire modules in Kotlin in a platform-independent way and compile them for any supported platform (currently these are Kotlin/JVM, Kotlin/JS and the upcoming Kotlin/Native). We call these common modules. Parts of a common module may require a platform-specific implementation, which can be developed individually for each platform. Common modules provide a common API for all clients, but other (platform-specific) modules can extend this API to provide some exclusive capabilities on their platform.

Note that we do not intend to make arbitrary Kotlin/JVM programs runnable on Kotlin/Native or Kotlin/JS. It would be equivalent to implementing another JVM, which is both a lot of work and a lot of limitations for the runtime. We are going another way: providing a common language for all platforms while enabling creation of common libraries through seamless interoperability with platform code.

In moving from the JVM to native code, that does lead to the question of how memory is managed.  This is also addressed in the blog post:

Kotlin/Native is designed to potentially enable different memory management solutions for different target platforms. For example, in the future it may make sense to have a tracing GC for server/desktop platforms, while ARC makes a lot more sense on iOS. Some platforms may only need manual memory management, and get an even smaller Kotlin/Native runtime in return.

This Technology Preview features automatic reference counting with a cycle collector on top, but what the final memory management solution(s) will look like is unknown at this point.

Kotlin/Native is open source and available on github under the Apache 2 open source license.

GameDev News

4. April 2017


Construct 3 is a recently released cross platform 2D game engine with a visual programming interface.  We very recently did a completes hands-on with Construct 3 video if you are interested in learning more about this release.  Today Scirra released their plugin SDK for Construct 3 enabling you to extend the functionality of the game engine using JavaScript.


Details of the SDK release:

Welcome to the Construct 3 plugin SDK forum! Here we'll be providing information and support to third-party plugin developers interested in working with Construct 3.

Note you must use Construct 3 r15 or above for the SDK to work properly.

Current state of the SDK
The full set of editor SDKs we plan to support are very broad and involve a very large API surface. To approach this large task, we are going to gradually roll out the SDK in phases.
At first, the plugin SDK only supports single-global plugin types. (That means plugins that do not draw to the Layout View.) We hope to expand on this to drawing plugins, behaviors, effects and editor addons in future.

SDK documentation
We have provisional SDK documentation available here:
The SDK documentation will eventually be hosted on, but the new documentation system isn't ready yet. Currently the documentation is hosted on but likely will be moved in future.
This should help get you going with developing Construct 3 addons. Again this only covers single-global plugins; we'll update the documentation accordingly as we roll out new features and make new APIs available.

GameDev News

3. April 2017


There is a new release of the Defold game engine, release 1.2.101.  Defold is a free, cross platform 2D game engine.  If you are interested in learning more about the Defold engine, we have a complete tutorial series available here.

Details of the new release:


  • DEF-2574 - Added: Efficient WebP compression for PVRTC and ETC1
  • DEF-2582 - Added: screen_x/screen_y and screen_dx/screen_dy fields for multi touch input.
  • DEF-2595 - Fixed: Profile counters Lua.Ref and Lua.Mem in web profiler.
  • DEF-2522 - Fixed: Support for detection of require with same line access.
  • DEF-2541 - Fixed: Issue with Android native extension library order.
  • DEF-2585 - Fixed: Some buffer documentation fixes.
  • DEF-1408 - Fixed: Argument verification for render.draw and render.render_target.
  • DEF-2428 - Fixed: Model UVs can now be outside [0..1].
  • DEF-2567 - Fixed: Resources was incorrectly excluded if shared between excluded/bundled collectionproxies.
  • DEF-2569 - Fixed: On iOS UIScreen main screen bounds didn't update when rotating the screen.

They also described in more detail the new WebP compression option:

Efficient WebP compression for PVRTC and ETC1

When selecting WebP compression for compressed texture formats (PVRTC1 and ETC1), the WebP compressor has up until now just been compressing the texture file as a raw LUM8 texture (an array of bytes). We have greatly improved this compression by transforming the compressed texture format data into data more suitable for WebP image compression using an internal intermediate format. This is then retransformed back into the compressed texture format when loaded by the run-time. This has shown an average improvement of anything between 40-60% over compressing with ZLib (or WebP with LUM8).

You can read more details about this release here.

GameDev News

31. March 2017
Today we have the final release of Unity 5.x before they move on to Unity 2017. This release comes with a ton of new features including Vulkan support, improved graphics performance, an improved light mapper and more.

Details from the release blog:

Massive lighting improvements
5.6 includes the Progressive Lightmapper preview, which provides immediate feedback when trying out different lighting scenarios, and much faster iteration, compared to the current Enlighten solution. 5.6 also offers Light Modes, which allow for various ways of mixing real time and baked lighting for static and dynamic objects.

Improved graphics performance
GPU Instancing which enables new kinds of effects where many similar objects are needed at a very low performance cost, has been improved with support for Procedural Instancing. And, with the addition of Compute Shaders for Metal, you can now add more details to your games by tapping into the raw power of the chipsets on Apple iOS and macOS.

Vulkan support
Vulkan support brings increased speed while reducing driver overhead and CPU workload; this leaves the CPU free to do additional computation or rendering and saves on battery life for mobile platforms.

Massive update to Particle System
5.6 greatly extends the range of particle effects to give more options and control to the user. This update also significantly improves Particle System performance.

New Video player
A new multi-platform video player enables playback of 4k video allowing you to build 360 degrees videos VR experiences.

Navigation system improvements
Improved AI and Pathfinding tools–also referred to as the NavMesh system–expand the possibilities to manipulate multiple nav meshes and agents. And, new tools for procedurally generated or dynamically loaded content enable a whole new set of use cases and gameplay options for character navigation.

New 2D tools and improvements
Unity 5.6 adds a whole set of 2D features that give you more control and make it easier to create complex 2D objects. New features for 2D physics enable new kinds of gameplay and effects, including fully featured particle effects interacting with 2D objects.

TextMesh Pro
One of the top performing tools on the Unity Asset Store is now available for free to users of 5.3+ and will be soon be natively integrated into Unity. TextMesh Pro features advanced text rendering with dynamic visual text styling, along with greatly improved control over text formatting and layout.

Performance Reporting and debugging improvements
In addition to exception reports, Performance Reporting now collects native crashes for iOS. Physics debug visualization and profiler improvements make it easier to find the source of performance issues in the game.

New platforms
Seamlessly publish to Facebook Gameroom, as well as Google Daydream and Cardboard for Android and iOS. Nintendo Switch support is also available now.

Unity Collaborate (Beta)
We added new options when publishing changes for finer control of your Collaborate projects.

Experimental support for WebAssembly
In 5.6 we bring experimental support for WebAssembly, a new cross-browser technology designed to help improve the Unity WebGL experience.

GameDev News

28. March 2017


Construct is a 2D game engine that provides a visual programming interface and compiles down to HTML5.  Details of the upcoming release were announced back in February, today a beta is available to try.  With the move to Construct 3 it has moved entirely to be browser based, requiring the Chrome browser.


Details of the beta:

What the beta includes

Our aim is to get lots of testing done and receive general feedback. Construct 3 is also not on sale yet. So for the public beta we are making the Free Edition of Construct 3 available. This has limits and several features are unavailable. However we will be making the fully-licensed version available for one week during the Newgrounds Gamejam from May 15th-21st! We aim to have subscriptions on sale when that week ends, by which time we should have found and fixed any last issues relating to subscriber-only features.

How to use the beta

Construct 3 requires Chrome 57+. This recently became the lastest stable version. If your system hasn't updated yet, you can usually manually update by opening the Chrome menu and selecting Help → About Google Chrome. On mobile, check for updates in the Google Play Store. If you still can't update, try installing Chrome Beta.

You can log in to Construct 3 (and the website) with the same username and password you use here on

We'd like to point out one especially useful feature of Chrome that makes it easier to use Construct 3: in the Chrome menu, try selecting More tools → Add to desktop (or Add to shelf on Chrome OS, or Add to homescreen on mobile). Be sure to tick Open as window if the option is there. This creates an icon for Construct 3 on your desktop or home screen that lets you use Construct 3 like any other app. It also removes the browser address bar and UI, which saves space on your screen for more of Construct 3! And don't forget Construct 3 works offline too, so the icon will continue to work wherever you go or whatever happens to your Internet connection.

Let me at it!

Ready to go? We're launching a whole new website over at It's still a work in progress, but we'll be updating it regularly throughout the beta. If you want to jump directly to Construct 3, just click the link below.

GameDev News

Month List

Popular Comments