Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon

6. June 2018

I have been talking a fair bit lately about the Armory3D engine, a newly free open source Blender hosted cross platform engine.  You can target several different platforms using Armory and the technology that makes this possible is Kha.  Today we are looking at Kha.  Kha is an open source cross platform Haxe powered low level framework providing functionality like 2D and 3D graphics, input handling, audio and more.  It does it in an extremely cross platform manner able to support a huge number of platforms.  Essentially it provides the low level functionality required to make a game, much like SDL or SFML.  It is also an important technology to learn if you intend to use the Armory game engine.

Today I take a closer look at this behind the scenes technology in this video.  We cover the features of Kha then go through the process of installing Kha and getting up and running.

Kha has a couple prequisites that you need to install before getting started.  You need to install the following two technologies before installing Kha:

Once installed, you have two easy options for getting started with Kha.  You can either use Kode Studio, a customized version of Visual Studio Code, or you can install the Kha Extension Pack to your existing Visual Studio Code install.  Now that you’re up and going with Kha you probably want some code to work with, which is available in this repository.  Finally once you start learning Kha, you will probably want to check the Kha documentation or the reference materials.

Programming ,

5. June 2018

King have just released a new version of their Defold game engine, 1.2.129.  This release contains a few fixes around localization and Android notifications as well as a new tutorial Walking Astronaut.  Speaking of tutorials, if you are interested in learning the Defold game engine be sure to check out our tutorial series.

Details of the release from the release notes:


  • DEF-3133 - Added: Added spine.reset_ik_target function
  • DEF-2747 - Fixed: Local push notifications are now persistent between sessions on Android
  • DEF-3303 - Fixed: Engine and Editor 2 interpret a zero width space as whitespace for breaking lines
  • DEF-3281 - Fixed: Each collection now supports more than 16k sprites (fixed again!)
  • DEF-3284 - Fixed: Updated Android manifest to target SDK version 26
  • DEF-2596 - Fixed: Collection factory memory leak


  • DEFEDIT-1381 - Fixed: Saving on Windows 10 now faster.
  • DEFEDIT-1393 - Fixed: Particle effect emitters sorted on z-value in the editor.
  • DEFEDIT-1395 - Fixed: Intermittent crash when playing and editing particlefx.
  • DEFEDIT-1397 - Fixed: Boxes in gui editor sorted by layer + index.
  • DEFEDIT-1398 - Fixed: Models no longer overdrawn by other objects in scene editor.

The release notes also mention some functionality currently under development.

Lua timer module

The new timer functionality just barely missed this release. It will now land in the next release.

Live update

The tasks of the live update feature are now into its final stages
and should be available soon for release.

Native extensions

We are currently working on optimizing the build times for Win32/Win64.
Early tests are really promising but there are a series of small tasks that needs to be done
in order for this to work well.

GameDev News

4. June 2018

Today was Apple’s annual developer conference WWDC with the usual swath of new products and betas announced.  Among the announcements was one of direct importance to game developers everywhere.

From the document What’s New in iOS 12:

Deprecation of OpenGL ES

Apps built using OpenGL ES will continue to run in iOS 12, but Open GL ES is deprecated in iOS 12. Games and graphics-intensive apps that previously used OpenGL ES should now adopt Metal.

Metal is designed from the ground up to provide the best access to the modern GPUs on iOS, macOS, and tvOS devices. Metal avoids the overhead inherent in legacy technologies and exposes the latest graphics processing functionality. Unified support for graphics and compute in Metal lets your apps efficiently utilize the latest rendering techniques. For information about developing apps and games using Metal, see the developer documentation for Metal, Metal Performance Shaders, and MetalKit.

They will also be deprecating OpenGL support in the next Mac OS version “Mojave”.  Deprecating doesn’t mean that OpenGL will stop working on those platforms, but it may in future OS revisions.  What it does mean however is that OpenGL support will no longer be updated, no new features, no new drivers, etc.  So basically if you want high performance 3D graphics on iOS and MacOS devices, you now have to use their native API Metal.  

