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
How To Use Loops Inside Unity's Update Methods

An example of how not to use loops inside Update, along with a simple example of offloading calculations to a background thread using Awaitable, which is supported from 2023.1. However, it is not recommended for shorter-lived operations, such as parallelizing computationally-intensive algorithms. To maximize the use of multi-core CPUs and parallelize your algorithms, the C# Job System is recommended.

https://giannisakritidis.com/blog/Looping-Inside-Update/

Read more about Awaitable: https://docs.unity3d.com/2023.2/Documentation/Manual/AwaitSupport.html

#awaitable #async
πŸ‘3πŸ”₯1
BurstLinq: Extremely fast LINQ aggregation operations implementation optimized by Burst Compiler

I've run performance tests provided by the author and not in all cases BurstLinq was faster than regular for loop, but still in all cases a lot faster than Linq and in most cases faster than for. It was pretty interesting to check the source to see how these results were achieved.

https://github.com/AnnulusGames/BurstLinq

#burst #linq
πŸ”₯11πŸ‘4
Arch: A high-performance C# based Archetype & Chunks Entity Component System (ECS) with optional multithreading

It's a type of repo that can be definitely recommended to read the source code and pick up some good practices. The ecs implementation is similar to Unity. Entities, but the codebase is easier to navigate and read in my opinion. It also contains source generation and can be used as a sample for your own implementation.

https://github.com/genaray/Arch

Source generation: https://github.com/genaray/Arch/tree/master/src/Arch.SourceGen

#ecs #sourcegen
πŸ‘6πŸ”₯1
Why am I not getting wishlists? A step by step solution

A great guide how to try triggering Steam algorithms. I love the advice about creating reddit posts with the title "I quit my job to make my dream game”, because lately, I've seen an influx of such posts, now we know why.

https://howtomarketagame.com/2023/12/05/why-am-i-not-getting-wishlists-a-step-by-step-solution/

#marketing #guide
πŸ‘5πŸ”₯1
CPU profiling for Unity

The Unity profiler is a powerful tool. It is useful when developing games, but requires the use of a development build. This type of build can introduce too much overhead in the app to obtain accurate performance data on the final game. For this reason, the Unity Profiler may not be suitable for precise CPU performance profiling of release builds. So this post explores other ways to profile release builds with minimal overhead

https://gpuopen.com/learn/unity-cpu-profiling-guide/

#profiling
πŸ‘8πŸ”₯3
Introducing Arm Frame Advisor

The previous post was about a low-overhead profiler, which allows detecting where issues are. After that it's time for a deep-dive profiler like Frame Advisor to investigate in detail what the root cause of the issue is.

https://community.arm.com/arm-community-blogs/b/graphics-gaming-and-vr-blog/posts/arm-mobile-studio-2023-5

#profiling
πŸ‘3πŸ”₯1
Build-History: Keep a history of all the builds you do.

It comes in handy to track when the build size grows, especially when aiming to stay under the 200 MB limit on Android, particularly in large teams where you may not check each PR or change made. So it would help localizing the problem.

https://github.com/FronkonGames/Build-History

#editortools #build
πŸ‘7πŸ”₯3
Unity Debug Sheet

To be fair it looks pretty well for a debug window. I believe it can be even reused for prototypes to create UI really fast and have a decent appearance.

https://github.com/Haruma-K/UnityDebugSheet

#debug #tools
πŸ‘6πŸ”₯3
cognitive-load: 🧠 Cognitive Load In Software Development

This post provides a good list of principles on how to make code more readable. During code review, I always advocate for reducing cognitive load on developers at all levels, even in the smallest things like if conditions or variable names. The post covers various principles from low-level to high-level concepts, so I would definitely recommend checking it out.

https://github.com/zakirullin/cognitive-load

#architecture
πŸ”₯6πŸ‘1
12 Debugging Techniques In JetBrains Rider You Should Know About

A great post with debugging tips. At some point in the past, I had been using Rider for multiple years when a colleague showed me the Drag Execution Pointer functionality. I was blown away by how useful it is and realized I had no clue it existed. So take the time to read the post to ensure you know how to use the debugger to its full extent when needed.
Like the tip from the Pragmatic Programmer: Achieve Editor Fluency. Keep learning your tools to make your work easier and more efficient.

https://blog.jetbrains.com/dotnet/2024/01/29/12-debugging-techniques-in-jetbrains-rider-you-should-know-about/

#debug #rider
πŸ‘5πŸ”₯2
A simple project that shows how to create an Android service for Unity application working on background

The Unity Background Service is a project demonstrating how to create an Android service for a Unity application to operate in the background. Typically, Android services, especially within Unity apps, shut down when we terminate the app. It is impossible to keep the service fully operational in the background. The only solution is to allow the service to run in the foreground, accompanied by a notification. Users can then choose to hide that notification if they wish.

https://github.com/nintendaii/unity-background-service

#native #background
πŸ”₯7πŸ‘2
Asynchronously Instantiate Objects with InstantiateAsync In Unity

InstantiateAsync has finally arrived, though still in beta. It's also interesting whether it will be backported to LTS versions or not

https://giannisakritidis.com/blog/InstantiateAsync/

#instantiate #async
πŸ”₯6πŸ‘4
radishface/OnDemandShadowMapUpdate: Customize on-demand shadow rendering in HDRP.

By default, High Definition Render Pipeline (HDRP) updates the realtime shadow maps every frame. This script adds more options to customize the on-demand shadow rendering to optimize the runtime performance. It relies on RequestShadowMapRendering and RequestSubShadowMapRendering functions

https://github.com/radishface/OnDemandShadowMapUpdate

#hdrp #shadow #rendering
πŸ”₯4πŸ‘1
Get your work recognized: write a brag document

A lot of developers work in companies that practice some sort of performance review. Take some time to write a document with your accomplishments and update it periodically in order to make not only your life easier when it comes to a self evaluation report, but also your manager's and peers' lives who take part in the review.

https://jvns.ca/blog/brag-documents/

#career #review
πŸ”₯3πŸ‘2
AnnulusGames/LitMotion: Lightning-fast and Zero Allocation Tween Library for Unity.

Annulus Games shared a lot of great packages on their GitHub, make sure to check their repos. Some of them I've already shared here too.

https://github.com/AnnulusGames/LitMotion

#tween
πŸ”₯4πŸ‘3