Gamasutra is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Gamasutra: The Art & Business of Making Gamesspacer
View All     RSS
February 22, 2020
arrowPress Releases







If you enjoy reading this site, you might also want to check out these UBM Tech sites:


 

Game Dev Digest Issue #27 - OpenUPM, UVs, Reducing Memory, DOTS, Sounds, and ML

by Mike Marrone on 01/17/20 10:47:00 am   Featured Blogs

The following blog post, unless otherwise noted, was written by a member of Gamasutra’s community.
The thoughts and opinions expressed are those of the writer and not Gamasutra or its parent company.

 

*This post was originally published on GameDevDigest.com

Issue #27 - OpenUPM, UVs, Reducing Memory, DOTS, Sounds, and ML

Issue #27 - OpenUPM, UVs, Reducing Memory, DOTS, Sounds, and ML

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.
OpenUPM

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.
Sebas's Lab

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!
JacksonDunstan.com

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.
80 Level

Simple Water Shader - I created a basic stylized water shader, free to use. The shader is simple, but effective in creating an interesting stylized look.
Alexander Ameye

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.
Andrey Torchinsky

*Quick Uvs for lazy people like me! * - #under60sec tutorial. Here is an easy way to texture without the pain of unwrapping. Hope this helps!
Daniel Santalla

UV-Based Nodes - This post includes an introduction to using the Sample Texture 2D node and UV-based nodes such as Tiling And Offset, Rotate, Flipbook and Polar Coordinates.
Cyan

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!
Sam Gates

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.
Shahriar Shahrabi

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).
Unity

Unity Releases - Unity versions Unity 2019.3.0 Release Candidate 5 and 2020.1.0 Alpha 19 have been released.
Unity

Videos

Kart Racing Game with Machine Learning in Unity! (Tutorial)
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!
Unity

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

How to make AWESOME Scene Transitions in Unity! - Transitions in Unity are easy to learn - let's have a look!
Brackeys

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.
Matt MirrorFish

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!
BMo

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.

Dynamic Buffers in Unity DOTS (Array, List) - Let's learn about Dynamic Buffers so we can store multiple values inside our Unity DOTS ECS Components. (Array, List).
Code Monkey

Unity DOTS Physics - Handling Collisions - ECS - Dapper Dino
ProTonTech yt

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.
ProTonTech yt

[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.
Basement Experiments

Assets

More Effective Coroutines [PRO]
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.

If you love this package, there is also an add-on for using threads, MEC Threaded
Trinary Software Affiliate

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
Unity Affiliate

SpecularProbes - Bake specular highlights into Unity Reflection Probes, allowing baked lights to cast sharp specular highlights for free.
Zach Tsiakalis-Brown Open Source

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!
CodeManu

Grayscale-Shaders - Grayscale Shader collection for Unity.
Dimitris Evgenidis Open Source

SpriteSheetRenderer - A powerful Unity ECS system to render massive numbers of animated sprites using DynamicBuffers and ComputeBuffer.
Fabrizio Spadaro Open Source

Spotlight

Midnight Streets
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..
TurnTheGameOn


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.


Related Jobs

Purdue University
Purdue University — West Lafayette, Indiana, United States
[02.21.20]

Assistant Professor in Game Development and Design
Vicarious Visions / Activision
Vicarious Visions / Activision — Albany, New York, United States
[02.21.20]

Senior Software Engineer
Sucker Punch Productions
Sucker Punch Productions — Bellevue, Washington, United States
[02.21.20]

Gameplay Programmer
Airship Syndicate
Airship Syndicate — Austin, Texas, United States
[02.21.20]

Mid to Senior Programmer





Loading Comments

loader image