Developer dossier

Stuart Charlton

Animator, AI

All 5 answers
5answers
2022active
Star Citizen Livemost heard in
NPCs & AItop topic

Topics

Answers per year

2022 · 5
20222022

Recent transmissionslatest 5 of 5

Why are there animators on AI teams? Isn't there an animation team?

TL;DRCharlton says AI animators build the flows for interactable objects like a coffee machine, so AI characters perform tasks such as a bartender making drinks with authentic, realistic animation.

Stuart CharltonAnimator, AI

One reason is because one thing that I work on a lot as well is these things called usables. And a usable is a thing that somebody can interact with, like a coffee machine. So I'll go out there and do the research on how to use a coffee machine and put together sort of a flow. Luckily, I drink coffee a lot, just using that as an example. But I'll go out and videotape myself using my coffee machine and put it together as what people would call a state machine, or some people may refer to as a flow graph. And it would basically explain a flow of how to use that usable, the coffee machine. And by doing that, we maintain a sense of realism, performance, and just adding more to that expanding universe.

Jared HuckabyHost, Community

An AI that knows when to trigger what animation based on what it's trying to do.

Stuart CharltonAnimator, AI

Yeah. For example, a bartender knowing how to make a highball, knowing how to get a smalls glass, knowing how to make all the different drinks. So yeah, all of those different things, they all require different performances. And so I'm in charge of making sure that performance is authentic.

Star Citizen Live›AI Roundtable Q&A·
Published on this date.20 May 2022

Will the AI reinforcements immediately begin destroying our parked ships, or will they engage players directly first?

TL;DRCurrently reinforcements won't attack a ship nobody is piloting, since the AI has no good tactic for destroying ships yet, and behavior will vary with traits and mission needs.

Marius AirineiLead Programmer, Frankfurt

I think if the player or the hostile is not actually in the pilot seat, they're not going to attack that ship.

For now. Yeah, I think right now there is one thing to say. We don't have a good tactic for them to decide how to destroy a ship. So, of course, they could shoot a rifle, but it doesn't really damage a ship much. And then yes, we also want to understand how to expose it based on the mission requirements, right? So for example, the guys could be called in not to destroy your ship; they will destroy you or capture you, right, in theory, eventually. So it depends on the type of information designers want to be seen, and they would probably search for somebody. It depends also what reinforcement means, because I think you brought up a good point. It could be that you arrive at a place where nobody is, and you trigger an alarm, right, that attracts some people that need to go there and check what's going on. But it could also be that there are already people that you engage, and some of them manage to request assistance. So they come, and the people who come already have an understanding that something is happening because it's been communicated to them, right? So you want to bring them in with a different kind of alertness that is shown to the players, so that they arrive already knowing that something went wrong with their friends and stuff like this. So we can support those types of things.

Jared HuckabyHost, Community

And then, of course, we've talked about AI with differing levels of intelligence and personality and stuff. You want AI who recognize, I don't have weapons to take out a ship, so I'm not going to bother shooting at a ship. And then there's always got to be that one person who's new and not really experienced, and he'll take his little pistol and try to shoot down a Cutlass. That's part of building a dynamic and diverse universe. You don't want every bot to be perfect.

No, and I think it's also a matter that if it feels real, then it's fine, right? You would expect if you shoot at a guy that is on the ground and he has a pistol, he might shoot some rounds, because that's what a normal reaction would be. And then he tries to find cover. Or while he looks around and doesn't know where to find it, he still tries to shoot at you, and then he goes and tries to find some defensive area.

Andrew DaviesProduct Owner, AI Feature Team / Senior Developer

That's where our trait system will come in. We're going to have different traits that will be integrated with the combat behaviors and everything. So if you've got a gung-ho character or a cowardly character, then there will be different traits, and they will affect different roles on targets, how they select them and other things like that.

Stuart CharltonAnimator, AI

One other thing about the animations for people with guns is what we get reviewed on a lot is trigger discipline. And that's about how you actually hold the weapon. And Steve Bender will chop you down if you don't understand proper good trigger discipline.

