INNOGAMES STORIES

HelpURL for Shaders

Summary Unity provides a convenient way to link custom documentation to Monobehaviours and ScriptableObjects by adding the [HelpURL] attribute to your class. When an instance of this class is selected in the Inspector users can click the help icon to open the given link in the attribute in a browser. It would be nice if we could use the same attribute also […]

What is Software Testing?

To err is human. No matter how much of a perfectionist we are, we are all bound to make mistakes. Software testing can help prevent and discover mistakes in software development. If you’d had to answer “What is software testing?” what would you say? For me it is something pretty difficult to compress into a […]

Prioritizing Technical Debt part 1

I always had a big interest in the topic of technical debt (I will use TD for short). Technical debt exists to a certain extent in every project which I’ve been in development for more than a few weeks and influences the life of every developer. If you have a lot of it then your life is going to be full of suffering and the delivery time of new features will grow with every release.

How to make your tests more readable and maintainable

Tests should be easy to read and fun to write! In our daily business, we add new features and do refactoring or bug fixes. Every change could lead to a failing test. If we look at the failed test, we should immediately be able to understand what the test is doing. But often enough this is not the case.

In this post I will show you how we improved the readability and maintenance effort of our tests by introducing a builder-like API to prepare the test scenario.

Entity Relationships in Unity DOTS/ECS

Unity DOTS/ECS is powerful at processing huge amounts of operations. This performance relies on data lookup in continuous chunks, but what if you encounter dependencies between entities and have to jump between chunks? All entities should follow a moving target or entities should react to actions from another Entity? This post highlights how entities can interact with each other and what implications this has on performance.