Just a quick update after a few days of being distracted by life. I mostly did some necessary background plumbing (that will benefit all of the projects I’m currently working on), like implementing a stat manager that from now on takes care of things like entity health, speed, etc. in one place, without spreading stat data over several nodes. Most importantly, though, I really started working on a versatile and extendable logic system for my entities, which mostly will be about the zombies for now. This component is like a switchboard that draws all relevant data (like from the stat manager, as well as getting important signals) and makes AI decisions accordingly, and controls all relevant entity systems like reactions sounds, adjusting walking speed etc.
In practice, this means zombies now react when you hit them, they follow you around until you’re too far off, and fall back into their idle state, walking back to their preferred spot on the map. You can see a few instances of this in the linked video.