Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon
6. June 2016


As you may recall, last week Unity announced some pretty major price changes.  The response has not exactly been great, especially among those that purchased their PRO license outright.  Yesterday, Unity co-founder and CTO Joachim Ante released this blog post explaining the move to a subscription model:

Why Subscription?

When we started Unity, we would ship Unity every once in a while on just 2 platforms. Initially just Aras and I, gradually adding a couple engineers every few months. We’d decide on a couple major features and focus working on that for a year and a bit, go through beta and then ship it.

Today Unity lets you target 28 platforms. No one targets all platforms at the same time, but the ability to choose to easily switch your game to any platform gives Unity developers incredible advantages.

Each platform is supported by a team of dedicated engineers. We have teams focused on different areas of the engine, working on improving each major area all the time.

We ship a patch release every week. Supported by the awesome Sustained Engineering team.

We ship point releases with major new features and improvements multiple times per year.

All of this is necessary because the platforms we support rapidly change. In today’s world, we can’t leave customers behind for a year because we are in the process of releasing a major version. We think it would be very bad for Unity developers if we held features for a full number release, rather than launch these features along the way, when they are ready.

With this in mind, we want to be clear. There will be no major Unity 6 release.

In the dev team we wanted to stop doing major releases for a long time. With the major releases model we had done up until Unity 5, it has always forced us to bundle up a bunch of features and release them in one big splash. Usually it results in that good & complete features would be artificially held back for a long time while other features are still maturing, and eventually releasing some of these features before they are ready. All in the name of creating one big splashy release that customers feel is worth upgrading to. It’s what we did because we had to in a model where we worked toward an unnatural new major release every few years. This is not some evil marketing team pushing for it, it is the inherent nature of that business model. It was always a painful process for us and you and it really serves no one.

With our switch to subscription we can make Unity incrementally better, every week. When a feature is complete, we will ship it. If it is not ready we will wait for the next point release.

Our switch to subscription is absolutely necessary in order for us to provide a robust and stable platform.

Pay to own!

Along with the new subscription model, we are introducing “pay to own”. After having paid for 24 months of subscription, you can stop paying and keep on using the version you have at that point. Of course, you would also stop getting new features, services or fixes; choice is yours.

If you are upgrading from a previously bought perpetual license of Unity and you are switching to subscription after March 2017,  then you get “pay to own” right away with your subscription license.

Pay to own applies to everyone; there’s no special “license option” you have to get. Simple!

Thanks for listening, I hope this gives some much needed background on our switch to subscription.


In some ways this move makes sense.  Both Unreal and Unity have moved to a more rapid release schedule, making make 1.0 releases somewhat of a thing of the past.  The problem for Unity is, they are selling software still using a version by version model, Unreal obviously don’t have this issue as their revenue is royalty based.  A quick look through the comments in response to this post show that the community isn’t exactly mollified at this point!  At first glance the Pay To Own license sounds like a good deal, but all that is really saying is, after 2 years of paying licensing fees you get a perpetual license for that version (and not further updates without a subscription).  Considering you could previously buy Unity outright for $1,500, “owning” it after 24 payments of $125 ($3,000) is only a deal if you are using all three versions, otherwise it’s a doubling of the price.


A point that might be somewhat confusing is There will be no major Unity 6 release. This is some truly horrible wording and is incredibly misleading.  Yes there will be a Unity 6, it just has absolutely no impact on licensing.  All subscriptions from Unity are now time limited, not release oriented.

GameDev News

31. May 2016


The news of the day out of Unity’s Unite Developer Conference is no doubt the Unity price changes.  However there were a few other announcements during this rather lackluster keynote.  Some talk about Unity Ads, AR/VR and various web services but perhaps the gem of the announcement is the Unity Connect beta.  From the Unity blog:

Lastly, we introduced Unity Connect, a new talent marketplace bringing together Unity artists, developers and creators with opportunities at studios and Connectcompanies of all sizes. Users can establish a professional presence, message others, and discover jobs and projects. Studios in need can quickly and easily find developers with the just the right skillset. Unity Connect is currently in closed beta, but you can pre-register for the next beta phase here:


This is an interesting move.  Essentially Unity Connect is going to serve as a middle man for job seekers and employers looking for Unity work(ers).  Coupled with their recently launched Unity Certification Program it’s quite clear Unity wants to build an ecosystem around their software.  Frankly it makes a great deal of sense and is a great opportunity for Unity to increase customer lock in, while at the same time providing a service to both developers and creators.  The service is in closed beta now, but it will be interesting to see how this all turns out.

GameDev News

31. May 2016


Today at the Unite Europe, Unity announced some pretty substantial pricing changes.  Let’s start off by looking at the existing price structure:





What I didn’t show above was the personal license.  The Personal license is free, requires you to display a Made With Unity splash screen and has a revenue limitation of $100,000USD a year.  The personal license supported all platforms.

