this post was submitted on 12 Feb 2025
1032 points (97.7% liked)
Microblog Memes
6556 readers
2063 users here now
A place to share screenshots of Microblog posts, whether from Mastodon, tumblr, ~~Twitter~~ X, KBin, Threads or elsewhere.
Created as an evolution of White People Twitter and other tweet-capture subreddits.
Rules:
- Please put at least one word relevant to the post in the post title.
- Be nice.
- No advertising, brand promotion or guerilla marketing.
- Posters are encouraged to link to the toot or tweet etc in the description of posts.
Related communities:
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Admittedly I haven't worked on any games, but if I were to do so, I always believed ECS to be the way to go: https://en.m.wikipedia.org/wiki/Entity_component_system.
Whilst composition over inheritance is indeed the way to go (and if you read the original Design Patterns book, it's part of the things they talk about in the beginning well before they go into patterns), ECS just distributes the data all over the place which tends to create bugs due to implicit dependencies that are not very visible because things are distributed (so when you change something, other stuff elsewhere might break).
The point of ECS is performance with large numbers of similar entities, rather than being a good architecture in software engineering terms (i.e. resilent to bugs, not brittle when changed, easy to understand as whole and so on).
My impression, having come from totally different areas of software development (server-side, web, smartphone apps, desktop apps) is that Game Development isn't all that sophisticated in the terms of Software Architectures, maybe because it's too close to the metal, too concerned with performance and mainly the playground of young devs who, frankly, lack the experience to have reached the level of being aware of software development as a process and how to design and develop software in such a way as to improve the outcomes of that process.