Defold 1.2.126 Released

A new version of the Defold game engine was released, version 1.2.126.  The nicest new feature of this release is the ability to do side by side editing in the Defold Editor.  The Defold Engine is a 2D lua powered free engine from King.  If you are interested in learning to use the Defold Engine, be sure to check our tutorial series available here.Defold

Details from the release notes:


  • DEF-3137Added: Added dmExtension::RegisteriOSUIApplicationDelegate() to Native Extension SDK
  • DEF-3024Fixed: Renamed (internal) AxTls symbols with a namespace to avoid libcrypto/libssl clashes
  • DEF-3146Fixed: Fix win32 accumulating error in dt when “variable_dt” checked in game.project
  • DEF-3161Fixed: Set content length explicitly to zero for 204 (no content) responses
  • DEF-3237Fixed: Improved error handling for extension errors on Win32
  • DEF-3216Fixed: factory.create() now allows nil for the properties argument
  • DEF-3218Fixed: Fixed rare assert when adding and deleting many objects during the same frame
  • DEF-3238Fixed: Reenabled logging when using lldb


  • DEFEDIT-1312Added: Side-by-side editing
  • DEFEDIT-1345Fixed: Defold 1.2.124 not launching on macOS High Sierra 10.13.4
  • DEFEDIT-1348Fixed: Add exception printing & logging during application startup
  • DEFEDIT-1349Fixed: Add util directory to reflection check build step
  • DEFEDIT-1350Fixed: The debugger is no longer working
  • DEFEDIT-1351Fixed: Shift+Enter from the Find field should Find Previous in code editor and console
  • DEFEDIT-1352Fixed: Undo after auto-complete no longer removes the whole line
  • DEFEDIT-1353Fixed: Text selection almost invisible when searching
  • DEFEDIT-1355Fixed: Error when syncing new project from editor
  • DEFEDIT-1356Fixed: Error when changed a value (scale) on a template node and then tried to reset it
  • DEFEDIT-1357Fixed: AssertionError when trying to attach to a running engine while building
  • DEFEDIT-1358Fixed: Breakpoints no longer get copied when you make new lines on a line with a breakpoint
  • DEFEDIT-1359Fixed: You can now mouse click to select autocomplete result
  • DEFEDIT-1360Fixed: Correctly syntax-highlight numbers inside all-caps Lua constants
  • DEFEDIT-1361Fixed: Lua keywords inside strings will no longer trigger indentation changes

GameDev News


GameGuru Update Adds New PBR Based Graphics Engine

GameGuru, perhaps the most beginner focused 3D game engine available, just received a pretty sizeable update.  Hands down the biggest new feature of the release is the new Direct X 11 powered, PBR (Physically Based Rendering) graphics engine, which should both look better and have increased performance.  In addition to the new renderer, there are several other fixes and features in the release.

Details from the release:

Great Assets and Levels

  • Improved the Welcome splash to show off PBR game level
  • Updated Big Escape level to use PBR only assets
  • Added new ‘Miscellaneous’ folder with ‘Massive Chess’ for Chess Game sampleGG
  • Security Fence and Gate
  • Added ‘Preview Orbs’ folder to Misc models for PBR material previewing
  • Added CityscapePBR folder which contains extra PBR assets for Big Escape
  • Added two new Grand Pianos to the Furniture folder
  • Added a new glass fence to the Fixtures folder

Much Improved Performance

  • Removed long-silence when standalone first runs (slow on some systems)
  • Launch time loading speed increased significantly (PCTEST: 60sec -> 12sec)
  • HLSL shaders and LUA scripts now compiled into binary for faster loading
  • Faster HUD rendering due to quad batching
  • Multicore AI for faster processing of character AI

Better Visuals

  • New post process shader used called FXAA-CV-LS (improves anti-alias and contrast)
  • Fixed issue with Steam Overlay not rendering correctly
  • Enlarged editor icons and gave them a new design
  • Cascade shadow mapping now with 8 cascades instead of 4
  • Standalone splash screen now detects closest watermark resolution
  • Can change sky shader in sky file and sky in realtime