If you want to develop cross platform for Apple platforms going forward you either need to use a game engine that does the work for you, or write a Metal renderer for iOS and MacOS targets.  There might be some hope however in the form of MoltenVK which enables Vulkan code to run on Metal.

GameDev News

4. June 2018

It turns out the rumour over the weekend was true, Microsoft did in fact spend $7.5 billion to acquire GitHub.  GitHub is the largest open source code repository implementing the open git standard.  Being an open standard means moving your code off of GitHub is easy to do, so Microsoft needs to keep customers through good service going forward.  Both GitHub and Microsoft have released statements about the acquisition:

From GitHub:

We both believe that software development needs to become easier, more accessible, more intelligent, and more open, so more people can become developers and existing developers can spend more time focusing on the unique problems they’re trying to solve.

We both see the growing need for developers and the growing importance of software in all facets of our lives.

And, most importantly, we both believe we can do greater things together than alone. Collaboration, after all, is at the heart of everything we do.

From Microsoft:

First, we will empower developers at every stage of the development lifecycle – from ideation to collaboration to deployment to the cloud. Going forward, GitHub will remain an open platform, which any developer can plug into and extend. Developers will continue to be able to use the programming languages, tools and operating systems of their choice for their projects – and will still be able to deploy their code on any cloud and any device.

Second, we will accelerate enterprise developers’ use of GitHub, with our direct sales and partner channels and access to Microsoft’s global cloud infrastructure and services.

Finally, we will bring Microsoft’s developer tools and services to new audiences.

Most importantly, we recognize the responsibility we take on with this agreement. We are committed to being stewards of the GitHub community, which will retain its developer-first ethos, operate independently and remain an open platform. We will always listen to developer feedback and invest in both fundamentals and new capabilities.

It will be interesting to see how this turns out.  I see little reason to be afraid of this acquisition as Microsoft doesn’t have a competing product in this sector, having shut down CodePlex last year.  Now as a stand alone unit under Microsoft, Github should hopefully be extremely well funded going forward.

GameDev News

2. June 2018

Godot 3.0.3 RC3 was just released.  This release focused heavily on getting Mono exporting working properly:

Quite a lot of work went into making the Mono exports work for Windows targets. It turned out to be quite a hairy problem. But now Mono exports to Windows, Linux, and MacOS should work with a single click. It is no longer necessary to ship the Mono runtime DLL manually.

In this release JavaScript export templates were also restored after being broken in RC2.

There are however some changes and known issues you should be aware of in this release.  Details from the release announcement blog:

Known incompatibilities with Godot 3.0

  • If you use the Bullet physics engine and relied on the fact that the calculated effective gravity on KinematicBodies was always '0' then you will need to fix your code as this is now correctly calculated. See #15554 for details.
  • Setting the v member of a color did not properly set the s member. This is now corrected. See #16916 for details.
  • RichTextLabels did not properly determine the baseline of all fonts. If you relied on the look of the previous implementation please let us know. See #15711 for details.
  • SpinBoxes didn't calculate their width properly. This is now fixed but could subtly change your GUI layout. See #16432 for details.
  • OGG streams now correctly signal the end of playback. If you were relying on this not happening please let us know. See #15910 for details.

Known bugs in Godot 3.0.3

  • Vector3.snapped() does not work and just returns the original Vector3. Fixing this would have meant breaking ABI between Godot 3.0 and 3.0.2 so this function will remain non-functional.
  • move_and_slide() doesn't quite work correctly. An easy workaround is to increase the safe margin to 0.05 (or higher if required). It is not yet clear how to implement the proper fix without impacting users who already implemented this workaround in their projects. See issue #16459 for an explanation.
  • Some users report crashes on Windows 10 after a recent Windows update. We currently don't know what is causing this.

The 3.0.3RC3 release is available for download here.

GameDev News

Month List

Popular Comments