So essentially Unity pro (no splash screen, no revenue limitations, some additional cloud features ) cost $75 a month for Desktop/HTML5/Windows Store/Windows Phone, then an addition $75 a month for Android and $75 a month for iOS.  On top you could outright purchase Unity for $1,500 and an additional $1,500 per mobile platform.


Now let’s look at today’s pricing.



The Personal tier is mostly unchanged, but they have created a new tier called Plus.  This tier has the same limitations as Personal ( $100K revenue + splash ), but gives access to the cloud features from Pro and a couple other perks such as Unity Store assets.  The Pro tier is where the massive changes have occurred.  It is now a flat rate $125/month, regardless to platforms.  This means if you were only making desktop or HTML games before, Unity just almost doubled in price today.  If on the other hand, you were using Unity for iOS and Android development, you are now paying $100 a month less.


The big negative in this entire announcement?  Well...

Subscribers can stay on their current subscriptions until June, 2018. Customers with perpetual licenses can continue on their current licenses for as long as they like, but we will stop supporting Unity 5 perpetual licenses with new features and updates by March 3, 2017.

Basically the ability to buy Unity outright is going away very soon.  You can read more about the announcement here.

I also put together a video covering the subject in more detail available here or embedded below.

GameDev News

25. May 2016


This week brings another Unity patch, this time 5.3.5P1.  This release is primarily composed of fixes with some minor Windows Store functionality improvements and better stack reporting on crash.  The patch is available here.


Patch Release Notes:


  • Runtime: During crashes even if the stack walking is aborted with error (RtlLookupFunctionEntry returned NULL function. Aborting stack walk), Unity will display stripped stack trace instead of displaying zero stack frames.
  • (791792) - Windows Store: Expanded UnityEngine.WSA.Cursor.SetCustomCursor, if you pass 0 to this function, it will restore the cursor to arror icon.
  • (792507) - Windows Store: Improved 'NULL != certificate' errors, it will now provide a human readable message why it failed to create a certificate.
  • (778825) - 2D: Generate sprite mesh correctly for sprite with outline data after changing texture's max size setting.
  • (770093) - Android: Pause choreographer when activity is paused to fix CPU usage of Unity apps when the app is in background.
  • (790261) - Animation: Fix for animation stopping before reaching designated position.
  • (780289) - AssetBundle: Fixed the issue that failed to asynchronously load the object with script that had the same name as other assets in a bundle.
  • (780836, 761626) - AssetBundles: Fixed intermittent crash due to thread-safety issues.
  • (784401) - Editor: Fixed: No auto license updates since Unity 5.1.
  • (784822, 794090, 759483) - Graphics: Fixed some cases of incorrectly "Releasing Render Texture that is set as Camera.targetTexture", resulting in losing Camera.targetTexture - e.g. in case of device resume after sleep on iOS/Android, context-loss on DirectX or changing Emulation Layer in the Editor.
  • (787701) - IL2CPP: Load the stack value as unsigned for the conv.r.un opcode in IL.
  • (789160) - iOS/IL2CPP: Corrected managed stack traces which could have one incorrect frame when a NullReferenceException occurred.
  • (792606) - iOS: Fixed a crash when releasing WebRequest components.
  • (788483) - Samsung TV: UnityEngine.Ping has been fixed and will no longer report permissions issues.
  • (784481) - Scripting: Avoid allocating GC memory during Coroutine iteration.
  • (none) - Substance: Avoid re-generating ProceduralMaterials twice when switching color space.
  • (780071) - Substance: Fxed "Mismatched LayoutGroup.Repaint" error message appearing in console when assigning a ProceduralMaterial to a mesh.
  • (776052) - Substance: Fixed baked ProceduralTextures being serialized without their baked data.
  • (779560) - Substance: Fixed a crash in VisibleIf expression evaluation caused by looking up an input by label instead of by identifier.
  • (781118) - Substance: Fixed a crash when undoing a modification of the shader assigned to a ProceduralMaterial .
  • (762285) - Substance: Fixed GetProceduralXYZ returning 0 when used with an input's label instead of its identifier.
  • (none) - Substance: Fixed normal maps textures being incorrectly processed when used as image inputs to a ProceduralMaterial.
  • (779574) - Substance: Fixed ProceduralMaterials being stuck in "Generating..." state when leaving playmode as they are being computed.
  • (795563) - Substance: frozen ProceduralMaterials can now be cloned. Procedural properties of a cloned frozen ProceduralMaterial cannot be changed anymore, but regular material properties can.
  • (none) - Substance: ProceduralTextures being cached to disk/flash now have their size correctly taken into account when querying Caching.spaceOccupied.
  • (776803) - Substance: Speed up the processing of BakeAndDiscard materials when loading scenes.
  • (none) - Substance: Now warn the user when an input of a BakeAndDiscard ProceduralMaterial is being set at runtime.
  • (774423) - UI: Fixed occasional crashes when modifying elements of non-Overlay Canvases.
  • (790264) - UI: Fixed World canvas not rendering in editor game view.
  • (507878) - Windows Standalone: Launcher will correctly display unicode symbols for input bindings.
  • (none) - Windows Store: Added command line argument -dontConnectAcceleratorEvent, which could help to solve issues with XAML controls used together with Unity.
  • (790408) - Windows Store: Do not overwrite solution file when building on top.
  • (778842) - Windows Store: Fixed DisconnectedException while pluging/unplugin joystick from usb multiple times.
  • (792589) - Windows Store: Fixed an issue where user couldn't enter @ symbol with touch screen keyboard when spanish language is selected.
  • (790319) - Windows Store: Fixed an issue with generics, causing access reduction exception at runtime.
  • (792618) - Windows Store: Fixed Screen.orientation sometimes reporting incorrect value on startup.
  • (786277) - Windows Store: NetworkTransport.ConnectEndPoint will work correctly on UWP (required by secure sockets), note this function will not work on older Windows Store SDKs.
  • (790537) - Windows Store: Workaround a driver bug in Lumia 950, the screen was flickering when navigation bar was spawning or despawning. Basically we replace ID3D11DeviceContext::ClearDepthStencilView (which corrupts stencil buffer somehow) with a full screen quad draw call which clears depth/stencil.