And more……..

  • Added full weapon and animation behaviour to the Character Creator
  • More control over static light mapper
  • Added support for Logitech F310 controller to control Standalone menus
  • Improved FBX importing
  • Added lots of new LUA commands

GameGuru is available on Steam here or on

GameDev News


AppGameKit v2018.4.12 Released

AppGameKit v2018.4.12 was just released on Steam.  The update adds a load of new functionality to the game engine the star of which is AR support for both ARCore and ARKit devices.  Mobile devices also received cloud storage support, iCloud on Apple devices, Google Drive on Android devices.  The release was also packed with minor features and fixes.  If you’ve never heard of AppGameKit, be sure to check out our (somewhat dated) Closer Look review.

Details of the release from the Steam news page:

  • Here’s the full Augmented Reality Command List and Values:
    • void ARSetup()AGK
    • int ARGetStatus()
    • void ARUpdateInternal()
    • void ARPause()
    • void ARResume()
    • void ARDestroy()
    • void ARControlCamera()
    • void ARDrawBackground()
    • void ARSetPlaneDetectionMode( int mode )
    • void ARSetLightEstimationMode( int mode )
    • float ARGetLightEstimate()
    • int ARHitTest( float screenX, float screenY )
    • float ARGetHitTestX( int index )
    • float ARGetHitTestY( int index )
    • float ARGetHitTestZ( int index )
    • float ARGetHitTestNormalX( int index )
    • float ARGetHitTestNormalY( int index )
    • float ARGetHitTestNormalZ( int index )
    • int ARGetHitTestType( int index )
    • void ARHitTestFinish()
    • int ARGetPlanes( int reserved )
    • float ARGetPlaneX( int index )
    • float ARGetPlaneY( int index )
    • float ARGetPlaneZ( int index )
    • float ARGetPlaneAngleX( int index )
    • float ARGetPlaneAngleY( int index )
    • float ARGetPlaneAngleZ( int index )
    • float ARGetPlaneSizeX( int index )
    • float ARGetPlaneSizeZ( int index )
    • void ARGetPlanesFinish()
    • int ARCreateAnchorFromHitTest( int index )
    • int ARCreateAnchorFromPlane( int index )
    • void ARFixObjectToAnchor( int objID, int anchorID )
    • int ARGetAnchorStatus( int anchorID )
    • void ARDeleteAnchor( int anchorID )

Find out more about ARCore and which devices are compatible for Android HERE
Learn more about ARKit from Apple HERE.


  • Changed iOS to use an OpenGL ES 3.0 context to support the larger shaders that AppGameKit generates when using multiple features like normal mapping with cascade shadow mapping


  • Minimum supported version of Android is now 4.0.3 (API 15)
  • Updated Google Play Services to version 11.8.0 on Android
  • Added commands to check and request permissions for certain Android features, such as camera access, sdcard read/write access, and GPS location tracking
  • You must start using the new permission commands in your apps, even though they currently auto granted at startup, as a future version of AGK will switch to auto deny, as required by Google
  • Fixed FacebookActivateAppTracking causing a crash on Android
  • Fixed Android orientation changes sometimes causing the AGK render area to be offset from the visible display area
  • Fixed physical keyboards on Android causing edit boxes to not accept any characters if the backspace key was pressed too many times
  • Added 64-bit version of Android for better performance on 64-bit devices
  • Fixed GameCenter commands causing a crash on some Android devices

Cloud Data

  • Added Cloud Data commands to save and load variables to iCloud Drive on iOS and Google Drive on Android which will sync across all devices on the same platform with the app installed
    • SetupCloudData( string reserved )
    • integer GetCloudDataAllowed()
    • integer GetCloudDataChanged()
    • string GetCloudDataVariable( string varName, string defaultValue )
    • SetCloudDataVariable( string varName, string varValue )
    • DeleteCloudDataVariable( string varName )


  • Fixed LoadObject causing a crash with some FBX models, there may be further incompatibilities with newer FBX format specs
  • Added SetShadowCascadeValues command to set the size of each cascade level manually
  • Added DeleteObjectTree command to delete an object plus all attached objects
  • Fixed CreateMemblockFromObjectMesh incorrectly increasing string padding when called on an object created with CreateObjectFromMeshMemblock
  • Fixed SetSpriteAnimation causing a crash if called with a greater number of frames than the previous call
  • Fixed SetObjectMeshFromMemblock crashing if the memblock contains more than 65536 vertices

