Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon Join the GFS Discord Server!
24. November 2016


Unity have released another game engine patch, this one version 5.4.1p1.  In addition to an update to Oculus SDK 1.10 this patch contains an above average number of fixes and improvements including:

  • Lighting: Added more information to the additive loading error message e.g. The loaded level has a different lightmaps mode than the current one. Current: Directional. Loaded: Directional Specular. Will use: Directional.
  • macOS/iOS/tvOS: Allow developers to use Xcode's manual signing paradigm by specifying a provisioning profile in Player Settings
  • VR: Updated Oculus to version 1.10
  • (833396) - AI: Fix for an error when calling Warp and enabling a disabled NavMeshAgent. Errors in console: "!InCrowdSystem" and "!handle.IsValid()".
  • (793711) - Asset Import: Fixed an issue where deleting asset labels manually from .meta files would not be picked up by the editor.
  • (845859) - Asset Pipeline: Fixed regression where cache lz4 compression was not being performed for uncompressed AssetBundles.
  • (832578) - Audio: Fixed the issue which prevented streaming audio loading on 32-bit Apple devices which were upgraded to iOS 10.
  • (824962) - Editor: Fixed editor focus when multiple light probes have been selected.
  • (814160) - Editor: Fixed the logType passed to LogCallback in the event of an unhandled exception.
  • (833866) - Editor: Tweaked the output of the generated Visual Studio solution file to better match Visual Studio standard format to fix problems opening Unity generated projects with Rider GUI.
  • (834258) - Graphics : Added additional error checking for compute buffers to catch invalid size and stride earlier to give a better error message.
  • (none) - Graphics: DX12 optimisation to reduce number of calls to CopyDescriptors.
  • (832595) - Graphics: Fixed a crash when switching scenes whilst reflection probes are updating.
  • (728648) - Graphics: Fixed a crash when baking lightmaps in scenes with multiple terrains.
  • (840141) - Graphics: Fixed Camera.SetReplacementShader renders objects affected by projectors even when the tag does not match.
  • (839035) - Graphics: Fixed a crash when using dynamic batching.
  • (821028) - Graphics: Fixed multiple lights not rendering when in deferred mode and using gfx jobs.
  • (none) - Graphics: Fixed a rare situation which could lead to a deadlock when running with graphics jobs enabled.
  • (769758) - Graphics: Fixed selection of objects in Scene View if the scene contains reflective water.
  • (817524) - Graphics: Improved transparency support on meshes with multiple materials.
  • (843813) - Graphics: Skip rendering of default reflection in Deferred when the reflection not set.
  • (817056) - iOS: Fixed touch input latency issue for iOS 10.
  • (847976) - Linux: Fixed the shutdown crash.
  • (829943) - Networking: Calling NetworkTransport.GetCurrentRTT causes editor crash when use WebSockets is enabled.
  • (831101) - Networking: CRC Mismatch on Wii U (Big Endian Issue?).
  • (830108) - Networking: Fixed: Enabling WebSockets in NetworkManager maxes out a CPU core.
  • (839116) - Networking: WebSockets client doesn't support multiple connections.
  • (849084) - Particles: Fixed occasional crash when using external forces module.
  • (850947) - Serialization: Fixed a rare issue where prefab references from scene objects would be show as missing when using text serialization.
  • (842364) - UI: Fixed an issue whereby disabling parent canvas allowed child canvas to render.
  • (845448) - UI: Fixed Sprite Packer not packing sprites with ETC1 when compressing sprites for android
  • (846096) - UI: Fixed threading problem when computing bounds which could lead to an infinite loop in the UI system.
  • (835538) - UWP : Fixed problem where incorrect GUID was being used in generated .csproj files.
  • (847985) - Windows Store: Fixed an issue in building with C# projects enabled when dependency existed between them.

As always, the patch is available for download here.

GameDev News

23. November 2016


A conversation just happened on /r/gamedev with the confusing title “What don't new game developers know that they don't know?”.  Essentially it was a question asking what important advice new developers don’t know (for lack of experience) but should.  My answer seems to have been extremely well received and the question is quite good, so I figure I would replicate the answer here for those of you that don’t frequent reddit.

