Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon

20. July 2017

AppGameKit 2017.07.19 update was just released.  AppGameKit is a beginner/indie focused game engine supporting C++ that can target several different platforms.  We covered AppGameKit 2 a couple years ago as part of the Closer Look At game engine review series if you want more information.  Release 2017.07.19 brings several new features including automatic shadow generation, 3D particles and normal map support.

Further details from the release announcement:

AppGameKit Player Apps

  • The AppGameKit Player on iOS will now display the Wifi IPv4 address over the mobile data one, if available

3D Shadows

  • AppGameKit now supports 3D shadow effects. Shadows are cast automatically from the directional light.

  • There are three different shadow modes you can choose from:
    • Uniform shadow mapping
    • Light Space Perspective shadow mapping
    • Cascade shadow mapping
  • The new shadow commands are;
    • SetShadowMappingMode
    • SetShadowSmoothing
    • SetShadowMapSize
    • SetShadowRange
    • SetShadowBias
    • SetShadowLightStepSize
    • SetObjectCastShadow
    • SetObjectReceiveShadow
  • New tier 1 shadow demo (found in the 3D demo folder)

3D Particles

  • Added 3D particle commands
  • Added a 3D Particle example to demonstrate their usage


  • Added SetObjectNormalMap command to add a normal map to a 3D object that uses the default shaders
  • Added LoadShaderFromString command to specify the shader source code directly as a string
  • Changed the mesh to light distance calculation to prefer closer lights regardless of light range when the number of lights is exceeded
  • If the number of pixel lights affecting a mesh exceeds the limit (currently 4) then the additional pixel lights will be applied to the mesh as vertex lights if possible
  • Added support for tangent and binormal attributes in 3D objects loaded from external files
  • Objects using a normal map that don't have any tangents or binormals will have them generated at runtime

  • Added normal mapping example project
  • Added support for the vertex color attribute for 3D objects using the default shaders

3D Model formats

  • Upgraded to version 3.3 of the Open Asset Import Library for 3D model loading
  • Currently supported 3D model formats are: .x .fbx .dae .3ds .obj .b3d .3d


  • DrawLine on all platforms will now draw the last pixel of a line whereas previously the last pixel was left blank
  • Fixed DrawBox drawing unfilled boxes incorrectly if the virtual resolution didn't match the window size

2D Physics

  • Fixed SetSpritePhysicsOff causing a crash if called inside a contact loop using GetFirstContact and GetNextContact
  • Fixed a crash when setting a physics sprite to a width or height of 0

Raw File Paths

  • Fixed LoadVideo not working with "raw:" file paths on non-Windows platforms
  • Fixed LoadMusic not working with "raw:" file paths on all platforms


  • Added RequestAppReview for iOS 10.3 to rate the app from within the app itself
  • Changed iOS splash screen to fade to black instead of white before displaying your app
  • Fixed OpenBrowser on iOS not accepting URLs containing spaces


  • Added FacebookActivateAppTracking command to send app events to the Facebook app console and record app installs


  • Added ShareImageAndText command to share both an image and text at the same time


  • Fixed assigning default values to an array of strings in a function generating an error if the number of values didn't match the array size exactly


  • Updated Mac projects to use libc++, any Tier 2 projects will need to update their setings accordingly


  • Fixed spelling mistake in GetSocketListnerConnection command name, this is a breaking change and will need to be corrected in existing apps
  • Fixed network client disconnect not being forwarded to other clients
  • Added SetNetworkAllowClients to restart client listening after calling SetNetworkNoMoreClients
  • Added KickNetworkClient to kick a network client off the network, only the host can do this


  • Fixed ReplaceString cutting off the end of the string if the replace count limit is met
  • Fixed a memory leak in CountStringTokens and GetStringToken


  • Fixed Ouya Tier 2 template failing to compile


  • Fixed Android GameCenter commands crashing if passed an empty string for the leaderboard name
  • Exported Google Android apps should now be compatible with Android TV
  • Fixed ViewFile and ShareImage failing after the first attempt in exported APKs

Virtual Buttons

  • Fixed virtual button commands reporting the wrong button ID in error messages