Video & Camera Fixes

  • Added double buffering to PlayVideoToImage on iOS to avoid flickering on some devices
  • Added double buffering to SetDeviceCameraToImage on iOS to avoid flickering on some devices


  • Fixed GetTweenPlaying commands crashing if a tween chain exists without being played

Text & Fonts

  • Added GetTextAlignment to return the current alignment mode of the text
  • Added DrawText command to draw text immediately to the screen
  • Fixed LoadFont failing to load from the system fonts folder when SetErrorMode is set to 2


  • Fixed JSON conversions being inaccurate with integers over 16 million due to floating point assumptions
  • AppGameKit Type variables that begin with an underscore “_” will now match with JSON fields that don’t have the underscore, for example an AppGameKit variable named “_type” will match a JSON field named “type”, this allows JSON files to have keywords that can’t be used as variable names in AppGameKit


  • Updated Android Tier 2 libraries and projects to use libc++_static instead of stlport_static

System Commands

  • Added GetDeviceNetworkType command to check the current network type (mobile or Wifi) or iOS and Android
  • Added GetStorageRemaining commands to get the current free space and total storage space on iOS and Android
  • Fixed written files sometimes being invisible to external PCs connected via USB
  • Fixed Android videos being replaced with a black texture after resuming the app on some devices


  • Updated Firebase to version 4.5.0 on Android
  • Updated Firebase to version 4.11.0 on iOS
  • Disabled Firebase functionality on Amazon apps due to a crash when it checks for Google Play Services

For all existing users the AppGameKit V2018.04.12 update is now live on Steam.

GameDev News


NightDive Studios Release System Shock Source Code

NightDive Studios, who specialize in releasing updated old classics, as well as the developers of a System Shock reboot currently in progress, justImage result for nightdive studios released the source code for the original System Shock on Github.  The code is released under the GPL license and with one pretty series downside… it’s the Mac port of System Shock.  This means building it is going to be a virtual nightmare for most people, as it requires a chip hardware ( Power PC ) that is no longer available as well as a compiler (CodeWarrior for Mac) which is no longer sold.   The release is also code only, so none of the data files are provided. 

Details from Github:

A project file for Metrowerks Codewarrior is provided in ShockMac/Shock.µ

You will need a PowerPC to build the Mac version of System Shock. Fortunately, there are emulators out there that are able to run PowerPC Mac Applications, like SheepShaver. You also need Metrowerks CodeWarrior 10 Tools to build the project and Stuffit Expander to unpack the project files and source code. The game was initially built with an older version of CodeWarrior, but we tested it with CW 10 Gold Tools (IDE 1.7) and it was able to build a working executable. Things you will need:

  • A PowerMac or an emulator like SheepShaver;
  • CodeWarrior for PowerPC (CW 10 Gold Tools works)
  • The original Mac System Shock data.

So obviously this is mostly useful as a code reference.  It will be interesting to see if the community does anything with this, System Shock is one of the all time greats.

GameDev News


Inkscape 0.92.3 Released

The popular open source vector graphics application Inkscape just had a new release, version 0.92.3.  This release was primarily a maintenance release but a few new features were also added.image

Details of the release:

  • Blank pages being output when attempting to print multiple copies of a document
  • The inability to cancel during the export of large files
  • Application crashes caused by attempting to drag a path at a cap or line join
  • Some issues with keyboard shortcut functionality on non-Latin keyboard layouts

A few performance improvements and usability enhancements that made it into the release, include:

  • New SVG export options from the command line
  • Support for right-to-left text
  • Improved ellipse controls
  • Multi-line text support for the PDF+LaTeX export
  • New render tile preferences for performance tuning
  • Better startup performance for many Windows users

You can read more about the release here with the complete release notes available here.  Mac users are going to have to wait a few days for a package to be available, but Windows and Linux users can download it here.

