Saurian DevLog #71
Hello again everybody,
We’ve got some AI and animation updates this week to show, well on our way towards playable Triceratops.
Hello, Saurian fans! These past two weeks, I've been working on AI! The AI in-game is a package I'm not terribly accustomed to, so to get used to how it works, I've fixed two long-standing bugs.
Firstly, I've partially reworked how animals with similar top speeds engage each other. Before, they would sometimes get locked in a state where they constantly chase each other in a circle. No longer will they pursue each others' tails, Ouroboros-like, and instead they will break off and re-engage after adjusting their angles of attack.
In addition, I have fixed the issue where animals are suicidal around crocodilians and willingly sprint into their waiting mouths. Hatchling Dakotaraptor will no longer worry about their families being immediately slain by the unavoidable singularity.
Not to worry, though - I'll be returning to multiplayer work for my next tasks!
Hey everyone. Since last devlog I've been refactoring families to share as much code as possible with herds (hopefully allowing for some behavior reuse as well), fleshing out herd movement and starting to tackle group-related perception. Most of this involved back-end work which isn't very visually novel, but there are a couple tidbits I thought you might find interesting.
First off, in improving herd movement, I've begun to give some centralized logic (rather than relying entirely on emergent behavior) to improve the overall mobility of the group. Rather than following a leader, as previously done, groups now choose a direction based on the state of the group, and then all try to generally move in that direction. For example, if the group is thirsty on average they'll head towards a water source; otherwise, they'll choose a random direction within some angular constraint of the last direction. Among the advantages of this are the support of horizontal group organization (such as subadult groups), keeping the group a bit more mobile, and helping members move in a more parallel manner than before. Overall, it allows me to have just a bit more control while still mostly relying on emergence for movement patterns. You can see this in the image below, where the red sphere indicates the group's 'center of mass' and the green line extends from it in the group's current direction.
I've also been starting to write warning calls for the group, so that group members can alert each other of threats and help shift priorities around addressing those threats. For example, as a baby Trike, if an Acheroraptor is nearby (but not nearby enough to upset the adults around you) you would be able to warn the group about it--meaning any other members who weren't aware of it now will be, and will potentially be more aggressive towards it. I haven't fully decided on the specifics of this system, but I have decided to largely rely on emergence rather than a centralized 'group memory', which can be achieved simply by multiplying / replacing the 'threat' scores for a perceived animal among other group members. That said, there's still a lot to work out here, but I'm hoping I'll be able to show you this system in action next time.
As Henry said, he has incorporated a “warning call” function into the Triceratops groups. So obviously he required a “call” animation for this, so I had the task of going in and doing that for all the growth stages. Here it is on the hatchling, who is probably going to be the one using it the most:
I mentioned last DevLog that I was working on something a little more interesting for Anzu, this isn’t completely finished yet as I had to work on more pressing issues in the meantime, but I’ve done enough to do the big reveal.
The secondary attack for Anzu, when it is playable, will be a “jump kick” attack, in the manner of a cassowary or an emu. Getting it to stick the landing has proved the most difficult part of this animation, but the initial thrust dealing the damage has been done:
The in-game animation of this will be faster, but I’ve left it slowed down here so you can see what is going on.
This will work basically as a heavy attack for Anzu, as in it will take longer to execute but will be its highest damage move. I’m going to try and convince Henry to get the AI ornithomimids to do this behaviour too, but I bet he’ll grumble about it.
(Editor’s note: Henry will not grumble, he will be thrilled!)
Our header image this week is by community member Lagoon.
This week I just had to feature these awesome cartoon renditions of our dinosaurs by Syn P. Grabowski. These are so charming!
We also received a lovely Goathrob painting from Tyeizer:
That’s all for this week. Thanks for reading!