Upon closer consideration, we decided to go back to the original plan
Update 411Apart from the editor I have been working on a new creature. I haven't made updates yet because I've been working on the behavior and haven't yet skinned it, and I know that what you guys want to see is gifs of stuff other than moving little boxes. However, the behavior is starting to finish up, so I thought I'd give you a little update on what's going on with that.
The new creature is based on a backer suggestion, and basically a mix between a flying squid and a cicada. It's roughly slugcat-sized and a very quick and proficient flyer. Here are some sketches, even though judging by how things have been going so far the actual implementation tends to end up not looking a whole lot like the sketches.
When experimenting I tried to make it so that it flies with its head up because the vulture already flies with its head down, but it looked a bit goofy and totally lost the squid-like quality, so I settled for a head-down design. A lot of what we had planned for the "buzzer", including quite a bit of how it actually looks, have ended up going into this creature instead. For the buzzer we have other plans, but as for how it will look that's a bit in the blue right now as this one ended up stealing a lot of its design particulars.
There are still a few things that are not decided on, such as exactly how the tentacles/legs will look like, and how long they will be.
However, the behavior is coming along nicely!
What I'm most excited about with this creature is that they're the first one that actively and purposefully migrates through the world on a large scale. Cicadas eat bats, and upon spawning in specific cicada den rooms they map out a route to a closeby active swarm room. Then they move there, through abstract or realized space. In the swarm room they hang out, hunting some bats. They can't eat bats on the fly like the slugcat, but rather have to bring them back to stow them in their dens similarly to how the lizards stow you in their dens and then re-emerges to hunt some more. After storing a bat, they head back to hunt some more if the rain timer permits it.
This means that between the cicada rooms and the swarm rooms there's a traffic of cicadas, travelling in one direction with bats in their clutches and in the other without. This stuff really works
The cicadas can catch bats in abstract space, dispose of bats in abstract space and move with bats through abstract space. So there can be quite long migration routes through several rooms, not all of which have to be realized, and traffic will still keep flowing. My early testing with this stuff is something I'm super excited about! Entering a room where cicadas are flying back and forth gives so much life to the game world, and following the route in either direction to see them hunt or dispose of their prey really adds to the sense of scale. You can feel that there's a process going on that is larger than just one room, and this is something I'm super happy to finally have implemented. Naturally you can also use this to your advantage by following the cicadas to the swarm room. Only problem is that then you end up in a swarm room which has cicadas, which is pretty annoying...
The cicada-player relationship is based around the cicadas viewing you as a rival in their bat-hunting. They won't actually hunt you, because they're too small to eat you, but they'll antagonize you. Their standard method of harassment is bumping into you with a quick charge attack or grabbing on to you and pulling you in some random direction, both of which is actually really dangerous in the Sky Island terrain where it's easy to fall to your death.
One thing I'm not done with in their behavior is that I want them to only attack you if you're actually close to a swarm room, but for that I need to do something I call Dynamic Relationships, which is a small AI rewrite I haven't gotten around to. Basically right now the creature relationships are all defined on startup and can never change during play - if one creature views another creature as prey it will always do so, for example. With the dynamic relationships I want to take that data and filter it through some context, such as "attack this creature only if it's close to a room of this specific type" or similar. This same system will also run stuff like the Vulture Mask (if you're holding it lizards are scared of you, otherwise they hunt you) as well as the individual traits (stuff like aggression can be weighted through the individuals specific setup) and the individual relationships (if you save the life of an individual, that individual might stop hunting you). Lots of exciting stuff when I get around to that, which will be soon!
As for now, when a cicada stores a bat in its den a new bat is spawned randomly in one of the active swarm rooms to keep bat populations up. For all of you food-web purists out there, sorry
I'm fully aware I can't make this system balanced, and it's more important to me to keep the world active and
looking like a balanced system rather than it actually being one.
The last note on the cicadas is that you can pick them up, similarly to how snails can be picked up. When you hold the cicada it will try to fly, and this grants you the ability to do long, floaty jumps. As it carries you, the cicada loses stamina, which is replenished when you're on the ground and it doesn't have to actively carry you. This means that you can't use the cicada as an infinite parachute, which is both a gameplay limitation and a rationalization of the fact that you still die from fall damage if your fall off the sky islands.
We've been talking a bit about how easy it should be to catch the cicadas, and we think we have an idea but it'll need some tinkering for sure. I don't want you to be able to just run into them and grab them as they're actively attacking you, or they'd sort of lose their role as a threat. The current idea is that when they're buzzing their wings you can't catch them, but if they're sitting on a wall or momentarily stunned you can.