GameDev News


Phaser 3.3.0 Released

Phaser is a popular open source HTML5 2D game framework, that just released version 3.3.0.  Phaser has been on a rapid release schedule since Phaser 3 was released just last month.

Highlights of this release include:

  • Lots of new Game Configuration properties which are passed to Phaser330the renderer, including power preferences, anti-aliasing, drawing buffer preservation and more.
  • Arcade Physics can now wrap physics bodies around the world.
  • Camera shake, fade and flash all now have optional callbacks that can be invoked when the effect completes.
  • Camera fadeIn and Camera fadeOut are two new methods to help with scene transitions (also with callbacks)
  • Groups now listen for the destroy event coming from children and automatically purge them from the Group if received.
  • There is a new MatterGameObject which allows you to bind a Matter Physics body with any renderable Game Object, such as Text, Bitmap Text or TileSprite (see the labs for examples)
  • The Sound Manager has new chainable setRate and setDetune methods.

Additionally the documentation has seemed heavy focus which will hopefully result in Typescript definitions being available soon™.  In addition to the above features there were several other smaller improvements and bug fixes.  You can read the full change log here.

If you are interested in getting started with Phaser, be sure to check out our recently released Getting Started with Phaser 3 video tutorial, also embedded below.

[embedded content]

GameDev News


CryEngine 5.5 Preview Released

CryEngine 5.5 preview has just been released at GDC 2018.  In addition to several new features, the 5.5 release includes several new learning materials toCry55 help new developers get started using CryEngine.  Another major change in this release is the availability of source code for the new CryEngine editor.  Additionally, Crytek have announced a new royalty based cost structure.

Details of the release from the release announcement:

CRYENGINE 5.5 highlights:

  • Getting Started Course: Our new beginner’s course shows users with no experience in game development how to create a full game in CRYENGINE in just 10 chapters.
  • SVOGI Improvements: SVOGI can now run on consoles. We have enabled developers to cache SVOGI on the disk and calculate GI completely offline. This means users can make the most realistic scenes yet.
  • Terrain System Improvements: New features and enhancements vastly improve the terrain system, including the ability to weight and blend multiple materials, more detailed height maps, and more.
  • Updated Entity Components: New and legacy components are integrated in the new entity system, including rain and water ripple entities. A new VR Camera and interaction component makes getting up and running with VR even easier.
  • C# Upgrades: We have expanded how users can create C# assets directly inside the Asset Browser, with Visual Studio instances, debugging through the IDE, and more.
  • Game Platform Plugins: A brand new Game Platform plugin allows for easy access to common distribution platforms and data transfer protocols. This includes Steamworks and PSN API functions like matchmaking, leaderboards, and achievements.

Crytek are also moving to a straight royalty based subscription model with this release:

Crytek has announced a new 5% royalty-based model for CRYENGINE, alongside a range of improvements, enhancements, new learning offerings, and full access to the editor source code. Developers around the world now have complete, uninhibited, and easy access to the power of CRYENGINE, and the opportunity to have their expertise with the engine recognized.

Creators who release games using CRYENGINE V will find development faster and easier than ever before and incur costs only after $5,000 is raised in revenue. An enterprise tier will also be introduced for custom support packages and royalty buyouts. Developers currently developing on CRYENGINE 5.0-5.4 can apply for a royalty exemption if they wish to stay on the current version and not take advantage of access to the editor source code. For more information, consult the CRYENGINE FAQ pages.

They are moving away from the donation based system they implemented in 5.0 and frankly it makes sense.  While a donation based system was excellent for the end user it seemed unviable for a project like CryEngine.

[embedded content]

GameDev News


Unreal Engine 4.19 Released

After several beta releases, Unreal Engine 4.19 is finally here.  This release includes a new raft of graphical features, a new dynamic resolution feature that should help PS4 and UE419XBox One developers scale across devices, a unified AR API that works on both Apple and Google devices, a new AR game template, a Maya and Motionbuilder live link plugin, sequencer improvements, improved landscape LOD, material layers and much much more.