Star Citizen Live›AI Roundtable Q&A·
Published on this date.20 May 2022

Can you make the argument that some AI have to be stupid and have bad trigger discipline?

TL;DRYes, not all AI should be perfect: factions differ in training and combat style, and amateur-looking performances and settlements of less-trained people fit the universe.

Stuart CharltonAnimator, AI

That's actually the thing. I believe that we had one of the actors who was actually learning about using the weapons. And because they were learning, the performance actually came across as somebody who was learning. So they weren't perfect. And it was, I believe, exactly what we needed.

The more real it is, the more real it feels.

Andrew DaviesProduct Owner, AI Feature Team / Senior Developer

We've definitely got some factions that have combat styles which are different. Some are highly trained with their weapons and some are kind of like amateurs just grabbing their first weapons. So that's definitely something that should come across with our animation style as well.

Jared HuckabyHost, Community

Without jumping into spoilers, there are multiple factions in Squadron 42 that you'll be squaring up against, and they don't all have the same modus operandi, let's put it that way.

But even in the Star Citizen universe, I think that the world is so large and vast, right, that you would expect that there might be some settlements of people that are less trained than others.

Star Citizen Live›AI Roundtable Q&A·
Published on this date.20 May 2022

Anybody who's played Star Citizen for any amount of time knows that all AI in the game suffer from a number of performance issues. What of that can we fix today, what can we work on in the short term, and what requires waiting for things like entity streaming and server meshing that are out of your hands?

TL;DRThe team is working on server frame rate, synchronization bugs, calculation priorities, and faster queries, mostly without needing server meshing, though heavy NPC counts on one server remain a problem.

Marius AirineiLead Programmer, Frankfurt

So I could start a bit on some ideas on what we are doing. We have a lot of performance tasks that we try to tackle to improve the frame rate on the dedicated server. Because on the client it's not a big problem. Usually you stream only what is around the player and you render only that, so it's not that costly. On the dedicated server, because we don't have server meshing yet, if you have 50 players and each of those 50 players is in heavy areas like Lorville, Area18, New Babbage, with a lot of NPCs, right, it happens that the dedicated server is going to have 7 or 5 frames per second. And this is going to impact how fast you are going to see the decisions from the NPCs. So yeah, this is one of the biggest problems that we have. And what we do is work on performance tasks where we can, plus we try to discuss with directors and designers to try to limit the number of entities that we put in the game. So yeah, these are the two things that I could think of at this moment.

Stuart CharltonAnimator, AI

One thing, and definitely correct me if I'm wrong, Fran, but when it comes to the performance of the characters that are inside the usables, we do have this sort of thing that we can fall back on, and I believe it's called usable idle, that's the technical term anyway. But basically, if the animation is having trouble loading, or there's too many NPCs and there's one that's just asking the server, hey, what's my next animation, and it's just taking a bit of time to get there, there is an idle animation, which I will put together, which is in context to that particular usable. And then even if it's not loaded the animation, at least it's doing some sort of performance that's in context.

