Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon

12. December 2016


The PlayCanvas team have just released a “mega” update for the PlayCanvas 3D HTML5 game engine.  If you are interested in learning more about PlayCanvas, we previously featured them in the Closer Look game engine series.  Now back to the update.


Calling an update “mega” you’d expect it to be loaded with features, and for the most part it is.  In this update:

  • live camera preview ( a must have! ) with a render preview window showing contents of selected cameracamerapreview
  • interactive asset previews in inspector
  • ability to toggle anti-aliasing off and on
  • place model in front of camera instead of origin by holding Ctrl key
  • switch between large and small thumbnails in asset view
  • up folder navigation option (another must have)
  • hover over asset to see full name
  • Code editor enhancements
    • highlight current line of code
    • highlight errors
    • better cursor visibility
    • fewer disconnection messages


The release also contains several optimizations and fixes:


Huge speedups achieved for both loading and rendering of scenes!

  • New thumbnail rendering system reduces VRAM usage in the Editor by up to a factor of two. This makes the Editor more stable and faster to load, especially for larger scenes.
  • Major optimisations for loading and Editor rendering process so projects with thousands of entities and assets can load and render now up to 10 times faster in extreme cases.
  • Asset load operations are now batched rather than performed one by one.
  • All engine assets are loaded only when they are required (when they are enabled), leading to reduced traffic and loading times.
  • Optimisations in internal API of Editor and UI leading to reduced garbage collection (and therefore GC stalls) and speeds up UI templating for Hierarchy and Assets panels.
  • Enabled GZIP on WebSocket traffic, which reduces data transfers for initial loading.
  • Fixed up arrow while navigating in the Hierarchy tree.
  • Fixed sorting of folders in the Assets panel tree.
  • Fixed material overrides on the Model Component if the model asset wasn’t loaded.
  • Cubemap faces now update in the Inspector (in the Faces section) if a face texture file is changed.
  • Read-only users can now select text/number field values.
  • Double click or right mouse click on number fields now will select whole content of the field and not just part of number separated by a dot or minus sign.
  • Networking improvements have been made to reduce disconnects.


You can learn more about PlayCanvas here.

GameDev News

11. December 2016


LibGDX, the cross platform Java powered open source game framework, just released version 1.9.5.  This release is mostly about upgrading under the hood libraries and tooling support including GWT, RoboVM and LWJGL version updates.  The release is also compatible with iOS 10 and Xcode 8.  If you want to learn more about LibGDX we have a comprehensive tutorial series available here as well as a video tutorial series available here.


Details of the update from the release announcement:

- Upgraded to MobiDevelop's RoboVM fork version 2.3.0, update your[sic] 
- Upgraded to GWT 2.8.0 for faster compiles and better compile output
- Fix NPE swallowing "video driver unsupported" error on LWJGL 2 backend.
- Allow window icons to be set in Lwjgl3ApplicationConfiguration or Lwjgl3WindowConfiguration.
- Allow window icon and title to be changed in Lwjgl3Window
- API Addition: ApplicationLogger interface, allowing easier access to custom logging
- DefaultRenderableSorter accounts for center of Renderable mesh, see
- Bullet: added FilterableVehicleRaycaster, see
- Bullet: updated to 2.85, see:
- Updated iOS native build scripts to iOS 10.1 and TVOS 10.0
- API Addition: BitmapFont#blankLineScale.
- Fixed rounding of Drawables in ProgressBar. Allow rounding to be disabled with setRound().
- Updated LWJGL3 backend to LWJGL 3.1.0, see
- LWJGL3 backend now supports non-continuous rendering, see
- API Change: Lwjgl3WindowListener.refreshRequested() is called when the windowing system (GLFW) reports contents of a window are dirty and need to be redrawn.
- API Change: Lwjgl3WindowListener.maximized() is called when a window enters or exits a maximized state.
- API Change: Lwjgl3WindowListener.deiconified() removed, combined with .iconified().
- API Change: Lwjgl3Window.deiconify() renamed to .restore() since it can also be used to de-maximize a window.
- Lwjgl3Window now has a maximize() method, and windows can be started maximized using the window or app configuration's setMaximized() method.
- NinePatch can now be drawn rotated or scaled.
- NinepatchDrawable is now a TransformDrawable.
- API Change: Group add* methods no longer remove and re-add the actor if it is already in the group, instead they do nothing.
- API Change: g2d.Animation is now generic so it can support Drawables, PolygonRegions, NinePatches, etc. To fix existing code, specify the TextureRegion type in animation declarations (and instantiations in Java 6), i.e. Animation myAnimation = new Animation(...);
- TiledDrawable throws unsupported operation if trying to draw rotated/scaled. #4005
- API Change: DragAndDrop now puts default position of drag actor at pointer location. The original default offset from the pointer was (14, -20).
- Added ShaderProgramLoader for AssetManager.
- BoundingBox#isValid now returns also true when min==max, see:

