Learn how to bypass Unity’s slow compilation and domain reload times by running game logic tests in a headless .NET environment. This guide shows you how to set up a linked project to run tests in milliseconds, enabling rapid TDD and autonomous AI code verification
For my latest prototype, I wanted to evoke a sense of analog nostalgia, gritty, unstable, and imperfect. Think lost tapes, old surveillance footage, or the glitchy intros of 80s sci-fi. A clean render wouldn’t cut it. I needed something with personality, something VHS.
To get there, I built a custom VHS effect shader that layers several imperfections: flickering scanlines, wobbly distortion, chromatic bleed, desaturation, and noise. Each is subtle on its own, but together they create a powerful mood cue. The effect isn’t just visual, it tells the player, this world is worn, haunted, and strange.
Here’s how it works, step by step.
Using Dependency Injection with ECS simplifies system management and improves scalability. A DI container like VContainer automates system setup, reducing boilerplate. In this post, I share my experience, demonstrate DI integration with ECS, and provide a GitHub repo with a working example to optimize your workflow.
Choosing between sampling and instrumental profilers depends on what you’re trying to optimize. Unity Profiler gives precise timing data but adds overhead, making it great for tracking spikes and slow scripts. Sampling profilers like Superluminal are better for finding CPU hotspots and analyzing multi-threading with minimal impact. What is the best approach?
Let’s see if the latest .NET version changes the results of my old post on Array vs Dictionary lookup performance in C#
One more tool in your portfolio to leverage the performance of your game. We will dive into IL2CPP internals to find new ways to make our games faster and create better experiences for our players
A crash that happens when opening the app via a notification or a deep link occurred after the Unity version update due to the Apple Privacy Manifest requirement.
Strangely, it was reproduced only on iOS 15 and 16, while working correctly on iOS 17.
It affected various versions, including 2021.3, 2022.3, and 2023.3. Let’s dissect how to fix it and what was the cause.
In this series extension, we deep dive into performance testing for Unity ECS. With Unity’s multiple approaches to do the same thing, testing has been crucial in optimizing my game. Many developers, like me, held off using Unity.Entities until the 1.0 launch because the API kept changing. Performance testing allows us to compare different techniques quickly. Talking about parallelization, it’s hard to tell if your code is running better on the main thread or otherwise, unless you test it. Through testing, we can decipher minute performance differences. I also use tests to track performance after optimization attempts and minor code updates. I’ve further explained the test setup and provided code examples for clarity.
Incorporating automated testing in game development helps ensure core logic functions correctly despite data modifications from other systems. This post explores unit testing within ECS games, particularly in Unity.Entities. I will share how I write unit tests for key systems and demonstrate how to easily set up testing for games built with Unity ECS, using my game as an example.
More and more Unity projects use Task-based Asynchronous Pattern (TAP) and async/await to work with asynchronous methods. But should you be worried about the extensive code generation when using async/await in Unity? Let’s find out.