Signaling Agents Prototype

I’ve made a new branch, GitHub - Revolutionary-Games/Thrive at signaling_agents_prototype

It’s never going to pass CI/CD (sorry), and I don’t have the art or ability to use babel to finish it out, but I think I’ve got a good model for how the AI can handle swarming behavior that works for making a colony but doesn’t turn the game into a squad-based shooter.

Essentially, this branch replaces Oxytoxy with Cuddletoxy*, which while still toxic to other species now serves as a signaling agent with a simple follow command when it hits the same species. Once hit, a microbe will try to move closer to other microbes of the same species within a certain range of distances.

The minimum distance, which is lower in microbes with higher focus, also goes up a little every time a microbe needs to turn to stay in a swarm, naturally letting faster moving swarms spread out a little. The maximum distance (beyond which the microbe doesn’t bother trying to follow anyone) goes down a little every time the microbe runs from prey or finds food, because it has more pressing matters. Getting hit with Cuddletoxy* again resets both of these values. If the player wants, they can lead microbes on for an indefinite period, but it costs compounds to keep doing so. On the other hand, not asking much of the other microbes (by not moving very fast and not running them into predators) will keep your new friends around for a while.

Swarming behavior is overwritten by detection of predators and prey. A smarm encountering a predator will scatter and possibly fight (haven’t tested this aspect yet), and a swarm that finds prey breaks formation to rush it down, possibly returning to the swarm later.

When there are two or more others of the same species to choose from, a smarming microbe picks the furthest. This has the effect that swarms tend to grow thinner and thinner then fully disperse instead of splitting into two, and makes it so that progressively larger swarms are harder to control. On the other hand, it means that a single player microbe can “out-vote” several other, simply by being the furthest out, without the need for an explicit leader microbe, which I felt would result in too “smart” feeling behavior for single-celled organisms.

You have to use git to get the branch, but feel free to try it out and let me know what you think. If anyone wants to handle actual implementation feel free to take it, since I can’t do it in my development environment right now.

*scientific names have not been verified by theory team

2 Likes

This is a pretty interesting take.
However, this doesn’t fully address the problem that signaling agents are meant to solve, which is how hard it is to swim into other members of your species to form colonies. That’s why the design I wrote calls for it to have a ranged area effect on any cells of your species that are relatively nearby. This is so that trying to get to multicellular by having a large enough colony is not too frustrating.

1 Like

Honestly? I say it’s an idea worth giving a try. It’s a pretty good start with not too much complexity and plenty of room to adjust and improve.

The only thing I disagree with is having to aim and shoot at allied cells to get their attention, I feel that having to do so may be somewhat disruptive to the player’s motion and attention. Regardless, I’d like to give it a try and see how it is.

My ideal method is that the player sends out a sort of area of effect “radar ping” that expands from the player and pulls the attention of AI cells that get caught in it. This would help players not have to worry about playing tag with their allies to keep them together. That’s really my only complaint about this.

1 Like

Another guiding principle that led me to this idea was a desire to make signaling agents independently useful, instead of only serving as a way to skip gameplay when building a colony. Personally I never had a problem shooting the cells I wanted to attract, but I might just be too practiced with toxin at this point. There’s also a range you need to be in for the swarming to take effect, which was intentional on my part, but I could see you guys finding that too challenging still.

2 Likes

I finally got around to playing with this prototype now that I have had the time.

Yes, I’m pretty bad at aiming toxins, especially at particularly small and fast targets which makes signaling allies as a small bacteria a bit of a nightmare. As a larger eukaryote it isn’t really bad at all, and helped me adequately call my friends over to bind with.

I think that a zone-based signal still remains to be our best approach, so I’ll be sticking with that idea for now.

That being said… We could potentially encompass both methods through the organelle upgrade concept. With shooting agents being a long-ranged and targeted option for our more skilled shooters, and the zone option for the more leisurely types.
I could definitely see players adapting between both versions depending on the specifics of their species!

1 Like