Everyday Unity – Telegram
Everyday Unity
1.11K subscribers
157 photos
59 videos
42 files
2.36K 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
Controlling Unity's Rendering Order - Why and How

A detailed post packed with references to other posts, documentation, and even source code. Digging into source code is a crucial skill for software engineers.

I especially love the conclusion—something I’ve discussed extensively in my posts from Unite:
In closing, I’ll repeat that if your interest in this topic is to improve performance, make sure to profile before you decide that changing the rendering order is the right optimization to implement!
https://medium.com/toca-boca-tech-blog/controlling-unitys-rendering-order-why-and-how-3c2bb1da8e78

#rendering #sorting
🔥6👍2
Optimizing Texture Memory (VRAM) & Size

TL;DR
MEASURE TEXTURE VRAM USAGE AND DOWNLOAD SIZE using lox9973's Assetbundle Stat tool and Thry's VRAM estimator.
Reduce Resolution in the texture import settings! Not every texture needs to be 2k or 4k.
Don't disable mipmaps - Your materials will look and run better with them on!
Crunch doesn't change VRAM usage but can reduce download size. Not a magic bullet!
For Normal Maps, Use RG Compressed BC5 (From Platform overrides menu1). Normal Quality (DXT5nm) and High Quality (BC7) use the same VRAM but look worse.
For textures with Alpha, Use High Quality (BC7). Normal Quality (DXT5) uses the same VRAM but looks worse.
Don't use JPG (or other lossy formats) to store your source textures! Lower quality, with no benefit to VRAM/Download Size


https://www.poiyomi.com/blog/2022-10-17-texture-optimization

#optimization #vram
🔥7👍2
Connecting the DOTS: Let’s make a game with Entities | Unite 2024

If you still haven't tried Entities, this talk gives you a good overview of what it is, how to work with it, and what drawbacks it has.

https://www.youtube.com/watch?v=gqJlQJn0N2g

Repo: https://github.com/Unity-Technologies/Unite24ConnectingTheDOTS

The speaker, Daniel, is also a regular guest on the Hot Path Show, which I recommend watching if you already have any experience with Entities and would like to dive into the details.

#dots #entities
👍8🔥3
Everyday Unity
An unusual post for this channel and a note on why I haven't posted in a while. I had the pleasure of giving a talk at Digital Dragons about "The Controllers Tree," the architectural framework developed by some of the top-tier engineers at our company. I…
Architecture Behind Our Most Popular Games

The recording of my talk from May is finally available. It focuses on how multiple successful large-scale mobile games are developed and supported over an extended lifespan. I have already received feedback, and I realize I should have provided more detail on specific areas, such as the role of each component. If you'd like a post with a deeper dive into this architecture, drop a 🔥 reaction. Feel free to ask questions so I can cover them in that post.

https://www.youtube.com/watch?v=-TlQAm8IZp4

#architecture #mvc #hmvc
🔥30👍2
Classic 3D videogame shadow techniques

https://30fps.net/pages/videogame-shadows/

I found this denoscription of shadow techniques very interesting. It's a good starting point for learning shadowing by trying to implement some of these techniques. For example, I learned a lot about shadow cascades by implementing it while following an excellent tutorial on a noscriptable render pipeline: https://news.1rj.ru/str/everydayUnity/2276.

Cascades are briefly mentioned in this post as a technique used in modern games. However, it does not cover the radiance cascade technique, which you can read more about here: https://news.1rj.ru/str/everydayUnity/2423.

#rendering #shadow
👍8🔥2
Unity 6 "empty" web build file sizes

How to reduce the size of web builds:

https://gist.github.com/aras-p/740c2d4f9977ce92b7de72b1394dd365

It’s worth noting that many of these recommendations are included in the updated Unity 6 documentation. However, it’s convenient to bookmark this post to have all the advice on one page.

https://docs.unity3d.com/Manual/web-optimization.html

https://docs.unity3d.com/Manual/web-optimization-mobile.html

#web #buildsize
🔥14👍2
Memory Mastery: Comparing Unity and .NET Garbage Collection

Another frequently raised question in interviews involves the differences between Unity and .NET garbage collection, and this post provides a clear answer without diving way too deep into the topic. Additionally, it offers general advice on avoiding excessive garbage generation, which can help reduce potential spikes caused by garbage collection.

https://medium.com/my-games-company/memory-mastery-comparing-unity-and-net-garbage-collection-4c23e693d3a5

#gc #interview
👍9🔥4
Optimize your game performance for mobile, XR, and the web in Unity (Unity 6 edition)

https://unity.com/resources/mobile-xr-web-game-performance-optimization-unity-6

A solid book with many performance tips — some are well-known, while others are new, especially those shared at the latest Unite conference regarding Unity 6. I'd like to point out the absence of the well-known tip about avoiding the animator's usage on the UI. It is claimed to have been fixed for quite some time already, even though it still has some performance implications (smaller tho): https://discussions.unity.com/t/animators-and-dirtying-ui/769821/16

#optimization #tips
👍6🔥5
Fake it ‘til You Make It: Faking Extended Draw Distance in Mobile Games

Developers of Block City Wars demonstrate a clever use of shaders and fog effects to fake distant objects, optimizing draw distance for better performance. In this game, players must be able to see the entire map from any position to avoid being at a disadvantage. Simply increasing the far clip plane isn’t feasible, as it raises the number of triangles passing through all culling stages. This means more objects undergo bounding box checks on the CPU and more fragments are processed on the GPU.

I encountered a similar issue while developing a car simulator set in an open city. We struggled because of the need to support multiple monitors, requiring separate cameras for forward, left, and right views, along with additional cameras for rearview mirrors.

Why not use a single camera with an ultra-wide FOV for forward, left, and right views? The answer is straightforward: to render 180 degrees, the FOV must be extremely high, resulting in unacceptable image quality due to severe distortions. This approach looked particularly bad on multiple monitors.

Instead, we opted for a combination of LODs, impostors, fog, and shorter draw distances for the left, right, and back cameras. Since players primarily focus on the forward view, this compromise worked well. And what was easier was that we didn’t need to render important objects all the time, as it was not needed for players to orient themselves using them.

https://www.gamedeveloper.com/production/fake-it-til-you-make-it-faking-extended-draw-distance-in-mobile-games

However, it’s unclear whether the solution includes LOD support for scaled-down meshes. If the distance is faked by scaling objects, then the high-poly version should be rendered, leading to high vertex density. This introduces performance challenges, as detailed in previous posts:
Vertex density
https://news.1rj.ru/str/everydayUnity/1634

Tips from the latest Unite https://news.1rj.ru/str/everydayUnity/2441

#rendering #culling
👍7🔥4