Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon
28. April 2016


Another Unity patch has been released.  Other than an update in the Oculus Rift SDK and removal of the requirement for the OVRPlugin, this release is composed entirely of fixes.


  • VR: Updated Oculus API and plugin to version 1.3.2. Downloading 1.3.2 OVRPlugin from Oculus is no longer necessary.
  • (703290, 786195) - Batch mode: Fixed an issue where BuildPlayer calls might cause compilation errors to be logged in subsequent runs.
  • (788555) - D3D11: Fixed exclusive mode window reactivation issues after focus has been lost.
  • (none) - D3D11: Fixed some rare crashes on memory constrained systems (log would contain resource creation failure messages).
  • (775898) - Editor: Now show alert pop over for invalid serial format.
  • (779129) - Graphics: Fixed TrailRenderer showing a gap between current position and the last update.
  • (789905) - IL2CPP: Emit proper C++ code for COM marshaling of methods that have at least one parameter that cannot be marshaled.
  • (786499) - IL2CPP: Generate proper C++ code for the OnSerialize method injected by UNET in classes deriving from NetworkProximityChecker.
  • (787687) - IL2CPP: Generated proper C++ code for assemblies compiled with Visual Studio when a method returning an IntPtr returns an integer value.
  • (785036) - iOS/tvOS: Fixed a regression which caused artefacts when using GLES2 Graphics API.
  • (780329) - iOS: Fixed UnityWebRequest hanging on responses > 64k when using a custom DownloadHandlerScript.
  • (783527) - MemoryProfiler: Added toggle to exclude references in detailed memory dump to reduce memory footprint used.
  • (783433) - Particles: Fixed a crash when using Inherit Velocity Module curves.
  • (766891) - Physics: Provide feedback to allow working around crashes occurring when input meshes contains invalid vertices.
  • (none) - Samsung TV: Enabled a "Show Unity Splash Screen" check box on Samsung TV's PlayerSettings.
  • (776446) - tvOS: Enabled game controller in tvOS on-screen keyboard.
  • (none) - tvOS: Fixed a crash when calling OnDemandResourcesRequest.Dispose() in a coroutine.
  • (749311) - tvOS: Separated tvOS SDK and OS version settings from iOS.
  • (768807) - UI: Fix for child UI elements not being rendered when scaling World Space Canvas from zero.
  • (751798) - UnityWebRequest: Downgrade to HTTP GET on 302 and 303 redirect codes
  • (751794) - UnityWebRequest: Honor negative redirectLimit.
  • (none) - Windows Store: Fixed an exception while marshalling UnityEngine.NavMeshTriangulation.
  • (none) - Windows Store: Fixed marshaling of UnityEngine.HumanDescription, previously the field hasTranslationDoF was not mashaled at all.
  • (786889) - Windows Store: Fixed marshaling of UnityEngine.SplatPrototype, previously fields specularMetallic, smoothness were not marshaled, because of this sometimes terrain would be rendered incorrectly.
  • (none) - Windows Store: Fixed www.error return result, previously it would return only an error code, now it will also contain error message returned by the server.
  • (760215) - Windows: Fixed standalone Windows player position when bigger than primary monitor.

The patch can be downloaded here.

GameDev News

13. April 2016


Another week another Unity patch.  This one is almost entirely fixes unless of course you find Windows store IL2CPP backend changes or updates to the installer EULA as exciting new fixes.  Not mocking of course, new fixes are always welcome.  Well unless of course they break more than they fix I suppose.