So essentially what follows is my advice I would give my beginner self if I owned a time machine. 

  • most people fail and fail hard. Perseverance is probably the most underrated but required skill of a successful game developer.

  • learning tasks in parallel is rarely productive. While I know you want to learn everything now... don't. Learn one task/language/skill to a base level of competency before moving on to the next. It's hard because everything is shiny and new, but it's critical. Trying to learn too many things at once results in learning nothing at all.

  • when you are 90% done, you're actually 50% done. Maybe... if you are lucky.

  • there is no ego in programming, or at least there shouldn't be. A plumber or carpenter come into a job with a toolbox full of tools, and don't limit themselves to a number three hex drive because "it's cool". They use the best tool for the job and sometimes that tool is a horrific hack and that's ok too. Programmers... have often failed to learn this lesson. People invest themselves in "their language" and this frankly, is stupid. Working in C++, Java, Haskell, F#, Go, Rust or whatever other language doesn't make you cool, just as working in GameMaker, Lua, JavaScript doesn't make you uncool. Only exception, PHP. %#@k PHP. Moral of the story... use the right language or tool for the job. Sometimes that means performance, sometimes that means maintainability, sometimes that means quickness, sometimes that means designer friendly and sometimes it means using the tool the rest of your team is using. Be pragmatic, always be pragmatic. I personally would never hire a programmer who claimed there was a "best" language. If you have been programming for several years and don't have several languages in your arsenal, you are probably doing it wrong.

  • if it feels wrong, it probably is. If you encounter such a code smell, even if you can't fix it, comment on it and move on.

  • even if you work alone, comments are good. But comments for the sake of comments is worse than no comments at all. Take the time to write legible code, take the time to smartly comment what you've written. Six months or six years down the road, you will thank yourself.

  • version control or at least automatic backups. Do it. Now.

  • premature ejac.... er, optimization is the root of all evil. Yes, you need to be mindful of performance on a macro level, but don't sweat the micro level until you have to. If you are just starting out, but your primary concern is performance, you are doing it wrong.

  • learn how to use a debugger. Early. It will be an invaluable skill and will help you understand how your code works better than any other single task you can perform. Also learn how to use a profiler and code linter, these will give you great insights into your code as well, but you can do this later. If you have learned the basics of a programming language but haven't groked debugging yet, stop everything and dedicate yourself to that task. For a somewhat generic debugging tutorial start here. Seriously, learn it, now.

  • if you have access to a peer, TAKE IT. Peer reviewed coding, while at first annoying, is invaluable. Even if there is a large skill mismatch between the two people. Even just having someone go through your code and ask "why did you do this?" forces you to explain it... and often you realize... hey... why did I do that? Many programmers are solitary creatures, so the idea of peer code reviews or paired programming is anathema. Or people can be very shy about showing their code... it's worth it to get over it. Of course not everyone has access to another programmer to use as a sounding board and not being in person makes it a lot harder and a lot less useful.

  • books are great, as is a gigantic collection of links to great articles on the web. That said unfortunately, you can't just buy a book and learn via osmosis... you actually have to read the thing. More to the point, if you are following a tutorial or video, DO THE WORK. You will learn it a great deal more, develop muscle memory of sorts, if you actually do it. This means typing out the code and getting it to run, instead of just loading the project and pressing play. Trust me, you learn a lot more actually recreating the project.


There you go, 11 hard earned pieces of wisdom for new developers, hope you find them useful.  Anything you you would add or anything you disagree with?  Let me know in the comments below!


23. November 2016


Nevigo have just announced a pair of beta programs for articy:draft, the first for Unity integration, the second for their Macro Dev Kit.  articy:draft is a great program for game designers to design gameplay flow, inventory, characters and dialog trees.  It is a rather unique program I featured in this entry of the GameDev Toolbox series, should you want more information.


Details of the new products is somewhat limited, from the Nevigo website:Beta_Invitation_GIF_ANIM

Some time ago, we posted that we’re working on an articy:draft integration for Unity and something called the Macro Devkit (formerly known as the internal API).
In short the Macro Devkit allows you to develop your own customized plug-ins and helps to integrate articy:draft in your individual workflow.

As you might know we’re running a beta to test and improve these new features. This is your chance to play an active part in the development of articy:draft.