For details on updating your LibGDX project to the latest version see here.

GameDev News

8. December 2016


Epic have released a hotfix for Unreal Engine, 4.14.1.  Composed entirely of fixes, over 50 issues were revolved.


The hotfix consists of:

Fixed in 4.14.1
Fixed! UE-35609 Delay nodes used in a macro cause subsequent macro calls during the delay to never complete
Fixed! UE-38690 Regression - Nested scene component subobjects are no longer being registered when the owning scene component is added to an existing Actor instance as an instanced component.
Fixed! UE-38835 Rename "Visual Studio '15'" to "Visual Studio 2017"
Fixed! UE-39298 UE4 and UnrealLightmass fail to build Module.SwarmInterface.cpp due to an error trying to open include file 'metahost.h' in SwarmInterface.cpp
Fixed! UE-39284 Running GenerateProjectFiles.bat -2017 completes with warnings
Fixed! UE-38898 UE4 is not compatible with Visual Studio 2017 RC
Fixed! UE-38604 PS4 Platform Staging copies debug files (not allowed)
Fixed! UE-38992 [CrashReport] UE4Editor_Core!FString::Mid() [unrealstring.h:1154]
Fixed! UE-37249 MallocPoisonProxy can result in a memory stomp for aligned allocations in Debug and Development
Fixed! UE-38991 [CrashReport] UE4Editor_Engine!FUObjectAnnotationSparse<FBoolAnnotation,1>::AddAnnotation() [uobjectannotation.h:76]
Fixed! UE-38752 Cannot Delete Folder Containing Sub Folders from Content Browser
Fixed! UE-38721 Mouse cursor position is locked to center of screen when bShowMouseCursor is false
Fixed! UE-38599 User Defined Struct Editor Hides Long Variable Lists
Fixed! UE-38706 Dropdowns display incorrectly in non 1:1 zoom in BP on Mac and PC
Fixed! UE-38806 Potential fatal assert when using a custom MID with a TextRenderComponent
Fixed! UE-39059 No scrollbar in Structure UI
Fixed! UE-39198 Limited range of motion when controlling the camera view with the mouse
Fixed! UE-11796 Deleting folders in the Content Browser will not delete them permanently from Project Folder
Fixed! UE-38925 Reimport for a single FBX with multiple meshes will add all mesh pieces instead of the single mesh.
Fixed! UE-38935 Crash with FBX Import as Skeletal Mesh
Fixed! UE-38749 Pressing enter does not appear to activate OnClicked events in UMG When a button is focused
Fixed! UE-37698 Widgets can no longer take focus after clicking somewhere other than the widget itself
Fixed! UE-36766 Crash attempting to open an asset from Aim Offset graph in Persona
Fixed! UE-38811 Camera attached to a Spring Arm jitters when put at a +90 or -90 degree angle on the Y axis.
Fixed! UE-38906 Crash when streaming in a level with a child actor
Fixed! UE-38518 Animation Blueprint: Default values cannot be changed after compiling if node is currently selected
Fixed! UE-39197 Delay node of 0.0 causes crash
Fixed! UE-39137 Crash when Dragging Skeletal Mesh with Apex Clothing into Level
Fixed! UE-38998 [CrashReport] UE4Editor_Engine!UMaterialInterface::GetBaseMaterial() [materialinterface.cpp:268]
Fixed! UE-38716 Physics are popping in Vehicle Advanced Template
Fixed! UE-38989 [CrashReport] PhysX3PROFILE_x64!physx::PxcDiscreteNarrowPhase() [pxcnpbatch.cpp:293]
Fixed! UE-38694 Landscape Grasstype warning causes log spam when landscape is streamed in or out
Fixed! UE-39278 Assertion failed: !LandscapeActor || LandscapeActor == Landscape
Fixed! UE-38900 Paper2d Plugin Content Missing from Content Browser
Fixed! UE-39120 ETC2 Android devices are no longer supported in the Google Play Store as of 4.14
Fixed! UE-37101 Xbox One: Issues updating texture subregions
Fixed! UE-35738 IPv6 implementation is not working on IOS
Fixed! UE-39420 QAGame crashes when launched onto Android
Fixed! UE-38709 Using Deferred Decal Material With Dbuffer Decal Enabled Crashes Editor
Fixed! UE-38223 Crash In Material Editor When Previewing A Node
Fixed! UE-39051 Engine crash when Scene Capture Component 2D is added to viewport with forward rendering
Fixed! UE-39123 Mac Editor crashes when opening Realistic Rendering sample - FMetalRHICommandContext::RHISetShaderUniformBuffer
Fixed! UE-38609 DFAO runs out of memory on xb1 (DX11 RHI) due to an RHI bug
Fixed! UE-38699 Material Expression comparison keys incorrect, produces duplicate code
Fixed! UE-38325 Tangent Update Feature Not Working
Fixed! UE-38768 Contact Shadow artifacts with ray lengths despite length
Fixed! UE-34264 Procedural Mesh Component Crashes on XB1
Fixed! UE-39132 Crash when adding actors to the level
Fixed! UE-38353 Crash while deleteing a UMG Animation Track referencing a deleted UMG asset with duplicated BSPs in-scene
Fixed! UE-39067 Oculus Touch controllers jitter when the gamethread runs quickly
Fixed! UE-39113 Post process material needs a full RT clear with hmd mask.
Fixed! UE-39122 Crash when Simulating in Editor after Painting Foliage
Fixed! UEVR-381 Interleaved Compositor: Execute init views before late update
Fixed! UEVR-379 Interleaved Compositor: Implementing Post-Present handoff
Fixed! UE-38670 New IsA() code can be thread-unsafe during saving

You can read more about the release here.

GameDev News

7. December 2016


The following is a recap of major events in the world of game development for the week ending December 7th, 2016.  I do a weekly video recapping the news available here with this week’s video embedded below.  This post is a collection of links mentioned in the recap.


The Video


GameDev News

7. December 2016


Microsoft have just released a new version of TypeScript.  TypeScript is a superset of JavaScript that ultimately compiles down to JavaScript.  It adds several features to the JavaScript language, acting as a bridge of sorts until the new version of ECMAScript is released.  The most important feature is the type system, thus the name TypeScript.  TypeScript aims to solve several of the problems JavaScriptimage developers face as their code becomes more complex.  If you want to see TypeScript in action in game development, I used it for our Phaser tutorial series.


So, what new features does TypeScript 2.1 bring to the table?

  • downlevel async functions
  • object rest & spread
  • keyof and Lookup types
  • mapped types
  • Partial, Readonly, Record and Pick types
  • easier imports


Of course many of those additions probably make very little sense without a bit of description.  Thankfully the Microsoft blog thoroughly documents all of these new features.

GameDev News

Month List

Popular Comments