Details from the release announcement:

Whether you are creating games, linear media, architectural visualizations, or product design tools, Unreal Engine 4.19 enables you to know exactly what the finished product will look like every step of the way. The new Live Link plugin seamlessly blends workflows between external content creation tools and Unreal Engine so you can see updates as you make changes to source content. And with the continued improvements to Sequencer, you can be the director with even more control of your scenes in real time.

When it comes to bringing the worlds in your imagination to life, the sky’s the limit. Create breathtaking vistas in large, open worlds thanks to Landscape rendering optimizations. With the new Dynamic Resolution feature that adjusts the resolution as needed to achieve desired frame rates, those worlds will run smoother than ever before on PlayStation 4 and Xbox One.

It wouldn’t be a complete release without a mountain of workflow and usability improvements, and Unreal Engine 4.19 does not disappoint in this respect. Working with Material layers and parameters is easier and more intuitive. Features for debugging Blueprints are more powerful with the ability to step over, step into, and step out. You can now save content folders as favorites. Animation tools have been improved with pinnable commands, ability to have multiple viewports, and lots more.

As always, the newest version is available for download in the Epic Game Launcher. 


Be sure to read the release notes for comprehensive details of this release.

GameDev News


Vulkan 1.1/SPIR-V 1.3 Specifications Released

The Khronos Group have just released the Vulkan 1.1 and SPIR-V 1.3 specifications. Vulkan Vulkan is a low level cross platform graphics API, the successor to OpenGL offering easier driver development and potentially better performance.  SPIR-V is a binary intermediate language for shaders and computer tasks in Vulkan, OpenGL and OpenCL. 

Vulkan 1.1 includes several Vulkan 1.0 extensions as well as new Subgroup Operations.

Details from the Khronos press release:

New functionality in Vulkan 1.1 includes Subgroup Operations that enable highly-efficient sharing and manipulation of data between multiple tasks running in parallel on a GPU. Vulkan 1.1 also enables applications to perform rendering and display operations using resources that they cannot access or copy – for secure playback and display of protected multimedia content.

In addition, a wide range of Vulkan 1.0 extensions have been integrated, bringing significant proven functionality into core Vulkan 1.1, including: simultaneous rendering of multiple image views, use of multiple GPUs in a single system, and cross-process API interoperability for advanced rendering and compositing operations often used in demanding applications such as Virtual Reality. These core functionalities also include advanced compute with 16-bit memory access, and support for HLSL memory layouts, and display, processing and compositing of video streams, through direct sampling of YCbCr color formatted textures produced by many video codecs.

Integral to the release of Vulkan 1.1 is the new SPIR-V 1.3 specification that expands the capabilities of the Vulkan shader intermediate representation to support subgroup operations and enable enhanced compiler optimizations. The SPIR-V tools ecosystem continues to gain significant momentum with front-end compilers for both GLSL and HLSL, and to expand low-level tooling support from the open source SPIRV-Tools project.

In other recent Vulkan news, support for iOS and Mac OS was recently announced.

GameDev News


RenderDoc 1.0 Released

RenderDoc is a graphics debugger that was first launched over 4 years ago.  Today they reached the massive 1.0 milestone!  RenderDoc is open source under the MIT license, available for Windows, Linux and Android.  RenderDoc is capable of working with the following APIs:


The 1.0 release brings several new features, the biggest of this release has to be the addition Android support, although Windows users might appreciate the newly rewritten Qt client. 