GameDev News

6. May 2016


You have to love the new speed of releases for major game engines, it’s a great trend and I hope it keeps up.  As the title suggests, Unity have released a new patch bringing the version to 5.3.4p6.  Once again this patch is composed almost entirely of fixes and is not considered dangerous or beta.

The changes include:

  • Cluster Rendering : Improvement on cluster networking layer and reduced instability while using cluster input.
  • (788040) - Android: Buildpipe - Don't make use of preview SDK tools installed.
  • (786918) - Android: Buildpipe - Fixed AAPT errors on project export.
  • (765396) - Android: Buildpipe - Fixed AAR plugin and resource issues on exported projects.
  • (779338) - Android: Fixed immersive mode switching off on some KitKat devices when pressing volume buttons.
  • (779877) - Android: Fixed potential crash when using WWW without having Internet permission (also affects use of Unity Analytics).
  • (none) - Android: Fixed potential race condition in atomic access on ARM processors.
  • (689644) - Animation: Fixed scale value getting zeroed when removing scale curve components in AnimationWindow.
  • (762739) - AssetBundles: Fixed Compress Assets On Import setting ignored when switching platform
  • (734216) - AssetBundles: FIxed CreateFromMemory not working with "." in filenames.
  • (790345) - Editor: Fixed New installed Unity command line activation issue.
  • (776528) - iOS: Fixed memory leak when using On Demand Resources.
  • (783713) - MacOSX Editor: Fixed UI text rendering on Radeon HD 4000 series and older AMD GPUs.
  • (763638) - OpenGL: Fixed mislocated fragment shader default float precision. Now also basing the default precision on actual HW capabilities.
  • (784880) - OpenGL: Fixed rendering when Graphics.Blit is being called after WaitForEndOfFrame.
  • (none) - OpenGL: Shader compiler: Added unused global uniform pruning.
  • (780831) - OpenGL: Shader compiler: Avoid temp name collisions.
  • (782514) - OpenGL: Shader compiler: Fixed shader translation bugs.
  • (773226) - Particles: Fixed a case where if OnWillRenderObject renders, it breaks the main scene.
  • (788023) - Particles: Fixed batching issues when using multiple cameras in the same position.
  • (780257) - Physics2D: Fixed a problem where both AreaEffector2D and PointEffector2D scaled-up forces for each additional collider on a rigidbody.
  • (none) - Physics2D: Fixed a problem where constantly changing an Effector2D collider would mean that no contacts were ever processed stopping the effector from working.
  • (754351) - Prefabs: Implemented OnWillSaveAssets callback when applying prefabs.
  • (764711) - UI: Fixed issue with crash due to dirty renderer being in the dirty list after being destroyed.
  • (none) - VR: Fixed an issue with incorrect Render Texture size being used. Most notable with deferred rendering.
  • (none) - VR: VRFocus now respects RunInBackground. Run In Background value of true will now disable rendering if VRFocus is lost.
  • (none) - Wii U: Fixed issues causing known crashes.
  • (none) - Windows Store: Fixed an assert happening during mesh compression.
  • (789538) - Windows Store: Fixed Build & Run for Universal 8.1 solution.
  • (789439) - Windows Store: The maximum amount of characters for short name for tiles will be 40 now.

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

GameDev News

AppGameKit Studio

See More Tutorials on!

Month List