Subliminal
arrow_backStar Citizen Live

Star Citizen Live Gamedev: AI Sprint Report

31 March 202301:04:281,928 linesWatch on YouTube ↗

Transcript — every row opens the video at that moment

  1. 00:00:04

    Hi everybody. Welcome to Star Citizen Live. The AI Sprint Report and your host Jared Huckaby. And if you've never seen Star Citizen Live before, it's where we take about an hour at the end of our week, hang out with some developers, and talk about this project that we're all working on. On this week's show, we're doing something a little different. We're bringing back a an older format that we haven't we haven't visited in a while called the Game Dev format. That's where we're actually going to hang out with a developer and see a little bit of their actual work. So, whereas most of Star Citizen Lives are generally talk and discussion, this will be a much more visual Star Citizen Live than normal. And it this one specifically is a follow-up to yesterday's Inside Star

  2. 00:00:52

    Citizen. Now, if you haven't seen yesterday's Inside Star Citizen, you should absolutely go and check that out. That's what we do where we did what we call a Sprint Report, which was another format that we hadn't brought back in a while. A sprint is using when we use Agile development for game development, a sprint is where developers go off, they work for about 2 weeks. In our case, it's 2 weeks, but the length of a sprint can change depending on the project. They go off on their own for 2 weeks, they come back, present some work to everybody. People give notes, people take notes. And sometimes they go, "Okay, that's done. I'm going to move on to another thing." or they say, "Okay, I'm going to go back and continue on this for another two two weeks and come back later." Inside Star Citizen yesterday is where you saw the sprint work of a bunch of teams, the interactables team, the environment team,

  3. 00:01:41

    the ships the ships team, stuff like this. What we did not include yesterday was a bunch of stuff from the AI team because the AI team has had quite a few productive sprints over the last quarter. So, what we decided to do is instead invite AI director Francesco Roccucci to the show. Fran, how you doing? Hi guys. You good? All good. Uh Fran in our Frankfurt studio and basically we get we're going to give him control of a computer and let him play some internal developer reviews videos and basically give us sort of director's commentary. Uh not sort of director's commentary, he is a director. That's absolutely director's commentary. Now this is to mimic the type of review that we actually do internally. So on this week's show you were going to see a literal example of the exact same kind

  4. 00:02:30

    of reviews that we do internally every single week. Uh but instead of presenting to the various directors of the persistent universe, he is going to present to you, the Star Citizen community. So with that Fran, let's see if your sit the computer is working. Is the computer working? So we got that done. I try to move my mouse. You can see the mouse around. So I think I just like a small additional information from my side, right? A lot of those as you said, a lot of those videos are internal videos recorded directly by different developers that worked on these features, right? So some of these builds are you know, local builds with files that might not be perfect. So you would see some glitch. Some glitch are you know, bugs that might we might have already fixed feature you know, follow up builds. Yeah. So of course I

  5. 00:03:20

    keep in mind that one and I think it's it's it's cool because you guys can see how we work on stuff, how we review the the things. And then of course you will see some of the bugs that we also usually have while we work on Yeah. features. Stiletto Stiletto 02 says, "Oh my god, this isn't live because videos recorded being shown but shown live." Exactly. Exactly. So where do we start today, Fran? What are you going to show us? Uh I would start with the perception of vehicles. So let's just move it this one. So Quick little side question. Don't click right in the middle. There you go. So, basically first of all, again, this is our I can test map that we would build. What we had until now was a There was a different percept different perception, but usually vehicles could perceive vehicles and NPCs could perceive NPCs.

  6. 00:04:09

    Then, of course, our perception system is based on senses. So, they could add and use different senses. For example, characters have a radar. They could receive radar information. I would just lower a little bit the volume because like it's it's just my headsets, otherwise. And what we tried to combine here was the basically the work related to perceive from audio stimuli related to vehicles, but also visual stimuli stimuli. So, what happens here is like of course we have a definition on for example, how far a character can see for other NPCs. When we are talking about vehicles, the information is slightly different, right? So, a large vehicle can be seen from far away being far away and you know, ground

  7. 00:04:56

    vehicles maybe are smaller. They can be seen at a middle distance. So, what we expanded here is a lot of work that Andrea has been doing. Uh so, basically there is a lot of information about the vehicle propagating its presence to possible observers uh based on the the size of the vehicle, but also what you see here is these little spheres that are around the vehicle are audio stimuli that get generated and those are dependent on for example, the strength of the thruster. So, you know, the strong is the energy that is put into the movement, the far far away somebody's information is perceived. Of course, these are being an internal video, what you need to imagine is that also the the back throw is made in a way for us to test the things. So, you see the sphere that

  8. 00:05:44

    you might think say, "Oh, or it's just too small or it's too big. But this is just purely for testing the system. And some of the lines you see here, for example, is uh visual uh perception. Uh so, you see that they perceive right now the uh the vehicle as well, but it's um basically they subtracted. And they try to attack the target. Basically, now they can NPCs can actually query uh also vehicles as targets. They can select it through our selection system of targets and attack it then also, of course, based on their weapon, they would be more or less effective. In this case, uh you know, it's more like a cinematic moment where they try to attack it with a rifle. It's not that they can really damage the uh the vehicle, but they do react and they try to, you know, perform their best actions.

  9. 00:06:32

    So, the the red lines are they know it's there, but they can't see it. The green lines are they know it's there and they can see it. What are the blue lines? Yeah. Uh so, there are different ones like for also like there's some information related, for example, if they're friendly, uh if they're not, you know, if they're enemies, that different type of information like the last position. Um it's some comes basically some cars comes if the last position comes from visual information or, you know, from uh uh audio information, radar, and stuff like this. But like the other thing that you see here is that there's this um this information at the center that also tells you when was the last update from vision, for example, for the vision uh because we try to be distributed uh to not In this case, there are four guys,

  10. 00:07:19

    so it's not a big deal, but like when we have 2,000 characters in PU, we also try to distribute a bit better uh the the updates, but also still getting it because, for example, with the One thing we changed sometime ago was about when we would get perception update based on the frame rate of the server. Mhm. This one now is more uh with the system component, we could expose how many kind of ticks update we could get between the different updates, but now with this what we call the eye scheduler, where now we can specify better what is the time frame in which we try to get this update and we still try to distribute. Of course, the frame rate is too late, you know, too small, still takes a little bit of time for them to get all updated, but not as much as it was before. So, there is also a priority a different

  11. 00:08:06

    priority based on, you know, the guys that are close to you and the one that are in a fight and something like this. So, So, obviously there's four guys here and, you know, as soon as the vehicle comes by and generates enough sound, that's the big bubble that you're seeing. They're like, "Okay, we're aware of the ship." The ship flies around and then they get visual on it and they see it. The ship comes back around, they lose visual. Three of the guys or or or three of the people go and start moving around the building to find it, but one of them doesn't. What what's the difference in behavior there? Is there some randomized element of this? Is there Um Yes, so there is there are different one different things. Mhm. Why is that one staying? that one specifically I cannot tell you right now, but I suspect that this is about the timing that we use for the TPS

  12. 00:08:56

    queries. So, what is a TPS query? TPS query is a query in the environment and because I don't remember it just to give you some concept, I don't remember if in this video they were running the exact combat behavior or if they were just running a test behavior that Andreas made for this specific video that I can't remember in the detail. Also, I don't remember when he is exactly this video from because this is this is quite a an old one, let's say, compared to the thing. So, I'm It could have been It could have been also just a a bug there for that guy. But, basically in theory is that what we do is that we distribute the query request for what they should do and also not everybody can actually try to move based on different traits. One thing that you see here is like first of all, the one that you were describing, when they are perceiving it, they have a bar on top, right? So, the perception of hostile still goes through the new

  13. 00:09:45

    changes we're doing for Squadron where based on the intensity of the stimulus, basically, you know, the bar goes up and they all they recognize the target when the bar is fully, you know, into the different states. So, they have different reactions, right? They can have like, "Hm, what was that?" Or is that Oh, let me go investigate. Or let's go full in combat when trying to go full in combat, right? And then, of course, it scales down, but it's less important once they are already in combat uh through the back door. So, that guy at the end, he just decided to walk in the problem. I sus- I sus- I suspect, yeah, I suspect that there was some failure in his behavior, this my suspicions. And then he ends up going into the tactics that he's actually trying to move and position himself in a where where he can see it, basically. This is why he's probably not moving, but What's next? It's just my suspicions.

  14. 00:10:32

    So, what's next? Let's go to We can show a bit of the trolley and elevator work. So, these are another things that Daniel has been working on on the tech side. Um what we want is to allow the NPC to basically navigate through the environment exactly as a player would do, right? So, if we have elevators that connect multiple floors and the NPC wants to go from one floor to another, now they understand this connection. So, what we use is a transit manager that is both elevators or actually transit, you know, the the transit carriages. Basically, create uh potential link. That means that even if there is no nav mesh connection, the NPC knows that they can they can basically move from one floor to

  15. 00:11:19

    another. How to navigate to that floor comes from the movement plan. And in this case, you see that he first he understands there's a connection, he goes to goes to the elevator, he leaves the trolley in this case. He pressed the button. Once he pressed the button, the elevator comes. You understand the elevator is coming because then there is new navigation links that it will pop as you see here. Goes in here. Leaves the trolley. Uh, he goes to the console on the side of the elevator that has like a little button. It's not super visible here, but there is like a little uh console there. Then these new links, the green ones, are basically connected to different zones, the elevator to the external zone. Then he can find a path here, understand science to wait and press the new uh button to go to the floor that he wants.

  16. 00:12:07

    And then basically the elevator tells us when we reach the right floor because multiple people could be there. Also the player could be there and pressing some other buttons. So the elevators could stop at different floors. from one mesh to the other. The mesh to the And then they move to the next uh mesh, yes. As you see here, there are two things interesting here. It's the usage of the trolley despite this little uh giggling that you see that, you know, this is one of the bugs that we're working on. Um, but the NPC now can actually use the trolley as the player would. They are really connected to that. They really use the state machine uh you know, correctly to to to push it around. And then they can also inject This is a This is a big change that we have done in the in the past year or so. Basically any dynamic path can get additional information from the environment. When we path through environment, we can actually understand

  17. 00:12:54

    is that oh, is the door closed? Should the door be pushed to you know, a button to to should be pushed for you know, being open? Is the door itself having this panel or is the panel somewhere else? Because we also have other situation for example where, you know, you might turn off the light and NPC understands that, right? And it needs to investigate. It's what we call uh you know, the distraction and and and and uh for the NPCs so they can resolve that. So they can understand that the light they've seen going off can be turned on from you know, a console somewhere in the level. So This is all like a systemic basically. So we we have to we do have to move on. We're a quarter of the way through the show already and we're only on our second video. I do have to ask I do have to ask before we move on though. How do we know how afraid this AI is

  18. 00:13:42

    before getting on the elevator? Like how afraid? Yeah, the elevator killing him. There's got to be Well, it's it's not that afraid this one. It's a very strong soldier. Not impressed with this AI. Could be afraid, you know, it could have a trait that is maybe more cowardly and then Just want to say something as the AI should hesitate just a little bit before they step on board. the funny part is we could actually do it because with traits and those navigation links have actually information about which navigation they are. We can add even different costs. So maybe if somebody is afraid of using the elevator and there is a stair or a ramp, you might prefer the ramp, you know, than using the elevator. So we can actually set up those things. So what's next? Hello. Next, I would go to this other improvement step that Versus has been

  19. 00:14:29

    working on that is the extension on the navigation code to allow overrides. So we have two use case for this one. One is actually environment where a different type of agent size can navigate but with a specific stance. In this case is with crouch stance. So you are in some vents. So a normal player understands that you can navigate through, right? But that regular navigation mesh would not generate. Great. So what we have here is we can create overrides for different agent types and say what are the new sizes that should be used for the voxelization and the generation process. Then we have specific navigation links as you see here, both the the ladder but also this crouch to stand at the end of the the vents that allow the NPC to understand that they need to transition

  20. 00:15:17

    from one state to another and then enter into these different environments. Another use case that we is there are some situation especially for some of the older legacy ships, right? Or legacy environment that is not perfectly on metrics and now we can create some more ad hoc uh definition for this environment and still allow the MPC basically to correctly function without having to, you know, modify basically the the requirements for all the environment, but we can make, you know, ad hoc for different environment. As you see here, it's like there's a perfect transition, you know, or he understands that there's a transition between standing and crouching, you know, and crouching and standing back. And also, as you see here, there's also the extension and navigation links for the ladders as well. So, MPC can now use ladders as a player does and, you know,

  21. 00:16:05

    they can transition in and out. For the folks who are watching on the live stream right now, uh the videos are all pre-recorded because we would lose half the show loading and unloading levels uh if we didn't pre-record the video. So, it's the show is live. We're live. You can see my You can see me right now. Hi. I'm live. What we can do next time is we can pick one of those options and show it live as well. Cuz this is cool like you can also like select the character, you know, middle-click in the level and they can just move around. I mean, as you see here, this is the this is our our editor as well. You know, it's just a bit cropped, but Yeah, we often do we often do in these internal reviews we often do the pre-recorded videos because again, you would just keep every every director in the company, everybody just waiting while you're loading up one level and unloading another level and switching between builds and stuff and it's just a

  22. 00:16:53

    much more efficient use of time. I mean, we need to respect uh you know, our time frame even in the internal project update, right? Otherwise, it would take too long. So, what's next? a couple of um improvements for uh locomotion as well that we did in the past uh months. So, this is one thing that we had um before. So, when we use Orca as collision avoidance and the problem is that we're seeing was that we were adding a bit too many constraints that would result basically into a modification of the speed at which a character should should move through for the locomotion to handle it in a bit strange way, right? So, in this case it was trying to say like, "Oh, I should not hit the the wall, but I should not hit the character, but there's not enough space. Let's go through my slow, eventually I will pass through." And it was not really looking good. So, uh we decided to relax a little bit some of

  23. 00:17:41

    those constraints, and you know, it looks good. It looks much better. It looks much smoother. It will still avoid each other. We also have some additional work here that we've done sometime in the past where uh the capsule that defines the characters, especially if they get stuck for different reasons because maybe all the players will will uh stand still there, they can shrink and enlarge based on, you know, when we when we find uh this weird situation. You know, we try to look make it look better and as as best as we can. And then these are the things that we had in the past that were where a lot of the bots stops uh into idle. So, the characters would just immediately stop and then play the idle that looks not that natural. So, we worked a lot on adding sharp turns, start and stops, especially for characters. So, as you

  24. 00:18:28

    see as they looks much more natural. I didn't have like a proper sharp turn uh video to show this time, but they're really similar. So, we can basically process the path, decide where some of those animation can play at best, and then, you know, relax a little bit the constraint of stopping exactly in that spot, especially when just they just need to stop basically, right? For no um specific reason. Yeah, it's one of those things that I don't think is always completely understood how important animation is to AI. Oh, it's it's all basically it's uh the majority of the the AI part because it just sells what the character is doing, right? And I think as we see right now as well, it's like a lot of the issues that we have writing PO and we are working on for Squadron is really to make sure that this situation doesn't

  25. 00:19:16

    happen because if you don't see anything obviously wrong, then it's like you don't really know why it took that path or not. It might actually absolutely make sense from a human perspective, but if it stops like that, it really doesn't doesn't make sense. And, you know, this this will make it really look good. But also just the sharp turns, for example, that we we are we are working on right now. Yeah, we have it working for all of the stuff. It does makes the flow so much more natural for the moment. I have this other one that is really cool that is what the Entourage has been working on. So, we started with the idea of we wanted to have uh hazards for AI and then the AI, you know, being aware of that. But the way we implemented in in these videos most of the time is called navigation cost volumes. In reality, those are

  26. 00:20:05

    um something we want to rename a little bit. It's probably going to be a layout modifier or topology modifier. And then they also have additional functionality to also influence the path. So, as you see here, there's a completely empty nav mesh across the environment and once you you basically you can define some that basically enforce a specific topology with specific triangulation. uh this allows you to modify and enforce specific triangles at specific locations. On top of those triangles, you can define what is the meaning of this area. For example, it could be a danger, could be something they would prefer to be in. Uh it's something that they might just avoid because, I don't know, based on the behavior. For example, an area is less likely to be traversed. I don't

  27. 00:20:53

    know, I'm just thinking if I'm um I don't know, if I'm in a uh like there's an area where people are doing specific operation and when they are doing it, maybe it's very noisy, you know, and then people would try to avoid it in in that situation. So, those areas can be either statically placed or dynamically created and we will show both today. So, as you see here, there's a configuration that you can select and basically the color that you see here it just shows the different basically each color has a different configuration is a set of different configuration dynamically. You see the ID zero is the regular cost and ID two is more costly. So, then we have some debug tool that can show uh the path that gets generated and as you see we are trying to go from one side to another it usually based on the length of the path it tries to avoid it

  28. 00:21:42

    and when it cannot avoid because it's still cheaper from the algorithm to pass through it tries to cut it as straight as it can basically try to minimize uh the time in which he is in the more costly area. The time it would take, the damage they would take. Absolutely, yes. Or for example, one thing that with with the uh damage we are basically going to uh we are working on right now is like that there are additional things into consideration. For example, it's not just that that one is a fire hazard but we also we consider is like what are my properties? I might be a character that has a special suit, right? That doesn't get damaged with that. There's I don't know a chemical in the area. Normal people not go there but they have a chemical, you know, uh hazard suit and then I can go through basically. So, basically we can Yeah. It's basically what you're doing is, you

  29. 00:22:29

    know, it is after the when the level's been designed by a level designer you can go through and you can mark up the nav mesh and be like, "Okay." And the cost is is like a risk assessment. It's it's a it's a if I go through here, it's going to cost me in life or in time or in discomfort or in resource or oxygen or you know, what whatever the whatever the thing is. It's all it's all a matter of of of when you say cost it's the cost to that AI in Yes. not achieving their goals. Exactly, exactly. The cost that is usually with about finding it that is a combination of the actual distance they need to pass through, but then the distance gets, you know, weighted also based on additional value. And this one, but as I for example, so in this case you can see some more um you know, the background examples where,

  30. 00:23:16

    you know, the AI really can pass through corridors with wall where, you know, simulating at the time to be an hazard, but we have use cases for this one for multiple things. One can be, for example, imagine you want to have um pedestrian that goes on the sidewalk. And you know, uh they don't they try to not be on the road unless they really have to, and they might cross only the crossroads. So, you can actually mark up this environment. We we also want to get it, you know, completely um automatic, you know, so that they can really uh try to do that um extraction of features information the environment, you know, in automatic way. This is with the static one. This is always allows designers to manually place this information and mark it up. For example, there is a bonfire on, you

  31. 00:24:04

    know, on POI whatever, and that will never turn off, right? It's always there. We can just mark it up and say this is a bit more costly, for example. Mhm. But, the interesting part is the second part that this is really like from this print is super new. Uh we actually didn't even show it yet the new update. So, this is like, you know, uh people will see it even earlier than another directors. Um but basically what it is here is like this is the combination of dynamic generation of uh cost modifiers, you know, or topology modifiers, plus the additional cost coming from the game code, you know, that is associated with specific dangers. So, in this case the fire. So, through the UI interface you can see that we can simulate, you know, uh basically turning on fire on things that can ignite. And as soon as something ignites,

  32. 00:24:53

    basically the system notifies us of the area in which the fires affect. We can dynamically generate these cost modifiers, regenerate the nav mesh, and then the cost gets propagated, basically. Hm. So, you see when the fire turns off, the the the area is basically disappears. These are the shapes of the fires that we get notified of, that we use uh for our calculation. And then, at the end, we will show how the characters can navigate through the environment, you know, with fire, with dynamic fire. And this like this I'm just basically don't have to set up anything because players can turn, you know, fire everywhere, or, you know, NPCs could do it as well. Uh something can go wrong, right, and explode, and Right. and it could be more fire. So, the idea here is that with the

  33. 00:25:43

    different archetypes for the AI, you can have an an AI that's incredibly cautious, and they would carefully avoid all the different hazards, you know, you know, keep a low cost uh uh existence. And then for the people the AI that were a little more cavalier, little more, you know, I'm I'm I don't have any anything to worry about, they might even choose to go through some of the fire cuz or or if they're very being very urgent, if they're emergency responders, they might choose to cut through the fire to get to where they're going as soon as possible. Exactly. So, this is an example, right? If, for example, you you tell the AI to actually go inside the environment that is dangerous, they can still go, you know, in this uh you can see it here, like he's still entering the environment because that's his goal, but he will try to avoid until he can,

  34. 00:26:33

    basically. You see, and then and then he goes in. Um Basically, what we want to add as well here now at the next uh the next sprint is um this kind of the same the same tags cost modifiers that we use for navigation links, so we can tag them this intention that you're describing, but also say that it's not just the cost that gets him influenced, but also some cost are so high that basically cause the blockage. So that we because the problem with two making the cost too high is also that we saturate the cost of eventually, right? So then it it has less impact. So for some situation is like I'm really I don't want to go through at all. Like I'm a civilian, I don't have a you know, I don't know anything that can protect me. I really should never go inside the fire. And then we can also make that happen, right? So that the pathfinder can

  35. 00:27:20

    understand that that is really a no-go and he needs to find another path if he can. Or it completely fails and the behavior can handle it. Because it's dynamic. If the player the player sets fires it creates new areas that cost more and the AI will avoid and if the player puts extinguishes the fire, puts the fire out, those the cost of those areas goes back down. For example, imagine like a mission where you need to save somebody, right? From a fire building on fire. And then you have the guy that tries to pass through, but the pathfinder says like you you can't. So he will always know that he's trying to escape or follow you, right? But he can't. And then we we can react say like, "Hey, you need to save me. You need to you know, put off the fire before I can come with you." And then you know, you can turn it off and then you will dynamically find a path and and and follow you basically. Uh this is all stuff that we will be

  36. 00:28:07

    able to do with this thing. And and and to be completely clear, you said you hadn't shown that to Chris yet. Uh Chris has seen the previous one, but I don't think that he didn't see this one yet. Well, we put we published it for Chris probably he saw it yesterday night, but not officially with my presentation. So he saw it just he might have seen the video, but not at all uh It doesn't happen often, but occasionally there's a moment where Chris sees something on ISC or SCL for the first time before he's seen internally and I get an email. This is very this is very next week, Chris. I think this is this is basically a really a really interesting things. One thing that we were done trace experiment we for example is also to say what if uh you know a trolley is left around environment, right? You know we don't want to go so close to trolleys.

  37. 00:28:55

    We can use it with spaceships so that people you know try to avoid we could use these things for um for example to increase the cost of landing area when something is approaching, right? So the NPC understands that oh now something is approaching I can navigate this area but not that close to the landing zone. You know the landing zone has a red cherry cost but then when somebody is landing is even higher for example. They do a lot of of interesting mechanics with this. Cool. Also it's good because it can allow us to modify the the topology and the mesh so it allows us to link making navigation links there enforcing that you know they exist and And and just because I can hear Mike Snowden in in my ear metaphorically anyway. The fire that you're seeing there is you know work in progress stuff for the AI team stuff

  38. 00:29:43

    like that. It's not the final and finished effect. I would think I wouldn't need to say that but I'm sure there's going to be somebody It's better it's better yeah yeah. I mean these are all internal things, right? So and how much time do we have still left? we got we still got 30 minutes. You're Cool. So let's go on the feature team, right? So I split right now into two groups. One is tech where we usually work and again there's much more than you know these are some of the things that we selected. Um and then there's the feature team that is more focused on some of the you know behaviors and features that directly impacting you know combat or different features. And it's about accuracy, right? Um One thing is like this what we call a

  39. 00:30:32

    mercy time. So there is the scientist can basically control how much the the AI basically is forgiving for the player doing something not correct. So, in this case, for example, the player is really standing still in open environment, right? And the AI is is shooting at him. But just to avoid that the he kills him and he doesn't have a chance, like, you know, his life is going down and his health is going down and now next shot is probably going to kill him. So, when you see that this blue the the the backdrop the black in the Is it there is a hit chance value? So, right now, for example, it's at 28%. First of all, our hit chance now the new changes that are not yet in PO, basically it builds up, right? So, when I see a character, I'm initially not very accurate and then I end up being

  40. 00:31:20

    with accuracy designer set. And then I'm kill I know I'm I'm damaging you, your health goes down until a certain moment where I give you a chance still to react and do something. And this is the mercy time, basically. As you see, it says mercy time, hit chance is zero, so the you know, the AI becomes inaccurate in that moment. And then you have a chance to react. If you don't, you will still die. And this is one thing and then we also added basically a better prediction. Uh what we have right now is because we are more accurately using aiming to actually shoot at the character, you know, and then uh use um just the the the missing uh from the accuracy. Now, we can basically more correctly estimate where the player is going to be in the future so that we can

  41. 00:32:08

    try to hit him while he runs. Oh, good. the same accuracy Yeah, it gets applied basically from the regular calculation that we have. So, for example, this distance, you know, impacting you or the time that they are seeing the character, you know, the last time in which, you know, has been hiding uh and all this stuff that we basically the bit the the all contribute to calculate the final accuracy that the character should have. For example, here at this distance is much less accurate than when it goes close. Um and then you see when he's hitting basically and damaging the Who Who recorded this video? Um Alex. Alex. Well, Alex. Just sending Alex a message that says serpentine. Yeah. Yeah. Yeah. Oh, yeah. You need to improve your tactics, Alex. Yeah, this is like, you know, these are very These are an example where, for

  42. 00:32:56

    example, you can immediately see is like these are really things that we do to test it, right? So, like in this case, like let's move. Let's stop, right? Let's see if the accuracy is the same. I get damaged the same amount, you know, then I can move again in that direction. But, he's not really trying to play, you know? It's purely like trying to stress out the system and see how how it goes. Uh let me show you like some work that Wild has done as well that is enabling uh the usage of turret like mounted guns. That's called turret but the video but it's actually mounted guns. Um so, as you see, the character can go in a mounted guns right now. So, NPC can actually use it as a player. Uh they will always try to aim at you. Everything uses the same accuracy that we, you know,

  43. 00:33:42

    exposed to we we just spoke about. You know, there is uh prediction on those weapons, you know, and uh accuracy effect based on, you know, the same values that snipers have. So, they can control the accuracy for the specific weapon, how it, you know, influences uh the the NPCs, the again speed at which I think one thing that we probably will, you know, we will experiment with this also the speed at which the character moves. Not too much for FPS. I think, you know, usually characters move at the slow rate anyway. But, like when we aim at a spaceship, right? That could have more impact and will give you more chance to survive, right? Reaction to grenade. This is a very again I know another internal test where we can show, you know, NPCs uh actually now

  44. 00:34:30

    perceiving uh grenades correctly, try to run away from it based on you know where they land. So, they will react to it and they have a chance of running away or they might still die out of it, of course. A chance that's still low chance still. It's still Yeah, I mean, we can control it, you know, we can control how quick they you know, they run, how fast they react, you know, we get we can control some of these things and designers will have to tweak it so that it's not frustrating for the player if they have a nice shot like in this case, right? You want to have, you know, kind of the power on on the game, otherwise it's not that fun. But some, you know, there is also like a nice thing that is like the NPC pretty much not you know, some might turn a different direction so they might not

  45. 00:35:17

    see the grenade. So, some will see the grenade, it will shout, it will inform the other ones and the other ones will react because, you know, one person saw the grenade. And of course, some of those, just to be clear, are test behaviors as well used for, you know, uh evaluating. It's not their actual combat sometimes or like they go back to a test behavior, for example, just to uh be able to try it again even when once they are in combat. And some of those videos, when you see that they are not reacting always to the player, it's also because we use a lot of seers that are internal controls that they are meant to also, you know, not react to the player, for example, right? They react only to the grenade but not to your vision and stuff stuff like this so we can test it a bit better. Sure. Uh we're going to ask answer a question in chat right now

  46. 00:36:05

    from uh uh Creeks uh what is that? 17 says, "Why have they pinned the server status page when it had no updates?" Because that's where the updates would be and will be when there are updates. Uh where where is it? Oh, it's not for you, Fran. I'm talking to the chat. not for me. Ah, okay, okay, that's fair enough. I thought it was aggressive for me I was like, well, No, no. it's a good thing. Cool and I think that we are doing this is a lot for you know, characters that they will eventually be also useful to hire, right? So these are NPCs that can actually systemically take boxes, crates and load them into your ship, load it into you know, a trolley and then use the trolley to to move it. So as you see here, there's really like

  47. 00:36:53

    some coefficients where we done first. All those things are usable, they actually pick up the boxes, they understand how to pick it up. They slot it into the trolley, so they understand that now there are different actions that they can do just because the the the crate is attached, so there are different metrics that we calculate for where you can uh put the box on. So right now for example, the NPC understands that you need to put it on top of another box that is put on the trolley. This is all our slotting functionality basically. It's like a a usable gets attached to another usable and gets slotted into that base our base on our description. And then they can basically use that uh as you see there's still that bug that I just recently fixed, so you will not see it anymore. Uh eventually at least the time they work on the spot. Uh but like the character now understands that the trolley is full

  48. 00:37:43

    and now he can unload the trolley and place it into some specific locations, you know. So this direction will be really useful for you know, allowing an NPC to load and unload your ship. Oh yeah. Cargo elevators, big time. What's the what what are the green cylinders around the trolley? So there are two things. The high the the the the like the taller one that one is what we call alignment slots. So it's where the NPC needs to be to perform a specific operation on the object that is on that location. And the small one are enter positions. So that is where the actual animation start to arrive to the location on the alignment slot. And when it becomes red is because it's reserved and it's in usage at that moment, basically. I feel like that's too tall to stack

  49. 00:38:30

    those boxes. Yeah, you can do three uh you can stack three boxes one on top of the other, basically. Right now, with animations that we also have that they, you know, look very very nice, right? You can really see that, you know, the weight of the box and how they do it. They also, you know, are very careful with their back. Try to stack it in the proper way so they don't get hurt. I was going to say, are we are we sure that that form is proper? This looks like Yes. It's a it's training uh safety training as well. My lower back hurts just watching this. But it's uh yeah, I think there's a lot of tech in this one, also enabling disabling, for example, uh automatically use slots that are allowed to be done, for example, in this case, when he's pushing the trolley, he automatically disable the ability of somebody else to go and pick up the the box, for example, right? Uh you don't

  50. 00:39:19

    want that somebody takes the box from the trolley that you're just moving around. Um and then, you know, you can have also multiple people loading at the same time and only one, you know, pushing the trolley. So, it's uh yeah, you see pushing the trolley disables the ability to take load boxes into the And these are really some what it is why they're gray, for example. These are gray because they are disabled in that moment. And in this case, he's taking it, right? So, he will disable while he's taking it. They push so somebody cannot remove the trolley while you are taking it already, I find myself thinking about how this works with or will work with volatile cargo. Like, will they be very gingerly moving, you know, doing it at half speed? Mhm. I think there would be also be the support that we need to do for uh you know, the tractor beam of actually

  51. 00:40:06

    there. All right. Because I think there would be a lot of bigger crates that they will not be really able to, you know, to grab. At least at least in the early stages. feasible. Yeah, yeah, exactly. But these are very physical interaction with the world, you know, that, you know, our system allow and it's it's really interesting. From my perspective at least. So this is like good good job of Chris. And then we have let's go through Yeah, so my talking to send Arya these are other things that we call assignments. Think I explained the best sometimes but just for people that are not familiar with it. It's assignments are basically a sort of commands that we can give to MPCs, right? So we can ask them

  52. 00:40:54

    to defend an area, attack an area, attack a target, defend myself, move to a location, you know, load a box into somewhere else or, you know, clean up an area of something that they need to clean. What is good is these commands can either be exposed to for example, the designers in the dimension but they can also be used for example from wingman commands, right? You can hire somebody and then from the UI you can call the exact same logic that a designer would ask the AI for specific operations, right? Um so it's purely like it's all systemic. It's just like our description how the MPCs can perform

  53. 00:41:42

    a specific operation. In this case for example, that's just a couple of example of attack and defend area. So this is an attack area. So what it does, he can move into an area that is supposed to attack and then he will go around and search for these areas for example. The designer can specify the speed so the urgency that MPC needs to use to move into the attack area. You know, it can be far and rushing into what they can say walk slow. Eventually we can also expose like a different range that can be used for different distances. But, you know, you see like in these cases like and it gives you you know a sense that they intend to have you to rush into this area and attack or defend, you know, for you know what it means. And the attack area basically

  54. 00:42:31

    also means that from the this is all embedded into a peaceful section of the behavior and a combat section, right? So, somebody's commands can have a version that happens when no target or no enemy is present. And in this case is, okay, if I need to attack an area and I don't see any enemy, what do I need to do? First of all, I need to try to arrive into that area. If I need to defend it, I should just defend it, stay there in a defensive um position. But then there is also the fact that you can transition into combat. Somebody's assignment can have their own version of the combat, but they can also just influence the regular combat behavior. In this case, an attack area, what it does, especially, is influencing the target selection. So, it will always try to prioritize the targets that are in

  55. 00:43:19

    that area to perform that operation. And designs can also switch dynamically which area uh is going to be used so that the target will change, you know, and the NPC can actually select the new the new targets. And then, once there are no targets in the area, of course, other um targets can also be selected inside that area as well. Cuz they still, you know, they still make a threat. And the defend area as well, for example, this is a bit of the transition I was telling you, like a characters can be told to move, you know, to a defend area, but also it might already be in combat. So, once they're in combat, they can be told, "Oh, you should go into defend area." So, what he will do is that he will basically modulate his combat behavior so that he can move into a nice location to defend in that area

  56. 00:44:09

    but without forgetting what he was doing before, right? And this case was I'm still attacking that enemy and I should still remember that the lesson new enemy that is more important comes up, right? But then you can switch it and then for example this this area is a bit overlapping, right? So it will try and then after to find some nice covering to that area. If they overlap, he could also stay in the same cover and so on and so on, right? So it's like you know this this I hate this person and I'm being told I have to go defend this area but I'mma see if I can do both. I'm still I'm still trying to do both, exactly. Until I know Absolutely, you know? Because again in this case of course in this test case as you see like this is always something you know a nice a nice feature that Chris has been working on and when we

  57. 00:44:56

    test you know we also don't want to risk that he dies. So you know we have this guy even like you know as a civilian completely you know he cannot react that he is possibly was even outside that mesh, you know? So that is but he might just be like a dummy player what we call that is a simulation of a player that doesn't really is not another NPC. It just simulates you know a player that stands there and then you know these are enemies from the faction perspective so we really consider it as a star. We use it a lot that one because you can also you know take it and move it and see if he reacts correctly. Uh what did we show? The healer is the last one something that Chris has been working on. Again this one is also an internal things animations are definitely not final. These are majority of animations are you know just

  58. 00:45:44

    block outs that we use to verify the flow. So you know just be aware of that. There is some mad pen usage I saw that NPCs can actually react. One thing that you see is like you don't expect a guy to go over live this guy but these are test behaviors so they don't respect any distance, right? They are really meant for us to make sure that we can test the flow. So, the character basically is reviving him and then he goes back into combat. Obviously, I would never expect an NPC to go close to a target like that to revive his friend that just died, right? Because he will die immediately after. Uh but you know, all those, you know, might even be, you know, like the player right now is in god mode as well, so he will not die himself. Um this is another case where if you don't have the trait that you you cannot revive him, you can also send a request

  59. 00:46:33

    for a medic. And then the medic, again, in this case is coming really close because we are testing it, but in general the medic might try to revive people that they require, you know, in the right moment if they are respecting the the rules, like being far from the target, for example, being, you know, a bit more hidden positions. But as you see here, for test purpose, the guy comes in. He has a med pen. He goes because he he can revive, the other guy cannot. So, he comes in. I mean, obviously, he would try to shoot me because it's it's forced. As you see here, we are just forcing a little bit in this situation that we are just block out animation for that. The character doesn't have a gun, so he might find a gun back. He takes it and then he will fight with with the new weapons that he found. So,

  60. 00:47:21

    what happens in the healer flow is that who's revived, you know, or you know, base in being down state, you know, you could you could also be that he is just, you know, not properly damaged, but it's just, you know, uh being put into an unconscious state. But, you know, when you when you go down, you lose your weapon. So, the first thing you would do is try to get back into a state where you can, you know, get back another weapon. And this is another reason why you don't expect this to happen right close to target because otherwise you revive somebody, comes back in, is next to the target, he will die again. He doesn't even have a weapon, right? So this will happen, you know, you you might see it happening on the background or a bit far away. Um you know, and you have to make sure that you know, you you put pressure on

  61. 00:48:08

    the eyes so that they don't revive each other as well. Yep. So Uh we've only got a few minutes uh left before we let you go, friend. Uh We'll go ahead and open up to open it up to some questions from chat. If you have a question uh that's AI related for our AI director, you can go ahead and put it in the Twitch chat. Uh preface it with the word question. Uh it helps me pick make it out from the other thing. And again, AI related. Uh I I understand that many folks are struggling to get in. They're struggling with the 40014 error, what it whichever number it is. Unfortunately, that's not an AI related Well, we'll shut it down. Yeah. It's like nor is it a video error. So unfor- So you have the two of us uh this week on the show. We're not the ones who can tell you about that, which is why we all are always linking people to the status.robertsspaceindustries.com website. That's where you're going to

  62. 00:48:54

    find those sorts of informations and stuff. Um the biggest question before I even have to look at the the the thing, friend, is you've shown us a lot of examples of AI behaviors um that are that are that are growing, that are becoming more complex, uh some some some some uh advanced tactics and stuff. But we don't often see those behaviors in the live game. is that uh I want you to talk about why why why why why why why why that is. Is that just strictly bugs or is that uh server performance stuff? It's not not It's a combination of things. First of all, I think we have a lot of streams right now, all right? Not on a lot, but we have few streams. And whenever we stabilize something, right? Not all the new changes go in immediately into that stream. So for example, in 3.18, you

  63. 00:49:42

    have some of this stuff and this where for example, people see a very uh high accuracy because not all the accuracy work is yet in there. For example, we don't have the mercy time, we don't have yet in treating the build up of accuracy over time. Um some of the balancing, you know, needs to One thing that I'm always saying is that it's very hard to balance the AI for the server that goes at 30 frames per second or on really low frame rate. So, sometimes some of those values trying to compensate for some of the low frame rate, but then you don't work very well for 30 frame per second or 25 frame per second. That is where people see the accuracy is also very high there. To, you know, try to help in some situations, but of course the long run, that's not what we want. Um some of these behaviors as well will come with integrations because we have

  64. 00:50:31

    automatic integration from, you know, the streams where we work on into what we call game dev and then from game dev goes into the live stream. Whenever we can, we try, of course, to integrate as quickly as possible, but some of those behaviors might have dependency on other departments' work as well. For example, I don't know, changes on the actors' team machine or how would the, you know, the specific state works or on animations that are yet, as you as I've shown you, they might be white box, right? And those are not yet ready to be on the live release. So, we cannot enable all those behaviors. I think there's been uh some videos that I've seen from PU, for example, of the reacting to dead bodies that were using in PU some of the white box animation that were not playing correctly. This is one case where we usually disable these

  65. 00:51:18

    behaviors and, you know, if they if they especially if they're wrongly enabled from our inclusion and so on and so on. But the idea is that, you know, we want to enable them only once uh all the directors involved in the feature are happy with, right? Because we don't want to, you know, show necessary. I think this is also a nice preview, but you know, everybody involved into this one wants to have um his work shown as best as possible. And then, of course, there are also sometimes bugs that we need to fix. Um some of the things that I want to see is a bit of the reaction and we can speed up a bit of the reaction time. Also on low frame rate servers so that we can get a bit better experience from, you know, our players. Because, you know, we see it like this large difference in experience from, you know, people that play a highly

  66. 00:52:05

    frame rate server and a low frame rate You see a dramatic You see a dramatic difference in the capabilities of the AI, especially like during Siege of Orison when you jump into a fresh server. You jump into a fresh server in Siege of Orison and it's devastating. So bad that you can't We really want to have like a more balanced experience, right? It's not that we don't want, but it's, you know, it's a little bit about priority. Sometimes some of those features needs to happen first in regular development because you unblock other people too. Basically, rather than their missions, rather than their levels, right? And it's not that the other part is not important to make sure that, you know, also the live experience is important, but you sometimes you need to have an harsh decision. You say, "What do you want to unblock? This guy's? Do you want to block certain guys?" And you need to pick some with the resources you have.

  67. 00:52:52

    You need to decide how to allocate those resources, right? For the greater good. But, we are working hard to make it sure that everybody can experience those behaviors because this what, you know, we want you guys to to play with and give us feedback about. From Amadeus in the chat, how do you assure that AI will not break when their routine or behavior is interrupted by the players? Players would never mess with AI. They would never kidnap mission givers. They would never load them on the ship and take them to the other side of the star system. That doesn't happen. So, we have different ways of doing that, of course. So, let's say you have a routine behavior of, you know, a journey turn. So, a lot of our behaviors, of course, make sure that you know, you need to have specific things to perform the operation. So, you can check what you have. Let's say

  68. 00:53:40

    combat fire starts, right? And then the janitor loses you know, needs to react. So, he drops out his his mop, his broomstick, you know, or you know, his his bucket, whatever. Then we always need to make sure that the same way as if the janitor starts from scratch, you pick up, you know, he needs to be able to pick up those things or he cannot perform specific operation, Uh so, of course, if the player steals all the broomsticks from the environment, well, yeah, he he won't be able to to get that, but we can always also allow some specific um other AI coming from spawn closet and bringing back those things or you know, having specific usable that can steal provide uh the NPCs with the uh required objects that they need to have or to perform specific behaviors that they can

  69. 00:54:28

    restock, you know, specific objects that they require before they can do the other behaviors. And then the other part is of course being assured they their state uh for us there are different parts. It's not just the player uh in fancy the behavior, but eventually could be for example, uh an NPC transitioning from one server to another because maybe it's it's not necessarily now, but maybe it's just performing his duty on your ship. And in the case your ship can change, you know, server. And you know, we also need to make sure that that one that consistency, you know, it's propagated for for his behavior. So, a lot is building those behavior in the right way and allowing the transition between the different states, you know, from what you need what you can perform, basically. Um from fish 19, uh they ask, could AI commit crimes and

  70. 00:55:18

    get a crime stat? They could and they can also give crime stats. This is one thing that we want to do as well, right? So, if you bother, you know, uh too much uh you know, civilians, then they could call the police and that one might trigger uh you know, a crime stats for you or you know, so maybe the guards or policemen can actually, you know, have specific We have that one already with with spaceships control. Like I think we have the the checks that sometimes some spaceship can do on the cargo that you carry around and they can give you crime stats. But then you can have We have for example in um you know, in the plan to have that thief behavior. So maybe, you know, you can actually make sure that it gets triggered, you know, it's the crime. And then police reacts to them performing a

  71. 00:56:07

    crime. Uh there's a couple different versions of this question that came in I'll read the one from Kayon, by the way. That's her name. What does an AI do if it runs out of ammunition? So we have different things. When you run out of ammunition, you first try to switch to your sidearm, right? Because you might have a sidearm or secondary arm weapon that you can use. And then if you can't do anything, basically they try to survive, right? So they can try to run, stay in cover, and continuously try to search if they find a location where they can loot ammos. So this is always going through the the slotting information is not a function that we have. So weapons can be found on the ground and you can pick them up. So now we have this functionality where you can pick up objects that are on the ground as you've seen in the healer.

  72. 00:56:55

    Um the animation was block out of course, so it was not like, you know, correctly positioned. But basically they can go next to a usable and pick up something that is not perfectly aligned. They can take it from different location. Maybe there's a weapon rack, they can go to the weapon rack and grab a weapon. And then they can loot bodies. So they can grab weapons or ammos from bodies or from, you know, magazines that are might be contained into a crate or on the ground. So basically they they have like a flow where they find the search for something that is, you know, in a good position is not too close to targets and stuff like this, and then they can grab it and use it and reload and and and, you know, use the new weapon, basically. I switch to the new weapon. I hope that answers the question. Yeah. uh in th- those who've been reading the

  73. 00:57:44

    monthly report, I lost you said this, I'm sorry. Uh those who've been reading the monthly report have seen mention of Apollo uh as a as a new uh term that's got that you know they they they they used to hearing about subsumption, but now they're hearing about Apollo. Can you tell us real quick what Apollo is? Yeah, so basically we have two it's always subsumption, but basically we have two different tools. One that is internal tool, uh basically exactly embedded. Maybe we can show it in one in one session. Uh but this is the internal tool uh in our editor. So, what it means is we want to be able to reference things directly in the levels. Now, with external tool we couldn't do it, so we always had like a bit of additional information that were the platforms that were supposed to expose information to the external tool. This one is basically meant to streamline a little bit the the usage of

  74. 00:58:32

    subsumption uh creation data, basically. So, you can create uh activities and uh missions in the internal tool. You can create platforms, and the idea is that all the internal data gets automatically propagated to the tool without us having to necessarily expose it to the external tool, and then, you know, use an external tool to do these preparations. Apollo also includes some more some other features that the external tool didn't have, for example, the editing of the master graph that Fadi has been working on with Michael. So, Michael and Fadi are our uh you know, programmers that are focused on a lot on tools and subsystems. uh you will also have like, for example, we have a different view for missions where in external tool you have one graph for each logic, and now we have kind of a large graph for

  75. 00:59:22

    the missions where you can see the different blocks. You can collapse them, you know, and then automatically understands what you're linking to. So, you can still create different files that people work on at the same time, but also is a little bit more streamlined. You have the full picture of your mission in there. Mhm. But basically, yeah, it's our internal subsumption tool. It's what basically is meant to grow into, you know, giving us more power for editing missions, for example. Like one thing that we want to do in the future is like all see that can include automatic emissions, so we can actually reference data directly from the level. Uh so, we'll do it two quick two questions and then we'll let you go. From Sharksbite says, "Will an NPC ever be able to take my med gun off me and revive me?"

  76. 01:00:11

    So, yes. So, if you have friends NPC that are meant to support you, like what we call buddy eyes, that's one of the things we're working on. And it's exactly the fact that if he knows that you are his friend and you are dead, then he might either use his med pen or he might find a med pen in the environment that might actually be attached to you. So, it will loot you, take your med pen, and then, you know, use it on you to revive you. Uh and then last but That's already possible technically. It just is the behavior now that we want to work on. And last, anything new you can tell us about bartender? Yes. Bartender now, as I said, a lot of I can speak for hours and hours about bartenders. So much.

  77. 01:00:58

    That's it. Thank you for taking the time to be here with us this week, friend. It's always Pleasure. It's always nice. I we didn't get to chat a whole lot when I was over in Frankfurt, so I was I've been look we've been look we've been trying to find a time where we can get together and do this. I think we originally planned this episode out like eight or nine weeks ago and we finally, you know, made made made calendars and everything work. Um Uh that's it for this week's episode of Star Citizen Live. Um if you haven't already, be sure to check out Inside Star Citizen yesterday. Uh that's our end-of-the-quarter uh sprint report for Q1 2023. Inside Star Citizen is going on its regularly scheduled hiatus. Uh that'll be offline for about the next 4 weeks. Uh this show is going is taking a week off. Uh next Friday is a holiday. I think it's Good Friday. Yeah. Some There Everybody's shaking

  78. 01:01:46

    their head. I have no idea. Is it Is Is it Friday? Is that what it is? It's Good Friday. It's Good Friday. So, next week is a holiday. So, I don't know. They told me I had a day off. So, I'm going on vacation. I'm I'm going to take off and I'm going to I'm going to I'm going to I'm going to take some time off. Uh if you're in Paris uh tomorrow, there's a Bar Citizen in Paris tomorrow. Uh you can join uh Mark Gibson and Christian Schmidt and uh some uh some other folks whose names are escaping me right now uh and myself at at a Bar Citizen in Paris. Uh the details are on the website. I don't know. It's in my email. I'm just going to go where they tell me. Uh and then there's another Bar Citizen next week in Manchester. I think there's one in Phoenix going on this weekend that Tyler that the Zylo uh Tyler Witkin, director of community, is at. So, you can check that out if you haven't already. Uh

  79. 01:02:33

    yeah, and then we'll be back here in 2 weeks with another Star Citizen Live and then we'll be back with more Inside Star Citizen uh in a month. Be sure you check out uh you keep an eye on the the Star Citizen socials and the robertsspaceindustries.com website for details on 3.18.1, uh 3.19 potentially going to PTU sometime. Um you know, all the bug fixes uh I don't know what else to say uh about you know, the four 4.0.14 and stuff like this. It's It's the right people are on the right job. I am not the right people. So, I you know, those those folks are working on that stuff. They will give you the updates when they have them. Uh they're always They're I'm in this little chat right here. Look, I'll show you the chat.

  80. 01:03:21

    Woo. My chat right there where they're constantly like, "We've got this and then the diffusion router is doing that and then the cash clearing is doing that." And they're tracking these things down and getting them fixed one by one by one until they get to the point where things will hopefully return to where we all want them to be. So, for Star Citizen Live, I'm Jared. That was Fran. Um I'm going on vacation. Can I See if this fits. This will take my glasses off. Hold on. I'm out of here. Enjoy your time. Be safe. Be kind to one another. And uh I'll see you again in 2 weeks, everybody. Take care. Bye, everybody.

Transcript from YouTube’s automatic captions — punctuation and Star Citizen jargon are approximate. The video itself is hosted by CIG on the official channel.

Squadron 42

LiveSQ42 Launch Subathon

$2,100of $3,000

Getting Sub to Manchester for the Squadron 42 launch

Next giveawaySubscriber Store pick
$50to go