Issue #29 - Unity 2019.3, Shader Showcases And Optimization, Types & Memory, How Tos, And Free Courses And Assets
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 - 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.
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 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.
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 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.
Save Memory on Disabled GameObjects - 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
Allocating Memory Within a Job - 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.
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.
World space 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.
Using Unity’s 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.
How to display in-game messages with Unity Particle System - 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.
Compiler Options - 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.
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.
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.
Introducing Python for Unity Editor - 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#.
edX Free 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.
Unity 2019.3 Released - 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.
Luigi’s Mansion’s Ghost Capture - 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
How To Code a Robust Menu System In Unity3D, Game Essentials (1/5) - Code along with Darren as he walks you through the development of a robust menu system using Unity3D and C#.
What are Value Types and Reference Types in C#? (Class vs Struct) - 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).
Scriptable Cookbook: Scriptable Object Variables and Actions - 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.
How to solve your Unity 2D sprite sorting / layer issues! - This addresses some important setting up of unity to address unity sprite layering issues that many people have.
Wild Pine Games
ClosestPoint and ContactPoint Collision in Unity - 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.
Stylized Grass Shader - 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 Affiliate
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 Open Source
TerraWorld - Automated Level Designer - 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.
SKALD: Against the Black Priory - 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 subscribe to the free weekly newsletter on 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.