All you have to do is to write us an email to [email protected] and tell us why you want to test the software and what you plan to do with it. If you qualify as a beta partner we’ll contact you with further instructions on how you can test these new features.


The following teaser video illustrates the Unity integration in action:


The macro dev kit is a bit of a confusing rename of what they previously referred to as the internal API.  Basically it enables you to integrate articy:draft into your own code.  The following video illustrates the Macro Dev Kit in action.

GameDev News

22. November 2016


Way back in January JetBrains announced the private EAP (Early Access Program) for Project Rider.   Project Rider is a new cross platform C# IDE from the company that brought us such tools as IntelliJ and WebStorm, built around their popular ReSharper technology.   I did a quick hands-on video of Project Rider shortly after it was released.  This week they announced that Project Rider is now available, still in EAP, to the masses.

What’s Rider?

Rider is a full featured, cross platform .NET IDE based on ReSharper and IntelliJ. The front end and user interface is built on the proven IntelliJ platform, just like WebStorm or IntelliJ IDEA, and can run on Windows, Linux and Mac. But the engine that drives all of your favourite JetBrains IDE features is ReSharper, running as an out of process language server.

This is a great mixture. Both IntelliJ and ReSharper provide industry leading IDE functionality, and running ReSharper out of process frees us from sharing resources and memory with Visual Studio.


Of particular interest to game developers is Project Rider’s Unity support:

While we’ve mostly been focused on exposing existing ReSharper functionality, and adding new, essential IDE level features such as debugging, we also want to make Rider a great IDE for developing Unity3D and Xamarin solutions.

We haven’t really got started on Xamarin support right now, although Rider already includes ReSharper’s existing Xamarin.Forms XAML editing features, with more planned.

But we’re a bit further along with Unity support. Firstly, the Unity editor can be made to open projects, C# files and error messages in Rider by adding the Unity3dRider plugin to your Unity project (this will hopefully be built into Unity in the future). See the readme in the repo for instructions on getting this set up. We’ll blog more about this very soon.

Then, once a project is open in Rider, you’ll find that there is specific Unity functionality, too. We’re bundling the ReSharper Unity plugin (yes, Rider supports plugins!), which adds a number of useful features, such as automatically setting the supported C# language level (no more C# 6 suggestions in your C# 4 code!) and inserting and auto completion of Unity message methods. See the plugin’s readme on GitHub for more details.

Auto completing Unity message methods

Furthermore, Rider will also debug your Unity project. The Run → Attach to local processmenu item will show a list of available processes to debug, including available Unity instances.

Attach to Unity process to debug

We’ll write more about Unity support in a future blog post.


So if you are a C# developer and are looking for an IDE alternative to Visual Studio or Xamarin Studio, perhaps you should check out Project Rider today.

GameDev News

22. November 2016


Earlier this month Yoyo games announced a limited number of slots to their closed beta for the upcoming GameMaker 2 game engine.  I will admit that slots fill up almost immediately, as they did when they released the next batch of beta invites.  As of today they are offering another option for getting in on the beta.  If you pre-order GameMaker Studio 2 you get immediate access to the beta.


From the GameMaker blog:

Since revealing GameMaker Studio 2 and inviting users to take part in the Beta we've already seen loads of great feedback and contributions from enthusiastic developers. Time and time again developers who've had a taste of the Beta have approached us desperate to get their handsFinal_banner_1120x640_shaun on a full desktop license so they can get started on their projects today.

We've heard the demand loud and clear, so we've decided to open the gates early and let you purchase a desktop license for GameMaker Studio 2 and get immediate access to the fully licensed, limit-free beta version as it exists right now, today. These are permanent, one time purchase licenses that give you access to the product in beta now, and also after release.


Are you an existing GameMaker customer, or perhaps recently purchased GameMaker as part of the HumbleBundle?  Don’t worry, there is a deal for you as well.

Owners of previous products can receive up to a 50% discount when upgrading to GameMaker Studio 2. See this page for more information.


From the limited reaction I’ve seen so far, initial response to GameMaker Studio 2 has been quite positive.

GameDev News

AppGameKit Studio

See More Tutorials on!

Month List