Game Dev Digest - The Newsletter About Unity Game Dev (19 Part Series)
This week I discovered OpenUPM, you can check out the new Open Source Unity Package Manager below. I'm excited to discover new packages while making managing existing ones in my project better in the future.
Another great post by Rubén Torres Bonet on improving the performance of your game, if you are having memory issues his latest post should help.
Every week there seems to be more great shader related posts. If you read last week's newsletter with a great looking Cel-shading implementation, definitely follow up with the Cel-shading post from this week.
A bunch more great videos, assets and tips as usual too, so let's get on with it...
OpenUPM - Open Source Unity Package Registry (OpenUPM) is a service for hosting and building open source UPM (Unity Package Manager) packages. It's composed of two parts: a managed UPM registry and automatic build pipelines. The intention is to create an universal platform to discover, share and distribute open source UPM packages.
Distributing Svelto through OpenUPM - The Unity Package Manager is a good effort from Unity to distribute project dependencies similarly to what NPM does. UPM is still in its infancy and some problems are to be addressed.
Unity Memory Management: Scale Your Game Without Decreasing Quality - Years ago, I went to the asset store and, credit card at hand, I got greedy. I couldn't stop buying good-looking assets at highly discounted price, so I kept stacking them in the cart. More content would be a great fit for my game, I thought. Only that I didn't really have solid foundations for proper Unity memory management techniques. And so I paid the price for my ignorance.
Rubén Torres Bonet
Deallocating Temp Memory: Part 3 - Continuing the series, today we look specifically at “overflow” allocations in the Temp allocator. We’ve seen that there’s no need to explicitly deallocate Temp memory because it all gets cleared every frame, but do we need to deallocate “overflow” allocations that didn’t fit inside the block of automatically-cleared memory? Today we’ll find out!
Guide: Sci-Fi Stair Generator in Houdini - Another detailed guide from SideFX and Simon Verstraete. The tutorial will show you how to create a procedural staircase asset for sci-fi levels in Unity.
Cel-shading: some tricks that you might not know about - In this article I will write Unity cel-shader (also known as toon-shader) from scratch. I will show and explain some tricks that are quite useful, but not so many people know about them.
MaterialPropertyBlock - Did you know with a simple Unity feature called MaterialPropertyBlock, you can change the properties of the same material for different objects at runtime? No more using tons of material instance, all eating memory.
Ahmet Bugra Çetinel
Otto - Populate your public variables with a single click! - Otto - Auto populate your mono behaviour public fields. Tired of dragging + dropping a bunch of assets in the inspector? Name them correctly and you won't have to!
SmoothGameCameraMovement.cs - I was unhappy with how jiggly the camera movement was in the fog recordings. So went and reworked my camera movement to have filtering. It moves the camera in game view similar to scene view plus filtering.
Launch the best game possible with these expert tips - Unexpected issues can plague a game’s development from start to finish. In this guide, we’ve collected advice from Unity’s expert team of support engineers so you can avoid many of the common pitfalls they see everyday. As part of the Integrated Success Services team, they’ve partnered with developers all across the industry to help ship their games successfully. Free e-book (requires email signup).
Kart Racing Game with Machine Learning in Unity! (Tutorial) - A Kart Racing Game with Machine Learning Agents, or ML Agents in Unity - what does it look like? Let's take a look!
Dynamic Depth of Field in Unity - Game Dev Sandbox - This is the first of a new series where I explore and play around with experimental design and coding ideas.
Game Dev Guide
Procedural Generation Basics: Randomize Scale (Creating Random Rocks Tutorial) - In this video we look at a basic technique of procedural generation in Unity3D using C#: randomizing the scale of an object. In our example project we randomize the scale, rotation and placement of a single rock to make some randomly generated rocky islands.
Improve every SOUND EFFECT with this ONE TRICK - In this unity audio tutorial learn the most important trick to get the most usage out of each of your sound effects. Making sound effects is HARD, and while individual sounds are inexpensive, they can add up fast. It's vital, especially for indie devs, to make sure you get the most out of a single sound, and one easy way to do that is to randomize pitch and volume values when playing them!
2D LIGHTS ARE AWESOME - Unity Tutorial - Introduction to 2D Lights. So 2D lights have been around for a while but I recently gave it a try and they are awesome! Decided to create a simple tutorial and show you the capabilities.
Gabriel Aguiar Prod.
Unity - 2 Dimensional Top Down Movement Tutorial (NO x1.4 speed when moving diagonally) - I see everyone using this piece of code: transform.position += new Vector3(Input.GetAxisRaw("Horizontal"), Input.GetAxisRaw("Vertical"), 0); BUT IT'S WRONG.
[QUICK TUTORIAL] Changing Gravity Direction in Unity - Quick one minute tutorial on how to Change Gravity Direction in Unity3d . Works for both 2D and 3D games.
More Effective Coroutines [PRO] - More Effective Coroutines (MEC) is an improved implementation of coroutines.
When you use Unity's built-in default coroutines you will have to be very careful about how you use them or else they will allocate memory that the garbage collector later has to clean up. This can cause your app to randomly skip frames. MEC solves that issue for coroutines, while also making coroutines more powerful by running about twice as fast as Unity's default coroutines do and providing you with a host of new options that Unity's default coroutines don't have.
Switching between MEC coroutines and Unity's default coroutines is really easy. They can even be used side by side in the same project. Advantages of MEC (both free and pro):
- MEC doesn't require that your class inherit from MonoBehavior in order to run a coroutine.
- Coroutines can be "tagged" with a string when created, allowing you to kill or pause coroutines individually or as a group.
- MEC contains no pre-compiled DLLs, which makes debugging easier.
- MEC contains useful extra segments, like SlowUpdate.
Asset Store Coupon Code - Through the end of January 31, 2020 (PST), new customers can save 10% off all asset store purchases. Please note, this coupon is only good on first time purchases by new customers. Use Coupon Code: 10OFF2020
kPooling - kPooling is an object pooling system for Unity. It is based on a flexible generic typed API and supports creation and management of GameObject type pools by default. kPooling also comes with a simple but powerful Processor API for adding pooling support for any C# type in both runtime and Editor.
Matt Dean Open Source
Smear FX - Make your animations extra juicy by adding some smearing to them! Just a little touch of smear can add a lot of value to animations and makes them feel smoother. Do a jump animation, a weapon swing, item spawn, maybe a logo intro animation, the possibilities are endless!
Midnight Streets - Dev Log 33 - Problem Solving to Improve Workflow [Unity Racing Game]
In this DevLog I discuss some of the workflow challenges I've recently faced relating to implementing the traffic system into my large open world scene, and the problem solving approach I took. This eventually led to the creation of a few new tools and functions that greatly improve workflow and productivity.
I spent the last few years prototyping and developing the core scripting systems that will be used to create the game. Much of the ground work is available on the Unity Asset Store, the package is called Arcade Racer: Racing Game Development Kit.
I'm currently planning to release the game for PC on Steam, it will be open-world and story-driven. It's being designed as a single-player-focused racing game. The premise is to race through the midnight streets against unexpected rivals in a fast paced story driven game. Don't get left behind..
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.