Everyday Unity
1.15K subscribers
163 photos
59 videos
42 files
2.37K links
A game developer and tech lead in a top grossing company posting Unity, programming, and gamedev related stuff that I find interesting
Website: https://gamedev.center

Most used tags are:
#performance
#shader
#interview

Author: @alexmtr
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Fractured Cube Breakdown

Requires a pre-fractured model (for example made in Blender, using the Cell Fracture addon). But importantly, the positions of the origin/pivot of each fractured piece has been baked into mesh data (UV channels).

https://www.cyanilux.com/tutorials/fractured-cube-breakdown/

#shadergraph #fracture #vfx
๐Ÿ‘5
Unity-HDRP-GPU-View-Cone: View Cone, Field of View, Sight Cone - done with custom Shadow Mapping in Unity HDRP

The technique used is basically the shadow mapping. Rendering the depth texture from the eyes of the enemy, then checking which spots are visible to the player AND the enemy and only drawing on overlapping pixels. The performance cost should be like having a spotlight with shadows turned on.
Since the latest few HDRP Upgrades the system doesn't work in builds anymore. So consider this repo just for learning purposes on how to theoretically set up custom shadow mapping

https://github.com/leorid/Unity-HDRP-GPU-View-Cone

#hdrp #lineofsight #viewcone
๐Ÿ‘3
Unity Production Architecture

There are endless ways of scaling your architecture without suffering, and different developers have different opinions about that. The author tried to identify practices that are easy to follow, simple enough, but still result in scalability.
The book is not finished yet, but 3 chapters are available already.

https://unity-architecture.com/

#architecture
๐Ÿ‘8
Statistics matter: How Data Impacts Play

How excessive stats can harm player experience.

http://www.hermanelectro.com/posts/positive_negative_stats.html

#gamedesign #stats
๐Ÿ‘3
Text To TextMesh Pro Upgrade Tool for Unity

Helps you upgrade the Text, InputField, Dropdown and TextMesh objects in your projects to their TextMesh Pro variants. It also upgrades the scripts so that e.g. Text variables in those scripts become TMP_Text variables. Then, it reconnects the references to the upgraded components (e.g. if a public variable was referencing an upgraded Text component, it will now reference the corresponding TextMeshProUGUI component).

https://github.com/yasirkula/UnityTextToTextMeshProUpgradeTool

#textmeshpro #editortool
๐Ÿ‘4
This media is not supported in your browser
VIEW IN TELEGRAM
Unity Shadow Volume Generator (Stencil Shadows): Library for generating sharp shadow volumes in Unity3D.

Shadow volumes are recognized by the CRISP and ACCURATE shadows that they cast. It essentially finds the outline of an object from the lights perspective, and then creates a mesh that casts into the scene.

https://github.com/rhedgeco/UnityShadowVolumeGenerator

#rendererfeature #shadow #shadowvolume #stencilshadow
๐Ÿ‘4
QuadSphere: Unity QuadSphere with Level of Detail subdivision

A similar technique is used in Kerbal Space Program 2 to render planets with level of detail support for better performance

https://github.com/bicarbon8/QuadSphere

#quadsphere
๐Ÿ‘3
Practical Optimizations

This is a long video, but it's worth watching. The speaker is a great engineer who shares an example of optimization using DOD (Data-oriented design) in Kerbal Space Program 2. Obviously, this optimization technique is not suitable or needed in every game, but when it fits, it gives amazing results.

https://youtu.be/NAVbI1HIzCE

#performance #optimization #dod #jobsystem
๐Ÿ‘4
This media is not supported in your browser
VIEW IN TELEGRAM
Unity Bounding Volume Heirachy (BVH)

It is used for sorting objects that occupy volume and answering geometric queries about them; such as ray, box, and sphere intersection.

https://github.com/rossborchers/UnityBoundingVolumeHeirachy

#bvh #spacial #dsa
๐Ÿ‘4
Unity Image Loader: Asynchronous image loading from remote or local destination.

Features:
โœ”๏ธ Async loading from Web or Local ImageLoader.LoadSprite(imageURL);
โœ”๏ธ Memory and Disk caching - tries to load from memory first, then from disk
โœ”๏ธ Dedicated thread for disk operations
โœ”๏ธ Avoids loading same image multiple times simultaneously, task waits for completion the first and just returns loaded image if at least one cache layer activated
โœ”๏ธ Auto set to Image ImageLoader.SetSprite(imageURL, image);
โœ”๏ธ Auto set to SpriteRenderer ImageLoader.SetSprite(imageURL, spriteRenderer);
โœ”๏ธ Debug level for logging ImageLoader.settings.debugLevel = DebugLevel.Error;

https://github.com/IvanMurzak/Unity-ImageLoader

#imageloader #loadimage
๐Ÿ‘3