Yeah. Basically, it's not actually about loading, but it's deciding what to do next, I think, right? I think this is what you probably meant. And I think, yes, absolutely. A lot of the stuff is being smart, especially in the social environment, where you know that the player is not going around killing everybody, right? Because they need to react very fast and so on. But in the social environment, yes, we absolutely need to be smart about the way we cover up the time it takes to find something when there are like 1,500 characters active at the same time. That's just a lot for one server, right? This is where I think it's even pretty good for what we have right now. And of course, it's still not the experience that we would like the player to have. There's a bit more stuff that we are discussing. I mean, first, Marius is absolutely right when he says, we do a lot of performance captures right now, every time, and we see where the biggest bang for the buck is as well. Because AI itself is definitely not that expensive, but it's everything that comes with the character, right? That is animation, updating animation, the rendering, all the calculations for, I don't know, if they're planning a ship with all the items and stuff like this. So AI, at the end of the day, is at the end of all the chains of all the features. So to have good AI, you need to have everything else working. I think one thing is definitely the synchronization as well, that we are looking at, so that we try to fix bugs. Sometimes I know people feel like, oh, this is what happens in the game. But I think it might be different. Some of these bugs are related to the fact that you see on the client something different than what happens on the server. And recently, we have fixed a lot of those bugs where, for example, there was a problem with the lower body turning. Because the lower body was not turning on the server, you would see a character fighting that was not looking at you. On the server, he was trying, but he was not turning, and that information was not right on the client. So you feel like, oh, the guy is not responding to me because he's not shooting. But he's not shooting because he's not pointing the gun at you, because he can't. And on the client, it doesn't even look like he's trying, right? So I think you have some types of discrepancy in experience; these are the bugs that we are absolutely looking at right now. We don't really need any change from server meshing or persistence or any other type of dependency. I mean, it's time; as you said, sometimes you need to just speak with the balance. But there are other things that I think we want to do. For example, at the end of last year, one of the things that we changed is the way we give priority to some of the calculations. So we give priority to the combat more than the social, and to some things in the social a bit above the combat. And I was finishing experimenting with some other ways of keeping priority with different LODs, and these are things that we have. We already have two versions of LODs for behaviors and movement and stuff like this, but we don't have yet, for example, what we want to do: a nice way of balancing the importance of the requests based on the LOD you are at. And if you switch LOD, right, if the player moves around and fights with, let's say, Andrew, right? And Dan is super far. Maybe he was close to me, but I left him, right? So if now it takes a little bit more time for him to find a new cover spot, I prefer that Andrew's cover spot is given to him more quickly. And we try to be very careful as well. We have a really limited set of raycasts we do every frame, right? A very limited amount of queries that we do. And some of the low-level systems that this query system uses, we are trying to optimize as well. The usable queries, we are right now working on making them faster. If that becomes faster, you can run quicker queries, right?

Star Citizen Live›AI Roundtable Q&A·
Published on this date.20 May 2022

For your area of expertise, what's the biggest challenge right now?

TL;DREach developer names a different challenge: consistent setup across a big studio, getting mocap time (expected to be fixed), intertwined systems, planning and system complexity, and performance work with limited resources.

Dan BakerSenior Designer, AI Content Team

Setup and consistency. Setup is quite challenging, especially with a big, big studio like us, making sure everybody's doing things the same kind of way. Because when you go back to debug something and it's set up entirely differently to how it should be, yeah, well, it's another frustration.

Stuart CharltonAnimator, AI

Getting mocap time, but that's going to be fixed.

For me, it's the intertwined systems, right? For example, something I was looking at with Marius, right, was this transit system. You need to have a full understanding of how a system works so that I can also use it in the most consistent way, right? So sometimes you need to have either dedicated time from another team, making sure those things are synced, or make the best of your guesses on how something works so you can collect the right questions to use the other team's time in the most efficient way possible. And then the fact that sometimes some of the new features usually have an impact, right? So you need to do stuff in a way which encapsulates the risky part that might be affected to the minimum, right? So that as soon as something happens, it's all on that side. For example, the loadouts and the inventory: we have been talking a lot about the lockers, right? We did an implementation that way, which is that I can go to the locker and change. Now, as soon as the inventory is there, and the functionality for the locker, we can just replace the little part.

Andrew DaviesProduct Owner, AI Feature Team / Senior Developer

I was going to say lots of planning meetings, but I think, what I said before, the complexity of systems, just having to think through everything so you can get stuff as right as possible the first time out. That's probably a big challenge for me.

Marius AirineiLead Programmer, Frankfurt

Challenging, but in a good way, is working on and trying to find solutions for performance. It's something that gives you the best for that situation, especially with limited resources.

Star Citizen Live›AI Roundtable Q&A·
Published on this date.20 May 2022
EpisodeDevelopment process

All developers