Unity. Scriptable Object и память
You have to explicitly set null to loaded SO when it is not needed for GC to collect resources, otherwise it is claimed to stay in memory.
https://dtf.ru/s/unity/672283-unity-noscriptable-object-i-pamyat
#so #memory #leak
You have to explicitly set null to loaded SO when it is not needed for GC to collect resources, otherwise it is claimed to stay in memory.
https://dtf.ru/s/unity/672283-unity-noscriptable-object-i-pamyat
#so #memory #leak
DTF
Unity. Scriptable Object и память — apcrol на DTF
Захотелось поделиться неожиданной для меня находкой, связанной с тем как выделяется память и как легко столкнуться с крупной утечкой, которую без перезапуска не почистить.
Releases · Perfare/AssetStudio · GitHub
Inspect assets inside your build and find what is odd.
https://github.com/Perfare/AssetStudio/releases
#buildsize
Inspect assets inside your build and find what is odd.
https://github.com/Perfare/AssetStudio/releases
#buildsize
GitHub
Releases · Perfare/AssetStudio
AssetStudio is a tool for exploring, extracting and exporting assets and assetbundles. - Perfare/AssetStudio
In my opinion adding gradients to materials is super cool and useful in so many use-cases but also kinda annoying in unity, so I made a material property attribute that just adds a gradient field and converts it to a texture
https://mobile.twitter.com/totallyRonja/status/1368704187580682240
#gradient #texture
https://mobile.twitter.com/totallyRonja/status/1368704187580682240
#gradient #texture
Twitter
Ronja✨
In my opinion adding gradients to materials is super cool and useful in so many use-cases but also kinda annoying in unity, so I made a material property attribute that just adds a gradient field and converts it to a texture. gist.github.com/totallyRonja/8……
5 Ways to Improve the Performance of C# Code for Free
Not really for free, always measure performance.
https://levelup.gitconnected.com/5-ways-to-improve-the-performance-of-c-code-for-free-c89188eba5da
#optimization #csharp
Not really for free, always measure performance.
https://levelup.gitconnected.com/5-ways-to-improve-the-performance-of-c-code-for-free-c89188eba5da
#optimization #csharp
Medium
5 Ways to Improve the Performance of C# Code for Free
Slow code is optional.
Real-time GPU accelerated per-triangle occlusion in Unity
https://www.alexisbacot.com/blog/per-triangle-occlusion-on-the-gpu-in-1ms-with-unity
Repo: https://github.com/AlexisBacot/UnityOcclusionPerTriangleGPU
#occlusion #gpu
https://www.alexisbacot.com/blog/per-triangle-occlusion-on-the-gpu-in-1ms-with-unity
Repo: https://github.com/AlexisBacot/UnityOcclusionPerTriangleGPU
#occlusion #gpu
Alexis Bacot
Real-time GPU accelerated per-triangle occlusion in Unity — Alexis Bacot
An algorithm for real-time per-triangle occlusion in Unity. We use procedural drawing, a render texture, a tricky shader, compute buffers, and two compute kernels to check the visibility of triangles directly on the GPU.
Salary Negotiation: Make More Money, Be More Valued
https://www.kalzumeus.com/2012/01/23/salary-negotiation/
#salary #negotiation
https://www.kalzumeus.com/2012/01/23/salary-negotiation/
#salary #negotiation
Kalzumeus
Salary Negotiation: Make More Money, Be More Valued
|
Kalzumeus Software
|
Kalzumeus Software
Salary negotiation advice, mostly for engineers. Running total of raises negotiated due to this essay: $15M+.
Unity Multiplayer Example
Simple server example with node.js and edge multiplayer
https://ahmedschrute.medium.com/unity-multiplayer-example-fd84bfe0d31d
#multiplayer
Simple server example with node.js and edge multiplayer
https://ahmedschrute.medium.com/unity-multiplayer-example-fd84bfe0d31d
#multiplayer
Medium
Unity Multiplayer Example
In this tutorial we will create Multiplayer Game Server and Client using node JS (or docker) and Unity.
Load, unload and change assets at runtime with Addressables - GameDev Resources
https://gamedev-resources.com/load-unload-and-change-assets-at-runtime-with-addressables/
#addressables
https://gamedev-resources.com/load-unload-and-change-assets-at-runtime-with-addressables/
#addressables
GameDev Resources
Load, unload and change assets at runtime with Addressables - GameDev Resources
Addressables are considered "the right" way to manage assets within your game and helps tremendously with memory allocation. Get an overview of what the Addressable system is, the benefits in using it while learning how to dynamically load/unload an addressable…
Using ShaderGraph with UI elements |
https://foxxthom.medium.com/using-shadergraph-with-ui-elements-6e18e2d283f
#shadergraph #uishader
https://foxxthom.medium.com/using-shadergraph-with-ui-elements-6e18e2d283f
#shadergraph #uishader
Medium
Using ShaderGraph with UI elements
Setting up a Status display using a series of sprites is easy enough as I show in Let Me Tell You About… But this time, We want to simulate…
Game Programming: Delayed Result Gathering
Gather result the next frame. Example using jobs.
http://allenchou.net/2021/05/delayed-result-gathering/
#jobs #optimization #pattern
Gather result the next frame. Example using jobs.
http://allenchou.net/2021/05/delayed-result-gathering/
#jobs #optimization #pattern
Ming-Lun "Allen" Chou | 周明倫
Game Programming: Delayed Result Gathering | Ming-Lun "Allen" Chou | 周明倫
[latexpage] 本文之中文翻譯在此 Introduction Back at DigiPen (my college where I learned gamedev), whenever people from the games industry came over on a company day to share their industry experience, one question always came up during Q&A: please tell us one thing…
Here’s a pattern to easily access information that should be calculated only once per frame
https://blog.beardphantom.com/post/190886958254/heres-a-pattern-to-easily-access-information-that?is_related_post=1
#optimization #dataaccess
https://blog.beardphantom.com/post/190886958254/heres-a-pattern-to-easily-access-information-that?is_related_post=1
#optimization #dataaccess
An interesting benchmark on Json Parsing using Newtonsoft Json Serializer
I wanted to see the difference in parsing speeds between this custom method
https://www.newtonsoft.com/json/help/html/ReadingWritingJSON.htm
And the regular
JsonConvert.DeserializeObject<>() method Result
Manual deserialization is 50.03% faster then the regular method. However - The Manual deserialization is 196 lines of code compared to just 1.
I also tested if running the parsers in Multithreading was helpful and it wasn’t, just they synchronization between threads took longer then the whole job. So for most Jsons we experience I did not find any speed benefit in multithreading.
#deserialization #json
I wanted to see the difference in parsing speeds between this custom method
https://www.newtonsoft.com/json/help/html/ReadingWritingJSON.htm
And the regular
JsonConvert.DeserializeObject<>() method Result
Manual deserialization is 50.03% faster then the regular method. However - The Manual deserialization is 196 lines of code compared to just 1.
I also tested if running the parsers in Multithreading was helpful and it wasn’t, just they synchronization between threads took longer then the whole job. So for most Jsons we experience I did not find any speed benefit in multithreading.
#deserialization #json
Newtonsoft
Basic Reading and Writing JSON
To manually read and write JSON, Json.NET provides the T:Newtonsoft.Json.JsonReader and T:Newtonsoft.Json.JsonWriter classes.
Pooling WaitForSeconds in Unity
https://pauliom.medium.com/pooling-waitforseconds-in-unity-1ca32c1a9f52
#optimization #memory #waitforsefonds #pooling
https://pauliom.medium.com/pooling-waitforseconds-in-unity-1ca32c1a9f52
#optimization #memory #waitforsefonds #pooling
Medium
Pooling WaitForSeconds in Unity
Object pooling is a classic optimization technique. The basic theory is simple, creating and destroying things is relatively expensive…
Deep C# - Casting the Escape from Strong Typing
This ability to accept a bigger object i.e. you can safely downcast the parameter, is often referred to as contravariance. That is the return parameter can be safely upcast to a smaller object and this in turn is refered to as covariance.
https://www.i-programmer.info/ebooks/47-deep-c/493-deep-c-c4.html
#cast #csharp
This ability to accept a bigger object i.e. you can safely downcast the parameter, is often referred to as contravariance. That is the return parameter can be safely upcast to a smaller object and this in turn is refered to as covariance.
https://www.i-programmer.info/ebooks/47-deep-c/493-deep-c-c4.html
#cast #csharp
www.i-programmer.info
Deep C# - Casting the Escape from Strong Typing
In depth theory of casting in c#
Shader Tutorial: Pulsing to Audio
A very detailed guide how to make shader that reacts to audio input
https://www.patreon.com/posts/shader-tutorial-38679948
#shader #audioinput #pulse
A very detailed guide how to make shader that reacts to audio input
https://www.patreon.com/posts/shader-tutorial-38679948
#shader #audioinput #pulse
Интеграция и серверная валидация инаппов для стора Google Play — как защититься от читеров
Максимально базовая статья по валидации покупок
https://m.habr.com/en/company/lightmap/blog/559020/
#iap
Максимально базовая статья по валидации покупок
https://m.habr.com/en/company/lightmap/blog/559020/
#iap
Habr
Интеграция и серверная валидация инаппов для стора Google Play — как защититься от читеров
Онлайн-проекты рано или поздно сталкиваются со взломом внутреннего стора, когда читеры накручивают себе игровые предметы, оружие или валюту. Классика. Наш PvP-шутер не стал исключением — брешь мы в...
Simple Mesh Voxelization in Unity
https://bronsonzgeb.com/index.php/2021/05/15/simple-mesh-voxelization-in-unity/
Repo: https://github.com/bzgeb/UnityMeshVoxelizer
#voxelization
https://bronsonzgeb.com/index.php/2021/05/15/simple-mesh-voxelization-in-unity/
Repo: https://github.com/bzgeb/UnityMeshVoxelizer
#voxelization
GitHub
GitHub - bzgeb/UnityMeshVoxelizer: A simple mesh voxelizer for Unity
A simple mesh voxelizer for Unity. Contribute to bzgeb/UnityMeshVoxelizer development by creating an account on GitHub.