Here are the details of today’s patch.

  • Windows Store: On IL2CPP scripting backend, Unity players are now shipped as DLLs rather than static libraries. This significantly reduces platform support module installation size as well as decreases generated C++ code linking time.
  • Installer: updated EULA.
  • (747898) - Android: Fix for EGL_BAD_NATIVE_WINDOW error on resume.
  • (777167) - Android: Fix for syncing to low framerate with vsync off.
  • (784942) - Animation: Fixed a crash related to exposed skeleton.
  • (none) - Documentation: Added missing 'OnJointBreak2D' callback documentation.
  • (730245) - Editor: If a read only file or folder is duplicated, the read only status is no longer duplicated.
  • (769613) - Editor: Fixed an issue where unloaded scenes were removed from hierarchy after exiting playmode.
  • (none) - Editor: Fixed Target Support module download URLs in Build Settings.
  • (663994) - Editor: Files with invalid names can no longer be dragged into a project.
  • (653592) - Global Illumination: Changing Reflection Probe component positioning in the inspector makes realtime probe black.
  • (none) - Global Illumination: Fixed a Reflection Probe baking issue when multiple scenes are used in a project.
  • (774638) - Graphics: Fixed a glitch in crunched compressed non-alpha texture after using sprite packer.
  • (782653) - IL2CPP: Properly handle type casts and check for value type arrays when they are casted to generic collection interfaces.
  • (none) - iOS: Apple Pencil pressure will now be exposed the same way 3D Touch pressure already is.
  • (775710) - iOS: Switching between different input fields will not leave input accessory fields on screen.
  • (764054) - iOS: TouchInputModule and StandaloneInputModule will now handle all touch phases preventing unwanted module switches.
  • (none) - Linux: Don't query displays when running in nographics mode.
  • (764054) - OSX editor: Application.version now returns the application's version. It no longer returns Application.unityVersion.
  • (740604) - UI: Fixed object culling when unparenting from a mask type.
  • (none) - UI: Fixed setting Input Field text when in Decimal/Integer with invalid values.
  • (776918) - Windows Standalone: P/Invoke will work correctly with native libraries which reference other native libraries, if those libraries are located in the same directory.
  • (775344) - Windows Store: Disable Generate C# option when scripting backend is set to il2cpp.
  • (none) - Windows Store: Files located in Assets\Resources won't end up in generated Assembly-CSharp-firstpass project, but will be correctly placed in Assembly-CSharp project.
  • (762780) - Windows Store: Fixed generics related AssemblyConverter failure and give better error messages.
  • (770092) - Windows Store: Fixed incorrect orientation of extended splash screen on Windows Phone 8.1.
  • (781907) - Windows Store: Fixed stacktraces on IL2CPP scripting backend.
  • (none) - Windows Store: Fixed $(OutDir) and $(IntDir) paths for generated IL2CPP Visual Studio solutions which prevented appx bundles to build correctly.
  • (754102) - Windows Store: Correctly generate Visual Studio namespace when product name contains ' symbol. an underscore will be used instead.
  • (none) - Windows Store: Having many generic types in the project no longer makes .NET Native compiler run out of memory.
  • (777878) - Windows Store: RuntimeInitializeOnLoadMethod will work correctly.
  • (773877) - Windows Store: Screen.SetResolution will correctly work on Windows Phone 10.
  • (none) - WindowsDownloadAssistant: Fixed setting VisualStudio 2015 as Unity script editor.
  • (732955) - WindowsDownloadAssistant: Fixed the bug which was freezing installation UI during bad network connection.
  • (784975) - WSA: EventType.ScrollWheel is now properly detected.

The patch can be downloaded here.

GameDev News

12. April 2016


Ok, bad pun to start the day, I’ll freely admit.  While groan inducing, the title of this thread is accurate.  Unity have a new Input system in the works, and are looking for users to try it out and give feedback.  In a nutshell, they appear to be taking the now nearly universal action mapping approach to input, which allows you to bind multiple controls to a single generic input action.  The other major change is the ability to define control states or modes to switch between.  For example you could define a set of control states for driving, shooting, multiplayer, menu navigation and switch freely between them.


An overview of the project from the Unity blog:

The new input system will consist of two parts. The low-level part is integrated into the C++ core of Unity. The high-level part is implemented in managed (C#) code that will be open-source in the same way as e.g. the UI system.

Our development process for the new input system is to design and implement large parts of the high level system first. Initially this is based on top of the current input system that already exists in Unity. For now, we call this the input system prototype. Later, once the new low-level core is more mature, we’ll change the high-level part to be based on the new low-level system.

This means that the current high-level system (the prototype) lacks specific features that depend on the new low-level core, such as robust registration of connected and disconnected input devices while the game is running. However, many features of the design can already be used and tested, and this is particularly what we want early feedback on.


This video illustrates the new input system:


You can read a great deal more about and download the new experimental input system here.  It can be used with regular Unity 5.3 without requiring a special build.

GameDev News

8. April 2016


Another week another Unity patch.  The biggest additions in this patch are support for the iPhone SE and iPad Pro, although I’m not entirely certain what would be different about the SE.  Il2CPP has also seen a reduction in binary size and build time for certain projects.  Of course there were several fixes as well, detailed below:


  • Added device support for iPhone SE and iPad Pro 9.7".
  • AssetBundle: Output the crc value for the manifest asset bundle.
  • IL2CPP: Reduce the binary size and build time for projects which make use of many C# attributes.
  • (784899) - Android: Audio - Fixed OpenSL output not selected when default buffer size selected.
  • (780958) - Android: Disabled Debug markers on PowerVR Series5 devices.
  • (774052) - Animation: Fixed a crash when importing an animation where a whole curve was corrupted.
  • (779058) - Animation: Fixed a performance issue for AnimatorOverrideController rebind.
  • (771609) - Animation: Fixed an issue where instantiating a prefab with an Animator Component for the first time took longer than the subsequent times.
  • (770045) - Animation: Fixed crash when GameObject with Animator is instantiated in StateMachineEnter/Exit.
  • (767506) - APIUpdater: Fixed AssemblyUpdater crash when verifying WSA / / Windows Phone assemblies.
  • (769880) - APIUpdater: Fixed ScriptUpdater crash when processing Boo / UnityScript containing Hash literals.
  • (762829) - Asset Bundles: Fixed issue where WWW.LoadFromCacheOrDownload would not take into account space on device, and could hang.
  • (768846) - Asset Import: Fixed a crash on fbx import in some rare circumstances.
  • (775822) - AssetBundle: Fixed an issue where unloading an asset bundle with animated objects (legacy animation) during play mode crashes the editor.
  • (756559) - Assets/VCS: Fixed issue where changing date modified on directory meta file caused all files below that directory to be reprocessed. This was also affecting VCS.
  • (776044, 763036) - Audio: Don't try to load any sounds when Unity audio is disabled.
  • (732854) - Audio: Fixed an issue where low Pass Filter didn't work on Audio Listener.
  • (760234) - Cache Server: Upgraded the node.js version used by the Cache Server to version 0.12.7.
  • (766019) - Core: Fixed crash when scaling prefab with mesh that is not read/write enabled.
  • (752733) - Core: When exporting a package with scene's dependencies, check boxes are available next to folder icon.
  • (770155) - Core: WWW.responseHeaders is now a case-insensitive Dictionary, as per
  • (523691) - Direct3D11: Fixed a deadlock which would occur when trying to restore focus to a minimized standalone player running in Fullscreen Exclusive mode.
  • (766802) - Dynamic Batching: This has been reintroduced for particles, lines and trails.
  • (728634) - Editor: Adjusted the width of the 'Build Settings' window so that it properly display its contents, even if support for some of the players is not currently available.
  • (765466) - Editor: Fixed a crash when locking cursor from constructor or static initializer.
  • (778125, 780607) - Editor: Fixed an issue with dragging a Sprite/Texture2D into the inspector causing a PolygonCollider2D to use it even though it is not dropped on the component editor itself.
  • (709639) - Editor: Fixed an issue that could cause scenes containing prefab instances with driven transforms to immediately become dirty.
  • (781866) - Editor: Fixed an issue where compression wasn't being applied in calls to BuildPipeline.BuildStreamedSceneAssetBundle().
  • (none) - Fixed MovieTexture crash when loading a video with no audio stream.
  • (767110) - GI: Upgraded to Enlighten3.02p4. Fixed a precision issue and out-of-bounds texture access in baking, which could lead to a crash in the Final Gather stage.
  • (728610) - Graphics: Fix for baking a scene with objects added before saving the scene not being included in the result.
  • (767560, 763045) - Graphics: Fixed a crash when building reflection probe data on specific scenes containing Canvas elements.
  • (755421, 766533, 766546, 779696, 756020, 780025) - Graphics: Reflect normal texture encoding in global illumination shader.
  • (767367) - IL2CPP: Generate proper C++ code for a C# class with the StructLayout attribute when its base class does not have a StructLayout attribute.
  • (781439) - IL2CPP: Generate proper C++ code for a method that is marked as both an internal call and a runtime call.
  • (780659) - IL2CPP: Properly handle numeric conversion from an unsigned integer to floating point types in some edge cases.
  • (769666) - Input: Input.mousePosition is no longer clamped to the client area on windows standalone, the last position is kept instead.
  • (none) - iOS/IL2CPP: Prevent unnecessary changes to the timestamps of the libil2cpp headers during a build. This allows incremental builds to work correctly in Xcode.
  • (none) - iOS: Added Xcode 7.3 Build & Run support
  • (730146) - iOS: Allow IPv6 to work on iOS with the .NET 2.0 profile.
  • (771132) - iOS: Fixed a crash when playing a scene in the Editor with an iOS device attached as a Unity Remote.
  • (779738) - iOS: Fixed support for non-native resolutions in GLES 2.
  • (none) - iOS: Restored documentation for RenderTargetSetup.
  • (784075) - Linux: Fixed a crash when stereoscopic mode is requested on non-stereoscopic display.
  • (783842) - Linux: Fixed another crash when supported opengl core version is insufficient
  • (none) - Linux: Fixed an occasional crash when creating texture properties.
  • (776268) - Mono: Make the Personal folder be the same on all profiles. 
  • (765928) - MovieTexture: Restricting black texture fix to OSX 64. Linux 64 did not need it.
  • (781177) - Networking: Fixed problem when transferring data via reliable sequenced QoS channel could lose messages in "bad" network conditions.
  • (773411) - Networking: Fixed problem where Networking.HostTopology.MessagePoolSizeGrowthFactor was ignored.
  • (768030) - Networking: Fixed WebGL client unable to free connections in NetworkServer when using WebSocket.
  • (none) - Particles: Fixed incorrect inspector style on Particle System Renderer Pivot field.
  • (758422) - Physics: Fix for Collision2D.relativeVelocity being reported with incorrect values.
  • (767120) - Resources: Enable warnings for and prevent crashes and memory corruptions when non-assets, or non-unloadable assets are tried to be unloaded through Resources.UnloadAsset in release builds.
  • (none) - Samsung TV: Fixed multiple crashes on the NT14U TV that would prevent games from launching.
  • (780365) - Terrain: Fixed crash when exiting Editor after creating TerrainData with HideAndDontSave flag.
  • (758873) - UI: Fixed dropdown destroy coroutine being started when the component is not active.
  • (none) - UI: Fixed issue with double rendering of canvas on Vive.
  • (none) - UI: Setting Input field text through script will now be validated.
  • (770266) - WEBGL: Fixed SimpleWebServer bug causing 'Uncaught incorrect header check'.
  • (775931) - Windows Store: Fixed Tab key duplication in XAML controls when Unity input is enabled.
  • (781994) - Windows Store: Help SerializationWeaver find references which have Windows SDK specified when building to Universal 8.1.
  • (779136) - Windows Store: Hindi characters will show up correctly, Nirmala UI from Windows fonts will be used.
  • (780971) - Windows Store: Package.appxmanifest for Universal Windows 10 Apps will be produced correctly when protocol for association launching is specified.
  • (781935) - Windows Store: Slightly fix generated Assembly-CSharp* projects to fix "System.BadImageFormatException: Duplicate type with name 'UnityEngine.Internal.$FieldNamesStorage' .. "

You can download the patch here.

GameDev News

5. April 2016


Officially announced at GDC 2016, Unity has begun a certification program.  In a nutshell, it’s a way to prove to employers and prospective employers that you do in fact know what you are talking about when you say you “know Unity”.  This is a very common practice in the world of IT, especially if you come from a corporate background.


But... is it useful? 


Frankly, that depends.  Mostly it depends if the certification actually means anything, if the certification process is actually vetted, the material certified is sufficiently challenging without being arbitrarily obtuse or impractical in the real world.  Basically, the certification is valuable if people value it.  In the corporate world, sometimes a certification was sufficient to get you hired in a given field, while other certifications literally aren’t worth the paper they are printed on.


Yeah, that sounds like a complete cop out answer, but it’s also true.  Certifications that are purchased or that can be found as a prize in the bottom of a box of cracker jacks mean absolutely nothing.  On the other hand, certifications are also often used as a cash cow for organizations and for profit colleges to milk the unaware.  Certification and training are very often not the same thing, a point many are confused by.  In the end, the Unity certification value will ultimately be decided by the community.  If it’s respected and used as a hiring benchmark, it will certainly be worth getting.  If it is not, it wont be.  Again, I know that sounds like a cop out answer, but it’s the way these things work.


Anyways, that’s talking about IT certifications in general, what about this new Unity one?  Well first off, they have courseware coming soon.  This represents training materials aimed at getting you ready for the certification process.  Generally video tutorials, printed materials, project files and a course syllabus to prepare you to take the certification.  Generally these kinds of things assume you have tertiary knowledge ( ie, C# skills, game programming concepts ) but otherwise start from ground zero and then train you to the point you would be able to pass certification.  In the case of Unity, they describe the courseware as:

Whether you are preparing for certification or simply want to increase your proficiency with Unity, the Unity Certified Developer Courseware provides a structured learning path that starts at square one and leads you through the process of making a working game.

  • Includes 14 hours (~2 days) of instructional videos, developed by Unity Technologies.
  • Teaches key concepts in both coding and game design – develop an end-to-end understanding of game creation with Unity.
  • Focuses on best practices – learn the best and most efficient methods for building a game with Unity.
  • Includes game project files – follow along and learn hands-on through the direct application of skills.
  • Covers 20 topic areas specifically geared toward preparation for Unity Certified Developer Exam.
  • Available in 1, 3, and 6-month Access Passes – learn at your own pace and on your own schedule.

14 hours certainly doesn’t sound like sufficient instruction to go extremely in-depth, especially for a program that “start at square one”.  How much does all of this cost?  No idea.  That’s obviously going to be a pretty big decision point in the end.  The cost for this kind of material can vary massively, from the cost of a book or two, to a couple of grand.


Alright, back to the certification process itself.  They are held at major Unity conferences as well as events around the world.  You can locate your closest location using this tool.  In my particular case, I’d need to travel 2-4 hours to find a test.  Somewhat odd that Ottawa has an event but not Toronto, but anyways...



And the price of the test you say?  I imagine that it varies from location to location, but in my case the Montreal event is shown below:



Finally you may be asking yourself, what exactly are you going to be tested on?  Well the objectives of the examine are summarized in this PDF.  Looking through the overview to be honest, the exam looks like the kind of thing someone with any game programming experience could breeze through with an hour or two of brush up time with Unity, while someone who has no prior game programming experience has no hope in hell of gleaming this much experience in 14 hours of training.  I also have to say... a few of these topics are a bit...  unexpected.  For example:


These are topics that have almost NOTHING to do with Unity, are going to be tangental at best to a programmer and downright yawn inducing for an artist.


On the other hand, I sound overly negative of this course and I shouldn’t be.  Certifying a minimum level of ability in an industry that is so accessible to amateurs is a noble effort and if done right has some value.  If it is ultimately going to be worth while will in the end be determined by the community.

GameDev News

AppGameKit Studio

See More Tutorials on!

Month List