Game Dev Digest — Issue #46 - Testing, Profile, Optimization. Game Dev Tutorials. What's New... All That And More
Tags: gamedev, unity3d, csharp, news
Published: 2020-05-29 10:04:11

###Issue #46 - Testing, Profile, Optimization. Game Dev Tutorials. What's New... All That And More

![Issue #46 - Testing, Profile, Optimization. Game Dev Tutorials. What's New... All That And More](https://gamedevdigest.com/assets/social-posts/issue-46.jpg)

Stylin' and profilin'! This week's post is heavy on the optimization, testing, and profiling.

Game dev tutorials, shader implementations, C# coding, useful assets, and more round out the rest of the content as you'd expect. Enjoy! 

---

[**Using Unity Prefabs and GameObjects only for data.**](https://blog.gemserk.com/2020/05/26/using-unity-prefabs-and-gameobjects-only-for-data/)  - When we want to store only data, we normally tend to use ScriptableObjects since it is a more natural way. It is not common, however, to use GameObjects and Prefabs for data only (no logic at all) but that doesn’t mean it is not useful, au contraire mon ami, and I will share why.
[_Gemserk_](https://blog.gemserk.com/2020/05/26/using-unity-prefabs-and-gameobjects-only-for-data/)

[**Optimize your projects with Burst Compiler 1.3**](https://blogs.unity3d.com/2020/05/27/optimize-your-projects-with-burst-compiler-1-3/)  - Since the first stable release of Burst Compiler a year ago, we have been working to improve the quality, experience, and robustness of the compiler. As we’ve released a major new version, Burst 1.3, we would like to take this opportunity to give you more insights about why we are excited about it and what’s coming next.
[_Unity_](https://blogs.unity3d.com/2020/05/27/optimize-your-projects-with-burst-compiler-1-3/)

[**Unity Memory Profiler: Where Are You Wasting Your Game’s Memory? (Part 1)**](https://thegamedev.guru/unity-memory/profiler-part-1/#)  - In this post, you will show you how to use the experimental Unity Memory Profiler package to find exactly where you are wasting memory on your game.
[_The Gamedev Guru_](https://thegamedev.guru/unity-memory/profiler-part-1/#)

[**Learn How to Use the Unity Profiler By Example**](https://gamedevunboxed.com/learn-how-to-use-the-unity-profiler-by-example/)  - I wrote this article to provide a step-by-step guide on how to use the Unity Profiler tool to diagnose a performance problem, and use the data gathered to optimise the code.
[_gamedevunboxed.com_](https://gamedevunboxed.com/learn-how-to-use-the-unity-profiler-by-example/)

[**How To Render 10,000 Animated Characters With 20 Draw Calls In Unity**](https://medium.com/chenjd-xyz/how-to-render-10-000-animated-characters-with-20-draw-calls-in-unity-e30a3036349a)  - Unfortunately, rendering and managing a large number of game objects is at the expense of CPU and GPU performance, because there may be too many Draw Calls, if the game object is animated, it will also involve the CPU skinning overhead, so we must find other solutions. So, this article will talk about using GPU to achieve efficient rendering of animated characters and reduce the skinning overhead on the CPU side.
[_Jiadong Chen_](https://medium.com/chenjd-xyz/how-to-render-10-000-animated-characters-with-20-draw-calls-in-unity-e30a3036349a)

[**Code Coverage: Spot gaps in your tests**](https://blogs.unity3d.com/2020/05/22/code-coverage-spot-gaps-in-your-tests/)  - If you’re aiming for test-driven development, you need to make sure that your code is getting properly covered by tests as you go. Originally released with 2019.3, the Code Coverage preview package helps you make sure you haven’t missed anything by providing you a birds-eye visual overview of your code.
[_Unity_](https://blogs.unity3d.com/2020/05/22/code-coverage-spot-gaps-in-your-tests/)

[**C++ For C# Developers: Part 2 – Primitive Types and Literals**](https://jacksondunstan.com/articles/5535)  - The series continues today with our first actual C++ code! Today we’ll start with the absolute fundamentals—primitive types and literals—on which we’ll build through the rest of the series. As basic as this topic sounds, some of it can be pretty shocking when coming from a language like C#.
[_JacksonDunstan.com_](https://jacksondunstan.com/articles/5535)

[**5 more things about enums in C#**](https://www.code4it.dev/blog/5-more-things-about-enums-csharp)  - We've already seen some of the things you should know about enums in C#. Here we'll dive into Flagged enumerations, serialization and so on.
[_code4it.dev_](https://www.code4it.dev/blog/5-more-things-about-enums-csharp)

[**NativeArray.SortJob() is fast… or is it?**](https://coffeebraingames.wordpress.com/2020/05/24/nativearray-sortjob-is-fast-or-is-it/)  - Since Unity is making it easier to write multithreaded code, there must be multithreaded sorting algorithms out there that I could use. I found lots of them but I found them hard to translate into jobs code. What I realized is that maybe Unity already has one and they do albeit it’s just partly multithreaded. I found NativeArrayExtensions.SortJob() in the DOTS forum. Like any curious programmer, I compared it with my Quicksort implementation.
[_Coffee Brain Games_](https://coffeebraingames.wordpress.com/2020/05/24/nativearray-sortjob-is-fast-or-is-it/)

[**Cinemachine 2.6 brings you precision, improved workflow, and little bits of magic**](https://blogs.unity3d.com/2020/05/22/cinemachine-2-6-brings-you-precision-improved-workflow-and-little-bits-of-magic/)  - Everything in your Unity project passes through the lens of a camera, so you need to squeeze everything you can out of that camera. While much of this magic is expressed through render pipelines – light, shadow, focus, color – other dimensions are critical: camera position, motion, and timing.
[_Unity_](https://blogs.unity3d.com/2020/05/22/cinemachine-2-6-brings-you-precision-improved-workflow-and-little-bits-of-magic/)

[**Civilization VI Fog of War**](https://lexdev.net/tutorials/case_studies/civilization_fogofwar.html)  - The fog of war effect in Civilization VI is a perfect example for a simple compute shader setup. If you always wanted to learn about the basics of those, this tutorial is for you.
[_lexdev.net_](https://lexdev.net/tutorials/case_studies/civilization_fogofwar.html)

[**How to make a Bridge Building Game in Unity**](https://letsbuild.gg/urocksgamedev/how-to-make-a-bridge-building-game-in-unity-208e)  - In this two-part tutorial series, we will be creating a 2d bridge building game, where we need to build a bridge, and then our yellow characters will test if it holds them.
[_URocks!_](https://letsbuild.gg/urocksgamedev/how-to-make-a-bridge-building-game-in-unity-208e)

[**Creating zombie enemies in Unity [Part 3 of Unity gamedev series]**](https://itnext.io/it-follows-creating-zombie-enemies-in-unity-part-3-of-unity-gamedev-series-988da87c8273)  - In this part I will show you how to generate enemies on the NavMesh. I will make them chase me and collide with objects properly.
[_Ing. Jan Jileček_](https://itnext.io/it-follows-creating-zombie-enemies-in-unity-part-3-of-unity-gamedev-series-988da87c8273)

[**Climbing**](https://catlikecoding.com/unity/tutorials/movement/climbing/)  - This is the eighth installment of a tutorial series about controlling the movement of a character. It adds support for climbing vertical surfaces.
[_Catlike Coding_](https://catlikecoding.com/unity/tutorials/movement/climbing/)

[**Making Sense of FixedUpdate, Update, and LateUpdate**](https://letsbuild.gg/rcarlson/making-sense-of-fixedupdate-update-and-lateupdate-1p19)  - If you have been working with unity for any length of time you no doubt have run into the question of weather or not to use Update(), FixedUpdate() or LateUpdate() to run your game code. At the surface each appear to do the same thing with some subtle but significant differences. Understanding these differences is key to getting your game to run smoothly and properly.
[_Robert Carlson_](https://letsbuild.gg/rcarlson/making-sense-of-fixedupdate-update-and-lateupdate-1p19)

[**Unity Releases**](https://unity3d.com/unity/beta/2020.1.0b10)  - Unity version [2020.1.0 Beta 10](https://unity3d.com/unity/beta/2020.1.0b10) and [2020.2.0 Alpha 12](https://unity3d.com/unity/alpha/2020.2.0a12) have been released.
[_Unity_](https://unity3d.com/unity/beta/2020.1.0b10)

## Videos

[![Learn what's in Unity 2020.1 beta - Unite Now](https://gamedevdigest.com/assets/images/f83ef16f7c4836f527714fbe66cdd6b4.png)](https://www.youtube.com/watch?v=I7iBapStC_U)
[**Learn what's in Unity 2020.1 beta - Unite Now**](https://www.youtube.com/watch?v=I7iBapStC_U)  - In this video, Unity evangelist Ashley Alicea spotlights some of the new features and improvements available in Unity 2020.1 beta. Learn more about our current and upcoming 2020 technology.
[_Unity_](https://www.youtube.com/watch?v=I7iBapStC_U)

[**Dissolve Effect in Unity Shader Graph and URP**](https://www.youtube.com/watch?v=0NuesGD0msI&amp;feature=youtu.be)  - We can create a dissolve effect in Shader Graph using a handful of nodes!
[_Daniel Ilett_](https://www.youtube.com/watch?v=0NuesGD0msI&amp;feature=youtu.be)

[**Fixing Grid Layouts in Unity with a Flexible Grid Component**](https://www.youtube.com/watch?v=CGsEJToeXmA)  - Learn how to build a menu with switchable panels and a flexible grid layout tool in Unity!
[_Game Dev Guide_](https://www.youtube.com/watch?v=CGsEJToeXmA)

[**Deep dive with post processing color grading - Unite Now**](https://www.youtube.com/watch?v=1w9p-CrZYCU)  - In this Learn Live interactive session, work with a Unity Certified Instructor through a series of mini-challenges to add a style, mood, or effect of your choice using Color Grading.
[_Unity_](https://www.youtube.com/watch?v=1w9p-CrZYCU)

[**First on Stadia: How two indies built Get Packed with Unity - Unite Now**](https://www.youtube.com/watch?v=ak7WMxDIXMQ)  - Interested in bringing your game to Stadia? Hear how indies Coatsink and Moonshine Studios teamed up for Get Packed, Unity’s inaugural “First on Stadia” timed-exclusive release on the new platform.
[_Unity_](https://www.youtube.com/watch?v=ak7WMxDIXMQ)

[**Introduction to profiling in Unity - Unite Now**](https://www.youtube.com/watch?v=uXRURWwabF4)  - Profiling is one of the best ways to optimize your game. Learn how to use Unity’s highly effective profiling tools and how to interpret the data they produce.
[_Unity_](https://www.youtube.com/watch?v=uXRURWwabF4)

[**Third Person Movement in Unity**](https://www.youtube.com/watch?v=4HpC--2iowE)  - Let's learn how to make a solid third person controller with a moving camera!
[_Brackeys_](https://www.youtube.com/watch?v=4HpC--2iowE)

[**Unity 3D : Optimize Your Textures**](https://www.youtube.com/watch?v=YHj_XOPg_nY&amp;feature=youtu.be)  - This is a quick video of how to optimize your textures.
[_Thomas Klein_](https://www.youtube.com/watch?v=YHj_XOPg_nY&amp;feature=youtu.be)

[**Physics Constraints in Games Part 2 - Contact Constraints**](https://www.youtube.com/watch?v=pmdYzNF9x34)  - Collision detection algorithms mentioned in the video: Separating Axis Theorem (SAT), The Gilbert-Johnson-Keerthi Algorithm (GJK), The Expanding Polytope Algorithm (EPA).
[_Ming-Lun Chou_](https://www.youtube.com/watch?v=pmdYzNF9x34)

[**Sword Effect Particle System**](https://www.youtube.com/watch?v=6KC1Da5mdXA&amp;feature=youtu.be)  - Particle System in Unity 2020.
[_VDO GAMES_](https://www.youtube.com/watch?v=6KC1Da5mdXA&amp;feature=youtu.be)

[**Getting Realistic Shadows In Unity 2019! (Tutorial)**](https://www.youtube.com/watch?v=O4CWF7CGAME)  - Here is a tutorial that you have been asking for - Realistic Shadows in Unity 2019.3 with HDRP! Sounds epic? It IS epic!
[_Sykoo_](https://www.youtube.com/watch?v=O4CWF7CGAME)

[**Object Pools in Unity Tutorial**](https://www.youtube.com/watch?v=j3UzRbgbPdo)  - Learn how to add Object Pools to your games to help conserve memory!
[_gamesplusjames_](https://www.youtube.com/watch?v=j3UzRbgbPdo)

[**Introduction to VR in Unity - PART 5 : GRAB INTERACTION**](https://www.youtube.com/watch?v=FMu7hKUX3Oo)  - In this episode we will learn how to grab an object, use an object that we're grabbing such has fire a bullet and grab the object with an offset.
[_Valem_](https://www.youtube.com/watch?v=FMu7hKUX3Oo)

[**Create your own A.I. in Unity | ML-Agents Tutorial 2020**](https://www.youtube.com/watch?v=oxIljzj9JgQ)  - In this video I'm going to show you how to create an A.I. in Unity from scratch.
[_Bot Academy_](https://www.youtube.com/watch?v=oxIljzj9JgQ)

[**How To Integrate Steam With Your Unity Game**](https://www.youtube.com/watch?v=koeLpXVTVNU)  - Integrating Steam with your game.
[_Dapper Dino_](https://www.youtube.com/watch?v=koeLpXVTVNU)

## Assets

[![HUMBLE RPG GAME DEVELOPMENT ASSETS BUNDLE: 2D ART, MUSIC AND SOUND EFFECTS](https://gamedevdigest.com/assets/images/203ddf71-7b55-4614-94cc-6a6605fda172.png)](https://www.humblebundle.com/software/art-assets-music-and-sound-effects-software?partner=unity3dreport)
[**HUMBLE RPG GAME DEVELOPMENT ASSETS BUNDLE: 2D ART, MUSIC AND SOUND EFFECTS**](https://www.humblebundle.com/software/art-assets-music-and-sound-effects-software?partner=unity3dreport)  - Build the role-playing game of your dreams with this bundle of assets! Make your game look and sound the way you want with Human Fantasy Animated Pack, Pixel Art Medieval Fantasy Characters, RPG Music Pack - Complete Collection, and more.

$871 WORTH OF AWESOME STUFF
PAY $1 OR MORE
[_Humble Bundle_](https://www.humblebundle.com/software/art-assets-music-and-sound-effects-software?partner=unity3dreport) **Affiliate**

[**Asset Store May Sale**](https://assetstore.unity.com/?on_sale=true&amp;orderBy=1&amp;aid=1011l8NVc)  - The Unity Asset Store May Sale has started and ends on May 31. Customers can save up to 50% on select complete projects and template assets.
[_Unity_](https://assetstore.unity.com/?on_sale=true&amp;orderBy=1&amp;aid=1011l8NVc) **Affiliate**

[**xNode**](https://github.com/Siccity/xNode/)  - Thinking of developing a node-based plugin? Then this is for you. xNode is super userfriendly, intuitive and will help you reap the benefits of node graphs in no time. With a minimal footprint, it is ideal as a base for custom state machines, dialogue systems, decision makers etc.
[_Thor Brigsted_](https://github.com/Siccity/xNode/) *Open Source*

[**EditorNote**](https://gist.github.com/gekidoslair/a894e22ecd7b61c194a0933f50d002e3)  - Add to any gameobject to provide scene-view annotations
[_Mike Wuetherick_](https://gist.github.com/gekidoslair/a894e22ecd7b61c194a0933f50d002e3) *Open Source*

[**CopyPasteValues**](https://gist.github.com/karljj1/ccace256567c5a32c0422064d51d311b)  - Looking for an alternative to Copy and Paste Component values that supports inheritance? Well here it is.
[_Karl Jones_](https://gist.github.com/karljj1/ccace256567c5a32c0422064d51d311b) *Open Source*

[**Selection Identity tool (FREE)**](https://assetstore.unity.com/packages/tools/utilities/selection-identity-tool-167342?aid=%201011l8NVc)  - This is a tool that will aid you while selecting things in unity. The tool will display the name of the object your mouse if hovering over and will be selected on click. The name of the object will be displayed in 2 or 3 locations on the screen depending on the user’s choice. Additionally, the window over which the mouse is hovering is also displayed in the tool window.
[_BlankRip_](https://assetstore.unity.com/packages/tools/utilities/selection-identity-tool-167342?aid=%201011l8NVc) **Affiliate**

[**Blender To Unity FBX Exporter**](https://github.com/EdyJ/blender-to-unity-fbx-exporter)  - I made an FBX exporter for Blender that exports FBX files compatible with Unity3d's coordinate and scaling system. No more unwanted rotations, no more clutter with FBX options. Name the file, export, import into Unity, and it just works.
[_Angel García "Edy"_](https://twitter.com/VehiclePhysics/status/1264920441010913281) *Open Source*

[**HUMBLE LEARNING GAME CODING AND DEVELOPMENT BUNDLE**](https://www.humblebundle.com/software/learning-game-coding-and-development?partner=unity3dreport)  - Master in-demand skills that can help you to land your dream job, start your own business, or just have fun with an awesome new hobby! Get on-demand, project-based courses featuring video lessons, PDF notes, full source code, and offline access. Learn anywhere, anytime, and on any device!

$1,250 WORTH OF AWESOME STUFF
PAY $1 OR MORE
[_Humble Bundle_](https://www.humblebundle.com/software/learning-game-coding-and-development?partner=unity3dreport) **Affiliate**

[**Unity Shaders**](https://github.com/adrian-miasik/unity-shaders/releases)  - A bunch of shader examples created in Unity. Fully interactive shader gallery containing 30+ shaders! (HLSL & ShaderGraph). Quickly swap backgrounds between skybox / solid colors. Simple orbit camera script included! (w/ sensitivity & zoom support). Free to use!
[_Adrian Miasik_](https://github.com/adrian-miasik/unity-shaders/releases) *Open Source*

[**Option.cs**](https://gist.github.com/yokljo/55d27e0f6884ce61fb001952609cc65e)  - Option works like Nullable, but is compatible with Unity 2020's serialization system. I learned that Unity 2020 can serialize generic types, including generic structs, so I made a working ?-like type called Option. Have fun.
[_yokljo_](https://twitter.com/kemblesoft/status/1266004687825797122) *Open Source*

[**Unity Performance Checklist for 2020+**](https://thegamedev.guru/unity-performance-checklist/?utm_source=newsletter&amp;utm_medium=email&amp;utm_campaign=perf_checklist&amp;utm_content=gamedevdigest)  - For Game Developers, Who're Sick of Working Hard to Release Games That Get Negative Reviews 
 Make your gameplay mechanics truly playable by learning the secrets behind CPU Optimization, to stop frustrating your players with frequent freezes  Deliver top-notch, high-performing graphics using the GPU Performance Checklist, so you immerse your users in your unique art style  Get your game to load under 5 seconds with the Memory & Loading Times checklist, so your audience doesn't give up on your game
[_The Gamedev Guru_](https://thegamedev.guru/unity-performance-checklist/?utm_source=newsletter&amp;utm_medium=email&amp;utm_campaign=perf_checklist&amp;utm_content=gamedevdigest)

## Spotlight

[![The Last Faith](https://gamedevdigest.com/assets/images/f76f2a3fa0d61e05dbd14702f684ad8d.png)](https://www.thelastfaithgame.com/)
[**The Last Faith**](https://www.thelastfaithgame.com/)  - A Dark Gothic Metroidvania Game.

Immerse yourself into the mysterious world of The Last Faith. Imagine, you are living an adventure at the edge of reality in a gloomy world drowned by superstition. It's another world, a remote land built upon dark and Gothic architectures, right at the centre of a supernatural vortex, an unknown place.

You will be fighting and slaying abominations and strange creatures of the night, each one bigger than others and more fearsome. You will master the art of several different weapons, each of them with a different style of combat and move set. You will also learn tons of magical abilities, be able to cast spells and increase the power of your weapons by buffing them with ancient elemental powers.
[You can back the game on [Kickstarter](https://www.kickstarter.com/projects/kumisoulsgames/the-last-faith-a-dark-gothic-metroidvania)]
[_Kumi Souls Games Ltd_](https://www.thelastfaithgame.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.