Right, so the thing about the ECS pattern is that it makes it straightforward and concise to do a bunch of the really nasty video game shit: Intrusive and cross-cutting systems that affect a lot of entangled state across many domains. I'm not even gonna start with this, but perhaps you have seen something that qualifies. Scheduling-level concerns — for example, gameplay systems shouldn't run while the game is paused. That one is really awkward to do properly in GameMaker, and about as hard as scratching my leg in Bevy. Semi-isolated shared behaviors — for example, if it has HP and it's below 0, kill it; if it has a velocity and a transform, displace it according to delta time. You can handle these without thinking about inheritance, or repeating yourself, or having to remember to call some helper code in every creature's update method. But there's one thing in particular where the optimal way to arrange stuff is slightly non-obvious: Update logic that should run every frame for one…
No comments yet. Log in to reply on the Fediverse. Comments will appear here.