this post was submitted on 12 Feb 2025
1032 points (97.7% liked)

Microblog Memes

6556 readers
2026 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:

  1. Please put at least one word relevant to the post in the post title.
  2. Be nice.
  3. No advertising, brand promotion or guerilla marketing.
  4. 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
[–] [email protected] 14 points 2 days ago (2 children)

I've been working on a survival/RTS game and it's funny that even though the game development framework I'm using (Unity) tends to push you to put most of the code on the visual objects level and that was my original approach, over time I've figured out the whole code is way cleaner and works better (in other words, the best architeture for that software) when almost all of the game is really just a Data layer being manipulated by the player and a separated View layer for the players to visualized it in a nice way - basically a Model-View Controller Architecture, same as you'll find in systems were a server-side application has web and/or smart app UIs.

That said, I have the impression that something like an FPS is a lot less data-driven than an RTS because things like the 3D models that make up the world are a lot more important for data decisions (has the bullet hit an object, can the player move to this position). You can still say that stuff is data (3D models are data, specifically collections of vertices in 3D space with some additional information attached), but model data is generally way more visualization-oriented than what one could metaphorically call a "database".

[–] [email protected] 4 points 2 days ago (1 children)

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.

[–] [email protected] 1 points 2 days ago

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.

[–] [email protected] 1 points 2 days ago (1 children)
[–] [email protected] 3 points 2 days ago

I meant it as an iOS or Android app.