Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon
29. January 2016


Title pretty much says it all.  Unity just announced device support for the New Nintendo 3DS (that is actually the name, called the 3DS LL in Japan).  In case you are wondering, yes Unity already supported the 3DS as a platform, this announcement is specifically about the new model.  It appears to be a version of Unity 5.1 at this point and interestingly, this release ships with only IL2CPP, so there is no Mono runtime.  This should result in greater speeds, but may have a few unseen consequences.  You still need to be registered in Nintendo’s Developer program to gain access.


Excerpt from the announcement:

We announced our intention to support Nintendo’s recently released New Nintendo 3DS platform at Unite Tokyo and we’ve been very busy in the meantime getting it ready.  Now we’re pleased to announce it’s available for use today!

The first question people usually ask is “do you support the original Nintendo 3DS too?”  To which the answer is a qualified “yes”. We can generate ROM images which are compatible with the original Nintendo 3DS, and there are certainly some types of game which will run perfectly well on it, but for the majority of games we strongly recommend targeting the New Nintendo 3DS for maximum gorgeousness.

We’ve been working very closely with select developers to port a few of their existing games to New Nintendo 3DS. We’ve been busy profiling, optimizing, and ironing out the niggles using real-world projects, so you can be confident your games will run as smoothly as possible. In fact, one game has already successfully passed through Nintendo’s exacting mastering system; Wind Up Knight 2 went on sale at the end of last year!

Unity’s internal shader code underwent a number of significantchanges in the transition from version 5.1 to 5.2.  This brought many benefits, including cleaner and more performant code, and also fixed a number of issues we had on console platforms.  We’re not able retrofit those fixes to the 5.1 based version, so we shall only be actively developing our shader support from version 5.2 onwards.

We’ve been putting Unity for New Nintendo 3DS version 5.2 through its paces for a few months, and it’ll be made available once it’s proved itself by getting a game through Nintendo’s mastering system too.  That should be in the near future, but it’s not something that’s easy to put a date on.

So far, we’ve been in development with a Nintendo 3DS-specific version of the Unity editor, but now we’ve switched our focus towards upgrading to the latest version, with a view to shipping as a plug-in extension to the regular editor.  We have a 5.3 based version running internally, and we’re working hard to get it merged into our mainline code-base.

It should be mentioned that some features are not yet implemented in this first public release, notably UNet and Shadow Maps (although Light-Maps are supported). We’re prioritising new features according to customer demand, but right now our main goal is to get into the regular editor.

In common with other mobile platforms, there are some limitations as to what can be achieved with the hardware. For instance, Unity’s Standard Shader requires desktop-class graphics hardware so it’s not something we can support on Nintendo 3DS. However, as with other platforms, if you try to use a shader which is unsupported then Unity will fall-back to a less complex shader that gives the best possible results.

GameDev News

29. January 2016


Gdx-ai, an artificial intelligence library (steering, formations, pathfinding and more)  for LibGDX just release version 1.8.  From the change log:


- Updated to libgdx 1.9.1

- API Change and Addition: Pathfinding API

* Added method getIndex to the interface IndexedGraph.

* Removed classes DefaultIndexedGraph and IndexedNode.

- API Change and Addition: Behavior Tree API extended to make it easier to think and design in terms of states, see

* Added ability to guard any task.

* Added branch task DynamicGuardSelector.

* Now the text format supports internal sub-trees that, besides improving reuse and readability, allow you to use composite guards.

* Now the parser is able to report comments, which can be useful for certain tools such as graphical editors.

Gdx-ai can be downloaded from Github or can be installed using the GDX setup utility.

GameDev News

28. January 2016


