this post was submitted on 13 Mar 2025
155 points (94.3% liked)
Games
37299 readers
1845 users here now
Welcome to the largest gaming community on Lemmy! Discussion for all kinds of games. Video games, tabletop games, card games etc.
Weekly Threads:
Rules:
-
Submissions have to be related to games
-
No bigotry or harassment, be civil
-
No excessive self-promotion
-
Stay on-topic; no memes, funny videos, giveaways, reposts, or low-effort posts
-
Mark Spoilers and NSFW
-
No linking to piracy
More information about the community rules can be found here and here.
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
I've read from a few people who've done similar sorts of things that the solution to this problem is to just have everything track everything to begin with. Hunger level, heart rate, mood, everything you can possibly think of to track, and then just have everything else inherit from that global class. A lot of the values will be zero for some objects, but that's okay, after all a storage crate doesn't need a mood, both at some point in the future maybe you want to add an emotional box, and your code will definitely handle it now. Otherwise you have to go back in and alter everything every time you make a slight change.
A more complicated but ultimately faster approach is using a structure like an Entity Component System. You build an entity (deer, person, plant) out of components that are just data (health, hunger, mood), and then each type of component has a corresponding system that updates all the components at once based on other values. It’s somewhat similar, but you save space on unnecessary components not being added, and it packs the data together in way that is faster for the computer to iterate through.
An emotional box? Enough about my wife!
OH!
LOL, forgot about that tacky bastard.
He sucks, but it was such a good set-up for a shitty Dice Man style joke, I couldn't resist.