Tier 2

  • Fixed Android ShowCaptureScreen in Tier 2 causing an exception
  • Removed old Visual Studio projects, AppGameKit now only supports VS2015
  • Support for Visual Studio 2017 has been delayed, we're awaiting a bug fix from Microsoft to continue support
  • Added a 64-bit template project for Windows using VS2015
  • Added a 64-bit version of the Windows interpreter to the Players folder, it will not be used automatically to maintain backwards compatibility


  • Added support for 64-bit plugins in the 64-bit Windows interpreter, 32-bit plugins can only be used with the 32-bit interpreter
  • Added Example Plugin source code to the installed files on Windows, Mac, and Linux
  • Fixed a memory leak when calling plugin commands


  • Debugging from the AGK IDE will now attempt to use the loopback addres if no other IP addresses could be found


  • Fixed DrawLine on Linux sometimes being off by one
  • Fixed GetResumed and GetPaused not working on Linux
  • Linux apps should no longer exit when a socket disconnects

GameDev News

17. July 2017

Even with the release of the newly branded Unity 2017 series, the previous 5.6.x branch is still being maintained.  Today Unity released patch 5.6.2p3.  Other than some changes to logos to match new branding, this patch consists entirely of fixes, including:

  • Editor: Updated Unity logos in About Window and Update Window to match new branding.
  • (917931) - 2D: Fixed an issue where adjusting Collider2D's Offset when Using Tiled Draw Mode and Auto Tiling would result in inconsistent behaviour.
  • (918524) - 2D: Fixed an issue where the Editor becomes unresponsive when switching from OpenGL to Metal with a tiled sprite in the scene.
  • (920360) - Android: Buildpipe - correctly split resources between APK and OBB when building with LZ4.
  • (924523) - Android: Gradle - Removed debuggable from Manifest when creating APK.
  • (924519 Android: Gradle - Make sure unity3d and other files from raw/ are uncompressed in the APK.
  • (none) - Android: Gradle - Handle too many errors; filter out warnings and detect too long error list.
  • (924517) - Android: Gradle - don't explicitly set debuggable attribute when building with Gradle to avoid lint security warning.
  • (924516) - Android: Fixed the NamePhonePad flag.
  • (922898) - Android: Moved GoogleVR initialisation to run on UI Thread thus fixing startup crash.
  • (887824) - Android: Gradle - Support custom library build.gradle files.
  • (918606) - Android: Fixed an issue with enabling Split Application Binary flag in Android player settings would affect other platforms.
  • (919308) - Android: Fixed an issue with alpha texture size in ETC1 texture compression with split alpha.
  • (925444) - Animation: Fixed layer root motion broken on standalone.
  • (914365) - Animation: Fixed a crash in PlayableTraverser::RootByType that was triggered when disabling a GameObject by using OnStateMachineExit.
  • (901588) - Editor: Restored SRGB write state after internal override.
  • (915524) - Editor: Fixed the case of "Generate Lighting" drop down menu being hidden when inspector was resized to minimal width.
  • (none) - GI Progressive Lightmapper: Fixed a crash in light probe rendering occurring when changing or removing probes.
  • (912603) - Graphics: Fixed sRGB flag returning false on the LDR target texture from a HDR to LDR image effect in a linear project.
  • (923842) - Graphics: Fixed an issue where overlapping cameras drawing to the same target would not composite correctly
  • (913828) - Graphics: Fixed an issue where a ComputeBuffer applied to a Material Block doesn't take effect when drawing via DrawMesh*Indirect.
  • (918788) - Graphics: Fixed a rare crash/hang which, could happen in very complex scenes, when graphics jobs were enabled.
  • (912723) - Graphics: Fixed a crash triggered by setting the SkinnedMeshRenderer.updateWhenOffscreen flag to true via a script.
  • (923517) - IL2CPP: Fixed an issue with setting enum type fields in .NET 4x with relfection using an integer value.
  • (894273) - iOS: Fixed an issue where iOS screen info was retrieved for every request instead of being cached
  • (880426) - Linux: Added an additional fix for uninitialized screen dimensions(/mouse input) at startup with some window managers.
  • (924516) - UI: For Name content type, use NamePhonePad touch screen keyboard type.

The patch is available for download for Windows and Mac OS here.

GameDev News

13. July 2017

Babylon.JS 3.0 has just been released.  BabylonJS is an open source WebGL powered 3D game engine.  If you are interested in learning more about BabylonJS I reviewed an earlier version available here as well as a more recent tutorial series available here.  The 3.0 release brings a number of new features to the game engine including WebGL 2 support, WebVR 1.1 support, glTF 2.0 support and more.  Perhaps most interestingly, this release also introduces the Babylon.UI extension for creating user interfaces.

Details from Microsoft’s developer blog:

Support for WebGL 2

WebGL 2 is a great step forward for 3D developers as it allows more control over the GPU. The support for WebGL 2 is completely transparent with Babylon.js 3.0. This means that the engine will automatically use WebGL 2 if available, and it will fall back to WebGL 1 if not. Mode details can be found here.

Support for WebVR 1.1

With a single line of code, you can now unleash the power of virtual reality directly in your browser. Babylon.js 3.0 supports all VR devices, including the new Windows Mixed Reality headsets. Babylon.js can also transparently use WebVR 1.0 if your device does not support the latest version of the specification (Gear VR for instance). It also supports using device orientation events to provide virtual reality on mobile.

You can visit the Build 2017 website to watch a complete session about Babylon.js and WebVR.

You can find the Sponza demo here.

Support for glTF 2.0

glTF is a file format for GL APIs. With Babylon.js 3.0, we added complete support for loading glTF 2.0 files (including physically based rendering materials).

This version was ratified recently by Khronos group. glTF will help the 3D ecosystem to enable all new ways to create, share and consume 3D.

Improved physically based rendering (PBR)

The PBRMaterial used to render physically based objects was completely rewritten. It is now more accurate and better aligned with GLTF2.0 specifications. This material can be used to simulate real life lighting and provide photorealistic scenes.

You can find a live demo here.

Introducing Babylon.GUI

The Babylon.js GUI library is an extension you can use to generate interactive user interface. It relies on hardware acceleration to produce a fast and light way to deal with user interaction.

The Babylon.GUI extension can be helpful with VR scenarios when you cannot display HTML elements. It can also be used to project your UI in 3D. In this case, the UI will be textured on a 3D object but will remain functional.

Support for morph targets

Morph targets are a great way to animate objects by using morphing between different targets. This technique is widely used to animate character heads, for instance.

You can find a technical demo here.

Support for live textures using WebCam

You can now create project webcam content to any textures in your world. This could be used to simulate mixed reality experience or apply some fun effects like in this ASCII art demo.

BabylonJS is available here and on Github.

GameDev News

12. July 2017

The Godot Game Engine has just received Python support via the new GDNative interface.  Unfortunately the project is Linux only at this moment, so MacOS users will have to jump through some additional hoops, while Windows users are simply out of luck.

Details from the Godot blog:

All core features of Godot are expected to work fine:

  • Builtins (e.g. Vector2)
  • Object classes (e.g. Node)
  • Signals
  • Variable export
  • RPC synchronization

On top of that, mixing GDScript and Python code inside a project should work fine, have a look at the Pong example to see how you can convert one by one your existing GDScript code to Python fairly easily.

This release ships a recent build of Godot 3.0-alpha (yes, it's a beta based on an alpha...) and CPython 3.6.1 with the standard library and pip, ready to work with the Python ecosystem in its full glory (can't wait to see people experimenting game AI with Pytorch!).

The project is Linux-only so far, however you should be able to compile it from the sources if you are on macOS (let us know if you do so). Binaries for all platforms will eventually be provided when Godot 3.0 gets stable.

As always, keep in mind this is a beta and you are expected to encounter issues and maybe crashes. If so, make sure to report them on the project's bug tracker ;-)

The project Github page is available here.

GameDev News

11. July 2017

A new version, 1.2.108, has been released for the Defold game engine.  The Defold game engine is a cross platform, Lua powered, free (as in beer) mobile focused game engine.  If you are interested in learning more about the Defold engine, we have a complete tutorial series available here.

This new release brings a few new features including new texture formats, native extensions are finally available on Win32 and support for the newest iOS and OS/X versions.

Full details of the release:

  • DEF-2746 - Added: Add 16-bit RGB/A and Luminosity + Alpha support to engine
  • DEF-2796 - Added: WebP lossy/lossless support for 16-bit RGB/A and Luminosity + Alpha
  • DEF-2731 - Added: Added Win32 support in Native Extensions
  • DEF-2778 - Added: Added support for iPhoneOS 10.3 and MacOSX 10.12
  • DEF-2690 - Fixed: Bump max spine scene count for GUI scenes
  • DEF-2716 - Fixed: Minor fix for ColladaUtil if scene only has bones in the visual scenes entry.
  • DEF-1954 - Fixed: WebP lossy compression with HIGH compression level gave visual errors

GameDev News

Month List

Popular Comments