Another week another Unity patch.  Windows version available here, while the Mac version is available here.  This one is composed of the usual assortment of bug fixes and improvements:

  • IL2CPP: Removed warnings from generated C++ code when compiling with clang.
  • (754282) - 2D: Fixed memory leak when applying changes to sprite.
  • (741003) - Android: Fixed internal profiler on Gear VR.
  • (738843) - Android: Timeout no longer happens when an application is sent to the background.
  • (756198) - AssetBundle: Loading multiple invalid asset bundles fails correctly now.
  • (736556) - AssetBundle: Change to use natural sorting when listing the AssetBundle names.
  • (756567) - AssetBundle: Fixed the AssetBundle loading error which was built with DisableWriteTypeTree enabled.
  • (716166) - AssetBundle: Fixed the hash collision when building AssetBundles.
  • (743704) - AssetBundle: Fixed the issue that LoadAsset(name) returns null if a bundle contains a prefab and another asset with the same name.
  • (715753) - AssetBundles: Fixed AssetBundle.CreateFromFile retaining file descriptor. - The previous fix was incomplete.
  • (760985) - Audio: Fixed mixer reverb effects getting cut off early in standalone builds.
  • (757799) - Core: Fixed crash when game object that is a child of a missing prefab is deleted.
  • (750117) - Editor: Fixed game object duplicates on play when reference to that game object is set in another scene.
  • (none) - Frame Debugger: Even when it was not used, it was creating some overhead in development standalone builds. Reduced that.
  • (756849) - Graphics: Fixed crash when calling Graphics.DrawMesh with null material.
  • (none) - Graphics: Fixed gpu memory leak in the splash animation.
  • (740782) - Graphics: Fixed a crash in the editor when switching graphics API from a non-DX9 API e.g. DX11.
  • (none) - Graphics: Fixed profiling related information (SetGpuProgramName) performance issue in development player builds.
  • (760665) - Graphics: Fixed SkinMeshInfo memory leak.
  • (724664) - Graphics: Textures imported as cubemaps now are properly marked as non-readable if import option says so. Saves memory!
  • (724547) - IL2CPP: Implemented support for Assembly.GetReferencedAssemblies and Module.GetTypes()
  • (none) - iOS/Xcode: Added .tbd extension support.
  • (759212) - iOS: Fixed code completion for iOS Editor Extensions.
  • (759459) - Mono: Corrected a crash in mono_string_to_utf8_checked when Marshal.StructureToPtr is called from managed code.
  • (none) - Mono: Resolved intermittent crash caused by a race condition that occurs when using managed threads.
  • (none) - OpenGL ES & desktop OpenGL (Shader compiler): Various bug fixes and performance improvements.
  • (756786) - Particles: Fixed IsFinite error spam with particles and second camera.
  • (756971) - Particles: Fixed issue where particle system is stopped and cleared and after that it won't play when simulation space is set to local.
  • (756194) - Particles: Fixed: particle system only playing once.
  • (756725) - Particles: Fixed: particle system not playing when triggered via Event Trigger.
  • (696610) - Particles: Fixed issue where particles are not drawn in the correct order on rotated particle systems.
  • (759502) - Particles: Fixed the issue of particles disappearing after going offscreen and returning.
  • (756742) - Particles: Fixed issue whereby particles systems are not looping correctly.
  • (755677) - Particles: Fixed issue where ParticleSystem.IsAlive() always returns True for particle systems with longer duration.
  • (723993) - Particles: Fixed wrong culling of some particle objects caused by incorrect bounds calculation due to parent scaling.
  • (757461) - Particles: Fixed issue where particle system doesn't play if method is called via Invoke fixed.
  • (745121) - Particles: Particles are now emitted with the correct position//rotation when using a Skinned Mesh Renderer or Mesh Renderer as shape.
  • (754405) - Scripting: Fixed issue that causes UnityScript to incorrectly detect some methods return type.
  • (739376), (740617) - UI: Fixed "Trying to add (Layout Rebuilder for) Content (UnityEngine.RectTransform) for layout rebuild while we are already inside a layout rebuild loop." error.
  • (753423), (758106) - UI: Fixed flickering/texture swapping issues.
  • (747512) - UI: Fixed issue with incorrect accent calculation for non-dynamic fonts.
  • (759841) - VR: Fixed crash when trying to enter play mode when the Plugin was not loaded or the Oculus runtime was not installed.
  • (755122), (717989), (734122) - VR: Fixed Skybox clipping issue.
  • (none) - VR: Fixed VR Focus and VR ShouldQuit not respecting notifications when the Device was disconnected.
  • (none) - XboxOne: Fixed a bug with YUY2 processing on the XboxOne.

GameDev News

27. January 2016


