Abstraction Layers

Introduction This long-due article will conclude the series on Entity Component System Code Design and will explore the idea of Inversion of Control layers applied to ECS. I design code in terms of layers for quite some time now and, in fact, I have hinted at it several times inRead More →

There are several reasons why programmers have a hard time wrapping their heads around ECS concepts. Having learned to code with an OOP-centric language is one of them as ECS reasonings are often at the antipodes of the OOP ones.Being Object-Oriented Programming so popular means that it is not simpleRead More →

Premise In this article, I am going to explain why I believe the Entity Component System design is a great paradigm to develop simpler to maintain (and therefore less expensive) codebases and also explore the idea to formalise best practices through the application of the SOLID principles, which, at glance,Read More →

Entity Component System design to achieve true Inversion of Flow ControlRead More →

The Dependency Inversion Principle is part of the SOLID principles. If you want a formal definition of DIP, please read the articles written by Martin[1] and Schuchert[2]. This is the most difficult principle to get right. I will take a step back from the previous article I wrote and discussRead More →

In this article, I will explain the previously introduced Inversion of Flow control, then I will illustrate how to apply it in OOP and how this can be best achieved using the Entity Component System design. While ECS design apparently seems to have nothing to do with Inversion Of Control,Read More →

If you got here from my previous articles, you may have still many questions unanswered, with one possibly being: why is an IoC container called Inversion Of Control Container? The first answer is: because someone chose historically a bad name[1]. The serious answer is: IoC containers take away the responsibilityRead More →

There is a wicked truth behind the use of an Inversion of Control container, an unspoken programming tragedy that takes place every day. Firm in my intentions to understand better the severe consequences of using an IoC container in game development, I decided to write this series of articles thatRead More →

Note: this article explains the use of Svelto.IoC container in more detail. However, I deprecated it a long time ago, so read this article for knowledge, but know that I now don’t recommend using an IoC container in any project. In my previous article, I briefly introduced the problems relatedRead More →

Unity is a good game development tool and honestly, I like most of its features. However, the programming framework is awkward to use on big projects where code maintainability is of fundamental importance. As you may have guessed, the following considerations in this article do not apply to simple projectsRead More →