Full details of the release from the release notes:

  • The Qt RenderDoc UI is now shipping on Windows, the previous .NET winforms UI has been completely deprecated and removed. Aside from better consistency between platforms this comes with a number of benefits to Windows users.
  • Qt natively supports high-dpi displays, which should ‘just work’ including per-monitor DPI awareness.
    • The Qt UI doesn’t require an interoperability copy-layer between C++ and C# so should be more efficient.
    • Likewise Qt’s rendering and updating is generally faster and the UI should feel more responsive.
    • Qt being C++ greatly increases my abililty to diagnose crashes from crash dumps as I actually get a minidump, not just an exception callstack.
  • RenderDoc now supports Android, with both OpenGL ES 2.0 – 3.2 and Vulkan 1.0, thanks to contributions from Samsung and Google.
    • Any android application is supported as long as it is built as debuggable, there is no patching or setup step needed, you just select your device and run the application. A step-by-step guide is available in the docs.
    • The workflow is deliberately almost identical to the familiar process on Desktop. Aside from selecting the Android device as the active replay context, you browse to the desired package, launch it, and when you open captures they appear to open locally even though the replay happens on the device.
    • All standard features for GL and Vulkan are supported on android, subject to hardware support for certain features.
    • This also comes with the same requirements as GL, such as all contexts being created as shared.
  • The internal serialisation system used for saving captures has been completely rewritten to be much more flexible and future-proof. This enables a lot of nice features in this release and opens the door for some interesting features in future. This is the reason behind v1.0 not being able to open v0.x captures.
    • It’s now possible to export capture files to another format, such as human readable xml. This XML lists all of the function calls recorded in the capture and all the parameters and structures. This XML can be edited, added to, changed, and then re-imported back into a capture file for replay. Future RenderDoc versions may include more formats.
    • Previously any GL calls that were serialised the same way – e.g. glTexImage2D, glTextureImage2D, glTextureImage2DEXT, glTextureImage2DARB were all serialised and displayed as one of these, regardless of which you called. Now gl functions correspond to the exact function called.
    • Errors that happen during loading of a capture can now in most cases be caught and gracefully propagated to the UI. This means instead of the whole program crashing, you at least get a message indicating that there’s a problem replaying the capture.
    • RenderDoc now saves thread IDs, timestamps, and durations for every function call. This can be exported in chrome tracing format, and in future may be displayed in-UI.
  • Resource Inspector
    • As a side bonus of the above serialisation refactor, there is a new centralised resource inspector panel. This panel contains a list of all resources available in the capture, and lists the details of the functions used to create and initialise them.
    • It also shows the links back and forth between related or dependent resources.
    • Resources with special viewers like buffers, textures and shaders have links from the resource inspector to go to those viewers.
    • Everywhere in the UI that resources are mentioned, they link back to the central resource inspector panel.
  • The RenderDoc python API has been revamped to be an explicitly designed and carefully documented interface into RenderDoc’s internals
    • The previous API was autogenerated from reflected C# internals, which meant that any internal warts were exposed and there was no documentation beyond code commenting.
    • The new API has been designed to be more naturally pythonic where possible and present a more consistent and unified interface.
    • Likewise all API endpoints and structures are documented with python docstrings for help(), as well as being generated into the sphinx documentation.
  • RenderDoc now has features for annotating capture files
    • A general capture comments system now allows saving some arbitrary text with a capture, and it will be displayed first and foremost when opening a new capture. This could be used for storing a build date or version, some reproduction information, or other metadata that is useful to store embedded in the capture file.
    • Bookmarks can be saved with the capture, so that you can save an important event with the capture before sharing it, making it easier for someone else (or you in the future) to jump to the most useful event.
    • The resource inspector allows for renaming of any resource, which can be used both to give names to important resources that only have an autogenerated name, as well as renaming resources based on how they are used within the particular capture. If one buffer in particular is related to a bug, it can be renamed to highlight it.
  • AMD have provided performance counter integration into RenderDoc. This includes both access to all of their hardware counters on all APIs that RenderDoc supports, but also a simple sortable table view of counters for browsing the results and finding hot drawcalls.
    • This does not mean RenderDoc is a full-featured profiler! However it can be useful to obtain these counters on existing RenderDoc frame captures.
  • The bug reporting system is much improved. As well as being a more streamlined experience, it tries to help users provide more useful bug reports.
    • Most bug reports without contact information and without a reproduction capture cannot be resolved and end up getting ignored, only a small fraction end up resulting in actual fixes.
    • To address this, the bug reporter encourages users to put in their email address and stores it for any future bugs.
    • The user is also able to opt-in to upload the most recently loaded capture file. If able to share this will greatly help with reproducing any bug.

The source code and precompiled binaries are available on Github.

GameDev News