AMD announced the launch of the GPUOpen initiative.  It is essentially a collection of code, documentation and tools for accessing modern day GPUs.  Although they may not be winning too many battles on the silicon front, AMD’s software initiatives have certainly had an impact, such as Mantle essentially becoming Vulkan, the next version of OpenGL.  For game developers, GPUOpen is essentially a collection of DX11 libraries, DX12 code samples and tools such as codeXL an offline compiler and performance analyzer for OpenCL kernels as well as OpenGL and Direct X shaders.  The full selection of tool is available here.  In addition to game focused tools, there are also a set of performance computing (think big data) built around utilizing GPUs for massively parallel data processing.



From the GPUOpen blog:

Today is the day we launch GPUOpen.

GPUOpen is composed of two areas: Games & CGI for game graphics and content creation (which is the area I am involved with), and Professional Compute for high-performance GPU computing in professional applications.

GPUOpen is based on three principles:

The first is to provide code and documentation allowing PC developers to exert more control on the GPU. Current and upcoming GCN architectures (such as Polaris) include many features not exposed today in PC graphics APIs, and GPUOpen aims to empower developers with ways to leverage some of those features. In addition to generating quality or performance advantages such access will also enable easier porting from current-generation consoles (XBox One™ and PlayStation 4) to the PC platform.

The second is a commitment to open source software. The game and graphics development community is an active hub of enthusiastic individuals who believe in the value of sharing knowledge. Full and flexible access to the source of tools, libraries and effects is a key pillar of the GPUOpen philosophy. Only through open source access are developers able to modify, optimize, fix, port and learn from software. The goal? Encouraging innovation and the development of amazing graphics techniques and optimizations in PC games.

The third is a collaborative engagement with the developer community. GPUOpen software is hosted on public source code repositories such as GitHub as a way to enable sharing and collaboration. Engineers from different functions will also regularly write blog posts about various GPU-related topics, game technologies or industry news.

By Developers, For Developers

A critical design goal was to have GPUOpen created by developers, for developers, keeping marketing elements to a minimum. The creation of the Radeon Technology Group led by Raja Koduri was key in turning GPUOpen into a reality and I am very excited that this project is now being launched.

Today is the birth of GPUOpen and like any newborn it has some growing to do. As we add new content over the next few months we will be listening to developers feedback and respond as needed.

It’s time to open up the GPU.

GameDev News

27. January 2016


RoboVM just release version 1.13.0 adding Twitter Fabric support.  RoboVM is a virtual machine that enables you to run Java JVM applications on iOS devices and is commonly used to power LibGDX games on iPhones and iPads as well as recently added support of Apple TV.  This release adds:

Bug Fixes & Enhancements

As always, we squashed bugs, improved performance and added some bells and whistles. Here are the most important changes:

  • Fixed an issue with RxJava in high-concurrent scenarios as well as alignment issues
  • Fixed memory leak in IntelliJ IDEA plugin and RoboVM Studio that would eat up CPU and memory
  • Fixed crash in Android SDK setup on Linux
  • Added automatic installation of HAXM to the Android SDK setup
  • Updated RoboVM Studio to IntelliJ IDEA 15.0.3
  • Updated Android SDK to the latest version for Windows, Linux and Mac OS X
  • Added setting to IntelliJ IDEA plugin/RoboVM Studio to disable automatic setting of language level to 1.8
  • Added various improvements to the device selection dialogs in Eclipse and IntelliJ IDEA/RoboVM Studio
  • Minimized the amount of Gradle demons that are being spawned by IntelliJ IDEA when creating or importing Gradle-based projects
  • Added methods to NSData to retrieve contents without producing garbage
  • Fixed classpath/bootclasspath setup in dynamic frameworks
  • Fixed linking on Linux x86_64
  • Fixed crash in debugger due to wrong JDWP event ordering
  • Updated all 3rd party SDKs used in RoboPods to their latest versions
  • Bindings for all new iOS 9.2 APIs
  • Fixed 30 second watchdog limit on iOS for unit tests. iOS would kill a process that takes longer than 30 seconds to establish a UI run loop. Unit tests do now set up an artificial run loop, while tests are being run on a separate thread.

GameDev News

AppGameKit Studio

See More Tutorials on!

Month List