[Regarding the early creature development shown on ISC,] has the related AI work for creatures begun yet, and if so, where are we at?
TL;DRCreature AI is at a very early stage, behind human NPCs in priority; they are designing a flocking-based structure and building generic systems now so creature work can start ahead later.
So I think we basically started to discuss some of the creatures we want to tackle first. I have some of the basic ideas on how we want to structure the code kind of clear, especially in my head. I possibly need to talk a bit more with Andrea as well about this. But the idea is that we are already splitting creatures into different groups. There are smart creatures and less smart creatures. Of course, if you want to simulate something like frogs or fish, they don't require crazy behaviors running on them. They might require a little bit of behavior, but not much. Mostly communication, audio, something like this, and some animation playing. The way I want to progress on this one is that there would be a basic flocking kind of state in which they can decide to be part of a flock. And when they're part of the flock, the flock kind of simulates them. And this can also become part of the more intelligent animals. You have sheep, you have kind of lions, and sometimes they move as a flock. And then when they want to do something specific, or when you as a player interact with them, they can go into this extra mode where it's like, I'm running a full-blown behavior, possibly to defend myself, attack, something like this. So the basic structure that we work on is pretty much following this line. Subsumption behavior can be run on any entity for us. So it's not really anything related to human NPCs or alien NPCs; really any object can be an AI agent, as we call it. They can move around. We can define how they move. We can have different following styles for animals, of course, and different types of actions. For example, the stuff we talked about before, the navigation links, can define how you jump over objects or how you use some objects to perform special actions. Jump against a tree and then jump on top of a guy. These are special actions that you can dynamically inject, similar to how a ship would do a special action when it wants to show off. And yeah, not sure if that answers all the questions there. Dan, if you want to add anything on that.
No, the question is basically whether we have started development, and I think we're very early. The guys that are working on the actual creature lore and the creature art, the concept art, are ahead of us, but that is generally a good place to be. I think the main reason we are where we are now is because we're still focusing on the human part, which is definitely a higher priority. If this was a game about hunting animals, then animals would have been our priority. But for now, we need to get humans, and maybe also some of the aliens needed for Squadron, in a decent state before we move to this. Otherwise, we would have to create an extra team, which means we pull resources from the existing teams, and it would be a risk right now. We'd rather do one thing, do it properly, then move to the next.
Priority is always at the heart of every game development decision. Even with what is now five studios, six studios around the world, somewhere around almost 600 people around the world, there's still a finite number of resources and only so many things that can be worked on.
The only thing we can do, and this is what we usually really do, is try to be smart. So if we make a system that we know might eventually be used by the creatures as well, we do it in the proper way, so that even if you are not officially starting the work on that, when you start, you start a little bit ahead. Like all this usable code, for example. And again, creatures are not necessarily always on the ground. There might be flying ones, and some of these use the same code that we use for ships: find a 3D path on a planet's surface. It's pretty much the same thing. We implement it in a way in which it can be used in a generic way.
And things like flocking behavior, for example, can feed back into the crowd behaviors that we've got with the humans. And I was actually thinking, if they're cosmetic creatures, that's one example of where you could have the AI actually being on the clients or on the servers. Because with flocking, if you've got flocks of butterflies or something like that, if you can't catch them or interact with them, then you can have those simulated to really high fidelity on your clients rather than the server and get something really reactive that can be very effective. Seeing lots of flocks of small creatures can be really cool.