Game Dev Digest — Issue #29 - Unity 2019.3, Shaders, Types & Memory, How Tos, And Free Courses And Assets
Tags: gamedev, unity3d, csharp, news
Published: 2020-01-31 14:25:24

###Issue #29 - Unity 2019.3, Shader Showcases And Optimization, Types & Memory, How Tos, And Free Courses And Assets

![Issue #29 - Unity 2019.3, Shader Showcases And Optimization, Types & Memory, How Tos, And Free Courses And Assets](https://gamedevdigest.com/assets/social-posts/issue-29.jpg)

2019.3 is officially out with a bunch of stuff to catch up on. Check out the official blog post and the video recap below for what it contains.

As always, lots of great shader material this week. From coding them, to shadergraph implementations, to optimizing runtime, there is a little bit of everything.

If you want something more immediately practical to your own game, check out some of the video how-tos below.

---

[**Unity 2019.3 is now available**](https://blogs.unity3d.com/2020/01/28/unity-2019-3-is-now-available/)  - This release features a brand-new Editor interface, new Input System, faster in-Editor iteration time and lots of other improvements. The High Definition Render Pipeline and many 2D packages are now verified for 2019.3.
[_Unity_](https://blogs.unity3d.com/2020/01/28/unity-2019-3-is-now-available/)

[**Switching to two releases in the 2020 TECH stream**](https://blogs.unity3d.com/2020/01/29/switching-to-two-releases-in-the-2020-tech-stream/)  - With Unity’s evolution to a package-based feature-delivery system, we will reduce the number of TECH stream releases in 2020, while delivering continuous updates for all feature areas throughout the year.
[_Unity_](https://blogs.unity3d.com/2020/01/29/switching-to-two-releases-in-the-2020-tech-stream/)

[**Unity 2020.1.0 Alpha 21**](https://unity3d.com/unity/alpha/2020.1.0a21)  - Unity
[_Unity_](https://blogs.unity3d.com/2020/01/24/unity-xr-platform-updates/)

[**Unity XR platform updates**](https://blogs.unity3d.com/2020/01/24/unity-xr-platform-updates/)  - Amidst a period of innovation for XR, we want to ensure Unity remains the best development platform for creators and our ecosystem partners. We’re excited to announce our new XR plugin framework designed to empower the ecosystem and provide guidance on how this impacts development in 2019.3 and beyond.
[_Unity_](https://blogs.unity3d.com/2020/01/24/unity-xr-platform-updates/)

[**Explore Revit models in VR with Unity Reflect**](https://blogs.unity3d.com/2020/01/23/explore-revit-models-in-vr-with-unity-reflect/)  - Unity Reflect makes it easy to bring Building Information Modeling (BIM) data into virtual reality (VR). Learn how you can use the Unity Reflect VR Viewer to conduct immersive design reviews with Autodesk Revit models.
[_Unity_](https://blogs.unity3d.com/2020/01/23/explore-revit-models-in-vr-with-unity-reflect/)

[**Unity Pattern: Stateless Scenes**](https://corepox.net/devlog/unity-pattern:-stateless-scenes)  - Unity does not provide much direction on how to transfer game state between scenes. Some community suggestions are singletons, static variables or DontDestroyOnLoad. But these have other effects that you might not want. Here, I will share a pattern inspired by functional programming I call Stateless Scenes. This pattern, inspired by asynchronous APIs, leads to a much cleaner design.
[_corepox.net_](https://corepox.net/devlog/unity-pattern:-stateless-scenes)

[**Save Memory on Disabled GameObjects**](https://thegamedev.guru/unity-addressables/save-memory-ondisable/)  - One of my students, Ryan, asked me last week how he could rescue the memory Unity was stealing from his game because of disabled game objects. Luckily, he was using Addressables, so I prepared an experiment...
[_The Gamedev Guru_](https://thegamedev.guru/unity-addressables/save-memory-ondisable/)

[**Allocating Memory Within a Job**](https://jacksondunstan.com/articles/5468)  - What do you do when a job you’re writing needs to allocate memory? You could allocate it outside of the job and pass it in, but that presents several problems. You can also allocate memory from within a job. Today we’ll look into how that works and some limitations that come along with it.
[_JacksonDunstan.com_](https://jacksondunstan.com/articles/5468)

[**Shader Graph Stylized Lava**](https://www.patreon.com/posts/shader-graph-33388865)  - Here's the Shader Graph explanation of the Lava post. If you just want the graph, it's attached to this post.
[_Minions Art_](https://www.patreon.com/posts/shader-graph-33388865)

[**My take on shaders: Stylized tree leaves**](https://halisavakis.com/my-take-on-shaders-stylized-tree-leaves/)  - One can take many approaches when it comes to making trees, and since most tools out there take a procedural approach, it’s not easy to set the models up manually to achieve certain effects.
[_Harry Alisavakis_](https://halisavakis.com/my-take-on-shaders-stylized-tree-leaves/)

[**World space UVs & Triplanar Mapping**](https://cyangamedev.wordpress.com/2020/01/28/worldspace-uvs-triplanar-mapping/)  - This post includes an introduction to using the Position node to sample textures rather than using mesh UV channels, which is also the basis of Triplanar mapping.
[_Cyan_](https://cyangamedev.wordpress.com/2020/01/28/worldspace-uvs-triplanar-mapping/)

[**Four Color Gradient**](https://mitchmcclellan.com/four-color-gradient/)  - One of my favorite effects in After Effects is the 4-Color Gradient. I like it so much I wanted to recreate in a shader.
[_Mitch McClellan_](https://mitchmcclellan.com/four-color-gradient/)

[**Using Unity’s ShaderVariantCollection**](https://asmaloney.com/2020/01/code/using-unitys-shadervariantcollection/)  - The game was hitching sometimes when an enemy appeared and when it exploded. It only seemed to happen some times and with some enemies. I’ll explain what I found when I broke out the profiler and then I’ll provide one possible solution using ShaderVariantCollection.
[_Andy Maloney_](https://asmaloney.com/2020/01/code/using-unitys-shadervariantcollection/)

[**How to display in-game messages with Unity Particle System**](https://www.gamasutra.com/blogs/TomSafarov/20200128/357244/How_to_display_ingame_messages_with_Unity_Particle_System.php)  - Developing our game The Unliving we decided to find the possibility to display in-game messages with numerical values such as damage inflicted, reward value, the number of health points restored and others, using the Particle System. We decided to do so in order to get more opportunities to customize the effects of the appearance and further behavior of such messages in future. Also, it was difficult to implement this solution using standard elements of Unity's UI-system.
[_Tom Safarov_](https://www.gamasutra.com/blogs/TomSafarov/20200128/357244/How_to_display_ingame_messages_with_Unity_Particle_System.php)

[**Compiler Options**](https://twitter.com/Elculoextremo/status/1222078599538401280)  - Do you want to add C# compiler options to your unity project? Like removing unwanted warnings from being thrown anywhere on your project? Create a csc.rsp file. Add in the compiler options u want to include. (eg -nowarn:0649). For even more info [check here](https://github.com/JetBrains/resharper-unity/issues/1337).
[_Culoextremo_](https://twitter.com/Elculoextremo/status/1222078599538401280)

[**Unity Webgl Issues and Solutions**](http://researchandprogram.blogspot.com/2020/01/unity-webgl-issues-and-solutions.html)  - During my interaction with unity WebGL, I found different things that are difficult to handle in unity WebGL.
[_Research And Program_](http://researchandprogram.blogspot.com/2020/01/unity-webgl-issues-and-solutions.html)

[**Analysing Performance Problems with Xcode Performance Tools, Part 1**](https://secretlab.institute/2020/01/31/analysing-performance-problems-with-xcode-performance-tools-part-1/)  - Xcode has a very simple tool for checking which part of the system is under the heaviest load.
[_secretlab.institute_](https://secretlab.institute/2020/01/31/analysing-performance-problems-with-xcode-performance-tools-part-1/)

[**Orbit Camera**](https://catlikecoding.com/unity/tutorials/movement/orbit-camera/)  - This is the fourth installment of a tutorial series about controlling the movement of a character. This time we focus on the camera, creating an orbiting point of view from which we control the sphere.
[_Catlike Coding_](https://catlikecoding.com/unity/tutorials/movement/orbit-camera/)

[**Introducing Python for Unity Editor**](https://forum.unity.com/threads/introducing-python-for-unity-editor.812748/)  - We are releasing a Preview package of Python for Unity which allows access from Python to the full C# API of UnityEditor, UnityEngine, as well as your own C# APIs added to your Unity projects, and running Python code from within C#.
[_Unity_](https://forum.unity.com/threads/introducing-python-for-unity-editor.812748/)

[**edX Free Course - Introduction to video game development with Unity**](https://www.edx.org/course/introduction-to-video-game-development-with-unity)  - In this introductory video game development course with Unity you will learn in a practical way with numerous examples that will guide you step by step: Getting to know the Unity interface, what the fundamental elements of the Unity engine are, and to develop your first games.
[_edX.org_](https://www.edx.org/course/introduction-to-video-game-development-with-unity)

[**Game AI Pro 3**](http://www.gameaipro.com/)  - The third volume in the Game AI Pro book series (published June 2017). All book chapters are free to download. Enjoy!
[_Game AI Pro_](http://www.gameaipro.com/)

## Videos

[![Unity 2019.3 Released](https://gamedevdigest.com/assets/images/29de91f728f581358cfa3ff56336a613.png)](https://www.youtube.com/watch?v=0x_7B7bCJq4)
[**Unity 2019.3 Released**](https://www.youtube.com/watch?v=0x_7B7bCJq4)  - Unity 2019.3 was finally released and finally a ton of previously preview features are now ready for prime time such as the URP and HDRP programmable pipelines, Shadergraph, new 2D tools and terrain tools and more.
[_Gamefromscratch_](https://www.youtube.com/watch?v=0x_7B7bCJq4)

[**Luigi’s Mansion’s Ghost Capture**](https://www.youtube.com/watch?v=nrFuF9aLDt8&amp;feature=youtu.be)  - Capturing a ghost in Luigi’s Mansion is a very satisfying mechanic and the animations add a lot of personality to the game - so I thought it would be a good idea to try building a similar effect using Unity!
[_Mix and Jam_](https://www.youtube.com/watch?v=nrFuF9aLDt8&amp;feature=youtu.be)

[**How to make a BOSS in Unity!**](https://www.youtube.com/watch?v=AD4JIXQDw0s)  - What's more awesome than an epic boss battle? Let's make one using state machines!
[_Brackeys_](https://www.youtube.com/watch?v=AD4JIXQDw0s)

[**How To PICK UP Objects in Unity Tutorial**](https://www.youtube.com/watch?v=NCKK7TBlM9c&amp;feature=youtu.be)  - The goal of this Unity Tutorial was to show how you can make a generic script you can attach to any GameObject, and get the desired behavior.
[_BMo_](https://www.youtube.com/watch?v=NCKK7TBlM9c&amp;feature=youtu.be)

[**How To Code a Robust Menu System In Unity3D, Game Essentials (1/5)**](https://www.youtube.com/watch?v=qkKuGmGRF2k&amp;feature=youtu.be)  - Code along with Darren as he walks you through the development of a robust menu system using Unity3D and C#.
[_Renaissance Coders_](https://www.youtube.com/watch?v=qkKuGmGRF2k&amp;feature=youtu.be)

[**What are Value Types and Reference Types in C#? (Class vs Struct)**](https://www.youtube.com/watch?v=KGFAnwkO0Pk&amp;feature=youtu.be)  - Let's learn what are Value Types and Reference Types in C# This is extremely important to know especially when working with Unity DOTS which uses Structs (Value) and not Classes (Reference).
[_Code Monkey_](https://www.youtube.com/watch?v=KGFAnwkO0Pk&amp;feature=youtu.be)

[**Unity Optimization Tip — Improve the Memory Management of Your Structs**](https://www.youtube.com/watch?v=IjHBB4AxU5w&amp;t=0s)   
[_Infallible Code_](https://www.youtube.com/watch?v=IjHBB4AxU5w&t=0s)

[**Scriptable Cookbook: Scriptable Object Variables and Actions**](https://www.youtube.com/watch?v=2AS88GJmxbs)  - In this Unity tutorial we will look at how you can improve your workflow in Unity, avoid spaghetti code and tight coupling by using ScriptableObjects.
[_Matt MirrorFish_](https://www.youtube.com/watch?v=2AS88GJmxbs)

[**How to solve your Unity 2D sprite sorting / layer issues!**](https://www.youtube.com/watch?v=NeURUTa8iBw&amp;feature=emb_title)  - This addresses some important setting up of unity to address unity sprite layering issues that many people have.
[_Wild Pine Games_](https://www.youtube.com/watch?v=NeURUTa8iBw&amp;feature=emb_title)

[**ClosestPoint and ContactPoint Collision in Unity**](https://www.youtube.com/watch?v=ms6r59X6rRc&amp;feature=youtu.be)  - Learn how to use GetClosestPoint() for colliders and ContactPoints for collisions to respond to collisions to specific points on your GameObject in Unity. You'll be able to detect whether a specific point has hit a collider or is inside of a trigger.
[_Immersive Limit_](https://www.youtube.com/watch?v=ms6r59X6rRc&amp;feature=youtu.be)

## Assets

[![Stylized Grass Shader](https://gamedevdigest.com/assets/images/5a5089cc8feaf46386cde316b4ec8529.png)](https://assetstore.unity.com/packages/vfx/shaders/stylized-grass-shader-143830?aid=1011l8NVc)
[**Stylized Grass Shader**](https://assetstore.unity.com/packages/vfx/shaders/stylized-grass-shader-143830?aid=1011l8NVc)  - A shader focused on delivering stunning visual and tactile grass for the Universal Render Pipeline (7.1.8+). Key features:  

• Lush wind animations 
• Per object and per vertex color variation, breaks up visual repetition 
• Bending and flattening through trails, meshes or particle effects 
• Sun light translucency rendering 
• Color blending with terrain surface (supports tiled setups and mesh terrains) 
• Includes several grass models and textures designed for mass placement. • Compatible with all URP rendering features 
• Physically-based or simple shading mode 
• Vegetation Studio (Pro) integration 
• Nature Renderer support 
• SRP Batching compatible 
• GPU Instancing and Instanced Indirect ready, for use with Vegetation Studio (Pro) or custom renderers. 
• Expertly crafted hand-written shader, for optimal efficiency.
[_Staggart Creations_](https://assetstore.unity.com/packages/vfx/shaders/stylized-grass-shader-143830?aid=1011l8NVc) **Affiliate**

[**SimpleMinMaxSlider for Unity**](https://github.com/GucioDevs/SimpleMinMaxSlider)  - Adds a simple MinMax slider attribute to Unity. Supports Vector2 and Vector2Int.
[_August Dominik Raaschou-Pedersen_](https://github.com/GucioDevs/SimpleMinMaxSlider) *Open Source*

[**Physics Material Manager**](https://openupm.com/packages/com.pixelwizards.physicalmaterialmanager/)  - Simple dashboard editor for Physic Materials
[_PixelWizardsPixelWizards_](https://openupm.com/packages/com.pixelwizards.physicalmaterialmanager/) *Open Source*

[**Magica Cloth**](https://assetstore.unity.com/packages/tools/physics/magica-cloth-160144?aid=1011l8NVc)  - Magica Cloth is a high-speed cloth simulation operated by Unity Job System + Burst compiler.
[_Magica Soft_](https://assetstore.unity.com/packages/tools/physics/magica-cloth-160144?aid=1011l8NVc) **Affiliate**

[**ScamScatter**](https://github.com/danbystrom/ScamScatter)  - Real time procedural mesh destruction for Unity3D
[_Dan Byström_](https://github.com/danbystrom/ScamScatter) *Open Source*

[**kDecals**](https://github.com/Kink3d/kDecals)  - Released: kDecals 2.0.0. Massively reworked my decal system for Unity3d. Now supports Universal RP and uses custom projection (no Projector component). Supports batching objects!. Big improvements to visual quality and performance!
[_Matt Dean_](https://twitter.com/MatthewDean3D/status/1221044909177823232) *Open Source*

[**TerraWorld - Automated Level Designer**](https://assetstore.unity.com/packages/tools/terrain/terraworld-automated-level-designer-156561?aid=1011l8NVc)  - 35% Off - Introductory Sale! TerraWorld© is a Unity plugin to create close to reality environments using real-world data from ESRI, NASA & OpenStreetMap along with built-in algorithms for procedural generation and placement of 3D assets in scene.
[_TERRA_](https://assetstore.unity.com/packages/tools/terrain/terraworld-automated-level-designer-156561?aid=1011l8NVc) **Affiliate**

## Spotlight

[![SKALD: Against the Black Priory](https://gamedevdigest.com/assets/images/c90ceb1f15eee5f2b4e824336da02459.png)](https://www.skaldrpg.com/)
[**SKALD: Against the Black Priory**](https://www.skaldrpg.com/)  - SKALD: Against the Black Priory is an upcoming classic turn-based RPG. It’s set in a dark and gritty fantasy universe, full of tragic heroes, violent deaths and eldritch horror.  

Inspired by legendary titles such as Ultima and the gold box series, and with the narrative ambition of a modern RPG, SKALD: Against the Black Priory is the developers love letter to classic roleplaying.  

SKALD: Against the Black Priory will see players develop and lead a party of up to six characters as they explore the accursed Black Priory. The game is both challenging and immersive, with tactical combat, dynamic tree-based dialog and “choose-your-own-adventure” sequences.  

You can follow the [dev log](https://www.youtube.com/watch?v=fn40R64G6Po) on youtube.
[_Scape-IT_](https://www.skaldrpg.com/)



---

You can subscribe to the free weekly newsletter on [GameDevDigest.com](https://gamedevdigest.com)

This post includes affiliate links; I may receive compensation if you purchase products or services from the different links provided in this article.