Gadgetory


All Cool Mind-blowing Gadgets You Love in One Place

Sean Tracy on Star Citizen CPU Management, Character Tech, More

2016-10-05
this is part two of our interview with Shawn Tracy the technical director at cloud Imperium games working on a star citizen in this part of the interview we talked about CPU thread management the jobs system game logic physics things like that and we also go into a lot of detail on the new character developments that will be shown at least in part at citizencon on October 9th before getting to this content it is brought to you by an tech and their new at cube mini ITX enclosure which supports open-loop liquid coolant if you wanted it and you can learn more about that in the link below let's get into the content so one of the other things that I was talking with Chris VAD for I think it sounded like 100 percent clear on this it sounded like we would see some new character tech and yeah all things are about that so it's not really it's not a new character - well it is a little bit new butter - involved mostly this is the stuff that we've been working on for years so last year at citizencon we showed something we called the Moro tour we had only just started to receive the head rigs head assets from three latterly baby but a month and then we went ahead and just put 50 characters in so I mean they look two very degrees of art polish right I mean a lot of game you were pretty happy to show work-in-progress stuff but the public can react pretty negatively to it like I mean they're like whoa what is this case that one character is gonna look like you know I don't get it so well what we really want to show is is the progress of that over the years so all of the tech that we had expected is is now online polished working you know we have the entire year to get about 120 scan heads in and we have I mean even just in the demo that we're gonna show we have 53 unique characters so it's unique face unique facial rig right all this so which is a lot of work it's a ton of work if you just do just a contrast it again like Crysis we're talking I mean less than 20 characters the whole game of rise we're talking maybe 30 and like you know probably 15 of those are like barbarian variants and stuff like this where for this because we've got all these actors you know you we've paid for the actor so we're gonna have a really nice scan of their head and then we want them we want them to look awesome within it so and and they do know so all the tech is actually finally online for the face it's animate correctly for it to get triggered with the dialogue and finally there was one really big piece of tech that we're bringing online now and we call it run time rigged logic for the faces what it means is we have varying facial skeleton so everybody's got a bit of a different face now a lot of games what they end up doing is okay we're just gonna unify the skull shape but you're gonna unify the next shape and everybody's the same that doesn't work for actors especially not for really recognizable ones like Gary Oldman or Dre Anderson or Mark Hamill like I mean you're gonna know that that doesn't really look like him right so what we do is we do still have all these unique rigs but what we have is a system within the engine that is actually consuming unified animation data and it applies all the offsets to that animation data so we can drive that rig so what it means is that we can share animation across anybody which is super cool so a smile on Gillian Anderson is actually the same data for a smile on Mark Hamill for a smile on Gary Oldman for a spot so we can share all this all this data across so this is pretty big deal the other thing with it is that we can procedurally drive things on the character and have the rig react as if we were just exporting animation a big example of this is I so what we have is this look I K that we can do it sorry not look like it's more above like a look posing system okay but it's a I'll get into that maybe a little bit this will we'll drive actually where the eyes are looking problem with this is that the eyes are all connected to blend shapes and we call the fleshy blend shapes all around the eyes right so usually if any other game would do this right you'd see the eyes moving around but no bunch shapes that do anything because it just doesn't know that you're moving those eyes around unless it was playing an animation which would then know okay well I'm gonna move those bunch shapes around so with rig logic online we can say move those eyes and actually rig logic knows oh okay I've got to blend this blend shape here I gotta blend just but in shape here I've got to do this wrinkle here I've got a great wrinkle here so what we end up getting is a really awesome performance even from procedurally generated data right this is this stuff that would be reserved for more cinematic sequences or it's every everybody so this is so cool that that so we apply this to every single head and there's kind of there's a there's a workflow reason for that and it is that I kind of don't want to deal with two different pipelines I don't want to do oh well this guy's rig logic and then oh well this guy has a unique skeleton so I'd rather just okay everybody's rig logic perfect yeah right so that means and there's kind of an implementation reason too because what I can do now is say in star marine I want a guide to when he fires he goes like he looks angry right I would if everybody has unique faces I'd have to have okay this guy is in his stance he's got his weapon and he's firing here's here's you know angry face mail a one angry face mail Oh - they would all be different animations for the exact same thing now what I do is I just say one angry face and then that will figure out what face fighting on and it will do it so it's a lot easier so this is kind of our whole mentality on content creation it's it's let's do it intelligently so that we're not stuck here making thousands of things so that it's gonna take us 10 years to make this game there's a hey his neighborhood so how do you deal with system resource consumption things like that like just we were talking about the what you call for the eye is the eye posing good procedure yet poses yet yeah so just that alone if you're communicating eye movement to other meshes and things face is that taxing on resources no because what we do and and it's a very good question because usually if you were to move around verts and mesh and speck that that would be a problem so what we have is the rigged logic skeleton is actually only a hundred and eighty-three inputs so based on those hundred and eighty-three inputs we can drive everything on the face and they give you an idea of the complexity of the face it's not 183 joints it's more like 500 so we're taught welded in something like 220 skin joints and then a bunch of the blend shape of controls so we use 183 joints driving way more complicated rig but that Lodge exists in the engine so we save all that performance is kind of the idea okay yeah so the character tacks a big thin and had Bob yeah right and it's actually the same guy is sort of working on the one on the two systems here he's our animation Rd engineering he's also come over from contact with a bunch of us evil hurts sake so he's worked a lot about he's worked a lot on the vision stabilization now Chris loves to talk about it in terms of the unified stuff and there's good reasons for it and again I'd like to say this has way more to do with workflow than it does anything else again if you don't have two different systems to do with your you're kind of in a better spot so a fire animation and third is the same as first and and it's a there's a system dealing with it rather than me having to go grab the arms asset and then do the same thing on the body and be super confusing to have to go back and forth between the two so there's there's reasons for it the the biological term anyways for the for the eye stabilization is the vestibular ocular reflex we've talked about this so much that we've you know gone through medical papers on it we've read it medical contractor exactly and really the easiest way to ever explain and I think there's going to be there's going to be a special video that Evo does just to where he explains the sort of system where it's maybe you've seen this commercial of a getting being held seeing that his head stable right right as the thing moves around so that's hot that's like the easiest analogy I have for the system but Evo definitely explains a lot more but for me it's more of a workflow thing it just makes it makes it easier I'll share it to you with but there is run-ons there is absolutely about to run ons and especially having come from crisis games where we we did have some sort of separation you've got to wrap your head around that workflow and be ok with it right because you can feel like you're chasing your tail a lot of the time so oh yeah it looks great in the third-person then you get back to first it's like oh no that let's go back in so you've just got to get into a spot where you're not chasing your tail and it's usually perfect so we've got a procedural generation stuff is kind of covered some instant character technology yeah what's another good point for the citizencon stuff coming out I think yeah the procedural generation it's character tech is super interesting what about these one point what about from an authoring standpoint working on missions and things like that sort of time Chris about squadron 42 missions so what's the authoring tool set or pipeline like right and no it's a good question it's actually not even embedded within sandbox which honestly in my opinion is bad idea I hate I hate not putting stuff in sandbox because it's just immediately available to user but it is a hell of a lot easier right because one thing in kit you know just for people's reference and if they're pretty technical sandbox is written in old old MFC it's an old system from Microsoft there's some plugins in it too right tool sets in QT which is a lot easier to write for and it's a little more visually pleasing then MFC is you just got no real control right so a lot of times what happens when somebody comes along to write a tool for the edge and they're fighting more with sandbox and they are with their actual tools so they'll tend to write the tool outside of it and then eventually we'll integrate it in so what we have is a system that we call subsumption it's for AI and it'll be used for missions as well as even I think some economy stuff it's a lot to explain it it's kind of a scripting system okay so you've got nodes within it a eyes have certain activities or behaviors that they perform they can be interrupted out of them they can go into different behaviors we can load them we can cancel them we can trigger off cinematic stuff we can pretty much do everything that the that the flow graph would have done but within a little more systemic of a system rather than a bespoke this entity does this function does this function more of a behavior to the AI so this same idea is going to be applied to the mission system where it's a systemic system where you're setting up a mean if you think about him and again I'm not a designer so I hope I don't know misrepresent their rather their particular system but when they're setting up missions it's more of small portions of it that are that are kind of like little activities within and that'll create the bigger mission it's the same idea to the AI so it's actually all done in the same tool set but yeah it's all it's external to the to the sandbox right now we're right again I hate but it's easier for us to write it right yeah absolutely I'm a production standpoint yeah I totally understand it so interesting so with mission placement how much of the D know off the top of your head how much of this is sort of taking the same semi-automated approach versus all manual placement is there everything is doing it so this is this is a you know a direction from from the pretty much all the tech directors and incoming most of us in a director ship role is that that is that is that that is a rule of thumb for everything we create which is you know can get in 90% of the way there right with systems mm-hmm and then let the artists and everybody polish that that's right I'm Sam right so yes it's exactly the same thing you want to be able to bring as much content online as less a fair as possible and then let designers go in and make it a little more fun do you know right yeah but I think that it was the same again the same mentality at Crytek so I really hope that it lends itself to not only tons of content but but content that doesn't feel generic it doesn't feel copy pasted it feels very living and then and and humor so I guess if you had to pick sort of one aspect of what we're going to see in the citizencon demo from a technical standpoint what do you think is the most important for onlookers to really understand as a big challenge to overcome um I think the implication of v2 planets and what this brings I mean it's such a we've we as gamers and even like I came from the modding side so I'm never I didn't just jump into this as a program or anything I've always been a gamer first so I think we've just gotten used to the fact that we know we're being lied to we know we're in a skybox right you know we know that Sun is just a little sprite up there yeah you know like we know we're being lied to and we're okay with it because it's fun and it looks good or whatever but it's it really to wrap your mind around the sheer volume and scale that that is there in star citizen around you is something different it's in and it feels different when you're in it and experiencing it you know if you could go into you know Witcher and just run forward for more you know it would I don't even know how long it would take you to get around the planet but environment for 24 hours and it actually be different and then eventually come right back and wrap yourself around right it's a different mentality so I think if there's anything to to understand it's the implication of the scale meaning there's so much that you can explore and do alright and and we being empty is kind of a kind of a really I think important thing lastly I would say really important to understand as well it would be the AI implications of what we're going to show for the for the squadron 42 preview I guess well I'm not sure what was called it necessarily but the AI that's going on within there is fairly complex because it's it's similar to you know an Elder Scrolls or something like that where they live their lives they they have their their lives these are crewmates and they're at this desk from nine to six and then they go to the cafeteria right and go this so what people I don't think we'll see immediately and again the demo can only be so long I don't think people will necessarily grasp but that's happening for those characters I'd you know it will feel like it's just the what he walks by you great that's right I walked by you but what you don't know is he's going down to his cruise got an objective exactly he's got stuff to do so so yeah I think those days a good question but it was definitely those two I think would be important to understand what's right it's all of that a more Hardware that was all the AI sort of on one thread of the CPU is that like yeah it's it's it's part of the job system so we've got a really nice multi turning job system we can dedicate CPUs per per module we tend not to we let the job system handle where it to go because what can happen with job systems is that especially if you dedicate cpus to it they can sit there idle at a lot of time so they'll be sitting there waiting for work to do and then they'll loan you get sort of given very small portions of that frames work and and the rest stays on main or whatnot so we try to move that stuff around with the job system itself but yeah it's all threaded I mean we definitely operate better on more CPUs there's no write about that and especially in terms of physics as well but yeah the entire engine has been threaded from I mean since I think I think CryEngine 3 was actually when the job system went in as soon as we had to do console for the grinder we had to thread this things right right yeah I remember speaking with krytac about that a date so they several years ago at the sort of beginning of this project added in support for eight threads which was like that's right yeah it was a big deal yeah yeah yeah I know I I absolutely recall that because we had we had hard-coded basically you know and I can't remember exactly what it was but made time to do one thing render was on the main thread right then we had I think we had a separate sound Fred physics thread and then I don't even know physics like game logic yeah its own game logic was I was right that was it but yeah it's a big deal so now now we scale dynamically to as many courses you've got so the more boards you got the better alright I mean if you get 32 cores I don't think we even have so many dead right would dispatch it scales to a point as always yeah I guess core one probably still hauls a lot of the work cuz yeah absolutely and it's it's even like it'd be super simple if every single function in the in the engine was was jump system friendlier right in front and it's just not the case right I mean there are functions and systems and we still find them every day that that locked the main thread before whatever reason right it might be locking the main thread because it's waiting for another thread to finish for you know whatever data it's got right because these are that that is ultimately problem with multi-threaded program but we again we've got one of the best guys over from Crytek for that whose name is Cristobal Bolton and he did a his I think it was his master thesis was on Iran was on multi-threading right well I think he broke the job system and everything for CryEngine and now he's on with CID so it's perfect right so so I've got I've got one last kind of technical question for you and we'll wrap up but the last thing we're talking with Chris about was the the Sun the idea that oh yeah that is really cool so yeah so from from just like a gaming standpoint it's not something you really think of where yeah when the Sun moves when you have a day/night cycle and Skyrim or something yeah most like just in a it's just in a skybox like it's just a position of a light right and really all this Sun is is a light that doesn't have a convergence point right where there's it's a it's a parallel thing so it just keeps going on forever the tricky part about decoupling that is less about producing light from some point but more about how the shadows react because in crimes and this is why it was kind of complicated for us to pull the Sun out of the sky so to speak right it was that we have the assistant called cascaded shadow maps and I'm not it's it's it's been around for a while and a lot of people do use the same sort of system where you have kind of a really high res one then it gets a little lower res around it and you can see it is a bunch of concentric squares um that would just be here's your first cascade second cascade third cascade and each one gets a little less granular is the idea and the biases change in these sort of things so we had to implement basically cascaded shadow Maps on point lights and then we could pull them out what is kind of cool is that we actually have support for both systems right now so as soon as I drag this it we call it I think it's literally called Sun light and then I drag the sunlight out it actually turns off the one in the sky okay so I can just delete that and it turns on back on so we still have all that CryEngine time of day stuff but we have also got the ability to still put our put our lights in so it's kind of gold we've got both support the other big bonus out of decoupling it is that we can have multiple zones right yeah you had either the binary system or something exactly binary systems or even large events within there that you might want to produce light like an explosion or something well something gigantic right but big enough that you might see light from it but I can think binary stars is kind of more obvious usage of it sure so that's an interesting thing from being able to decouple it but it was a big deal because again you just gotta get out of the mindset that you've got a skybox around you you've got to expand economic you know you get sucked down the road - because it's like any other rabbit hole yes like if you have some massive scale ship exploding or whatever that like that would be how far do you see it right yeah exactly and what kind of scales are we talking about what lod is that thing at do you produce light from it does it cash instead you know there's a lot of question marks that you just got it and honestly a lot of the times is the you know there's no one person to go ask has very few things on this game have people done before all right and I think that's why a lot of people really like working here though and it's challenging but it's also why a lot of times we did delays because it just hasn't been done like this before and I kind of explain my day to people as I screw up all day in Toledo yeah do you know what I mean like it might break no broken broken broken broke Oh works done you know what I mean so that's it's an iterative process so I think that that's what comes of it but yeah in the end decoupling the Sun was a real big one I like that but it's super weird though because you can just drop one and put it like right next to a person right like the way the shadows react and stuff like that is like daughter all what you would deserve so it's like it's it's very strange at first but but ya know it's an interesting thing and the graphics programmers are amazing over and over and the uk-based we're yeah yeah cool so as always more information we'll have an article below with kind of key talking points things like that and I guess we might be seeing you guys at citizencon otherwise we'll have coverage of it online separately so awesome tune in for that thank you for joining me Sean you're very welcome yeah we'll see you all next time you
We are a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for us to earn fees by linking to Amazon.com and affiliated sites.