Gadgetory


All Cool Mind-blowing Gadgets You Love in One Place

Chris Roberts on DirectX12 & Vulkan in Star Citizen

2015-09-29
hey everyone I'm Steve from gamers access net and this video is a discussion I had recently with chris roberts from cloud Imperium games he is perhaps best known for his work on star citizen and this time we were talking about technology so we talked about it as it pertains to the greater games industry and who star citizen specifically and the technology up for discussion primarily was DirectX 12 and Vulcan the two new API is coming to market that promise to brain developers closer to the metal so to speak when they're developing their games and that should allow more draw calls and greater graphics on lower end hardware so that discussion is in this video we had two parts for this video the second one comes on Friday and that talks about game engine architecture and game engine design going into the future the next generation of gaming so you'll find that on Friday come back for that for this video please check out the patreon link if you like this type of content and want to support us through in more of these endeavors but that's all for my interest so enjoy the interview with Chris link in the description below for the full article if you'd rather read a compressed written version of this so I don't know what what David sent over to you but I was hoping we could revisit some of the tech topics sure so DirectX ya dx12 and Vulcan a bit if that's something you know anything about but the x12 first right so that's kind of you know what our focus is but the refactoring that we're doing at the low end of the engine will work for that because I mean they they have sort of similar approaches and I sort of been more about that kind of you know multi multi core multi-threading you know multi job paradigm which were where you know doing a lot in the engine moving towards so we know we're doing a fair amount of it's not just adding more jobs basically because it's also about refactoring some of the pipeline and how you deal with the data and how you sort of organize your resources right so you can be sort of more paralleling which is kind of how you gather the real power of dx12 a lot of people you can just you could basically take the x11 sort of renderer and make it the x12 pretty quickly you know gonna get the benefit of the x12 or or sort of the Vulcan stuff until you've done some more fundamental refactoring so that's kind of what we're doing is we're we're saying okay we're going to do it right so we'll really get the performance gains and so that's that's one of the things actually that Frankfurt the German office is leading on because we've got quite a few the engineers there that build the engine in the first place and they've actually been involved in the various you know dx9 of the x11 implementations of CryEngine there was something interesting I was talking to another editor about I don't know how how difficult is it to integrate with dx12 as a game developer the same way you dealt with the x11 frame it's pretty easy mm-hm but you're not gonna get the full power so the the issue is that most game engines were not really written with A's you know massively parallel kind of architecture in mind and that's fundamentally what you need to do to really get the best benefit out of the next generation of graphics API s which is you know just that you can be feeding lots of stuff at the same time to the graphics card right and you're not but only by just one thread or whatever so I mean typically you know like the old CryEngine has one thread for the rendering one fret to the main game with one fret for the physics you know and that works fairly well like back in the xbox 360 days and you know there's been slight scaling of it for you know more PC use so like the engines move more to a job approach as opposed to a thread approach so you know drum approaches you just say his is a task BAM and you just kick it off to the job manager of the job manager manages hundreds of thousands of these amongst all the progress train sounds available and that sort of requires sort of thinking of your task differently compartmentalizing it making sure it's not dependent on other things and other data and so there's been some java fication CryEngine over the last few years but we're sort of taking it further because you know we know that with where yo we're building for a PC and we're building for high end PC so now we have quite a few we have more threads available with more power than you would typically do even on a next-generation console but part of that is you know there's a big test is you know the renderer in CryEngine pretty much it was sort of build with the conception of a 1-1 thread kind of thing going on so it's a bunch of stuff that gets put on the render pipeline you know and then it then it gets printed out for the sort of assumes it's all in the same space area etc and so we need to compartmentalize that better and do a better management of the individual resources so it's not sort of one monolithic kind of render pipeline yeah that's kind of what the the the fundamental sort of big work that were embarking up and I think that's something that you know is kind of pretty fundamental to an engine and they're not noise constructed with that in mind I mean even Yui for which is obviously a bit newer than CryEngine hey if you know originally the way instructable structured was very much a lot McCrea into paradigm I have pretty much the same sort of delineation of of threads now I haven't looked at the code recently but that simply was quite a while ago but but I think that fundamentally you know there is some definite work that has to happen on the low-level in all game engines to really push the X well I mean it's you know it's easy to sort of do the demo like that now you saw squaring it to do with the final panics and yeah but that's just pushing raw and you know look at the rig it was on I mean yeah look at the graphics part in there I mean you could probably do the same with the x11 that's just proof force to really see the benefit of the f12 it's going to be more about you do that lower level refactoring and then you'll be able to actually get some pretty interesting for even on some you know cops are quite powerful pcs are quite powerful right so for for star citizen I would imagine the type of stuff you're trying to do would pretty directly benefit from the newer api's then with yes yeah I mean you know like draw calls like everyone will tell you in entrance and graphic stuff drawable huh five everyone has because it just gets bottled man can only push so much through one high and you know that's the thing that you get where say add x12 Vulcan is that if you factor your engine correctly you're not so funnel neck by draw calls and you can run you know you know 10x 100x draw calls through at the same amount of time right so you know that's obviously a big one I mean for us we actually do we do some stuff already we've we've got some tech that we've worked on that kind of also get around the draw call so we've got a we've got some specific character shaders that are using a very different approach to like how you would texture characters which is which is more a sort of material a material sort of lock up I guess would be the best way to say it so you apply a shader we don't actually bake textures onto the characters anymore we we have a we we have our base character and then we sort of doing a 3d program kind of like the areas that would be say material one material to material three material for and then so like if there was only four different materials on that character there would be one draw call because the whole character would be there and then it's an index lookup from material into a much higher resolution PBR material and you can like really have high really Texel density and really scale so you know you can get right up on it with the camera and it's not gonna break down Wow so that's kind of you know for us that's sort of like some of the tech that we've been doing for characters and smaller props to allow us to have the fidelity that you can get super up-close but also sort of you know how in the world that houses many assets in the scope that we we have and and you know in this tech also has various blending and dirt and material levels and stuff like that it's kind of the next generation approach to probably character shading and stuff I mean you're sort of seen parts of it being done and say the order 1886 and also I think the e4 filtrated that I use some of these techniques to to make the infiltrator and everything look quite as good but no one's taking it quite as far as we're doing on the character stuff because we take it all the way through so I mean it still you know we're still working on it and doing some R&D but we sort of we we know we've we've actively been looking at stuff that also kind of defeat the draw call issue in other methods rather than just relying on a pirate ship DX well with dx12 is have you already sort of prioritized support do you know are you already trying to build for it or is this something out in the future process it's part of one of the tasks of the engine group right now so it's actually something that we've it's commenced on and we'll be working I'm just saying that it's we're doing it I guess the right way but just slapping you know changing a couple of API calls and saying we've got the x12 so it will it won't won't be ready until sort of next year sure but but yeah we're actively working on it I mean it's part of you know now we work pretty closely with a and B and it's part of one other things that is a big deal for them and would be a big deal friend video - really but you know we really want to try to utilize more more of the power sort of today's graphics cards now so it's that it's also on the compute side where we're you know when there's a whole bunch of stuff that we're starting to layout to compute to allow us to do some pretty cool stuff like box holes and stuff like that so we've got a whole bunch of other cool stuff I mean there's a lot of stuff the other thing is that we're focusing a lot of our efforts and work so things that like things for like things are fluid Sims that we could use for gas clouds more than you know the background sort of compute stuff to allow us to sort of voxel ization of asteroids you know and then there's also a whole bunch of sort of GPU tessellation stuff that we've actually planning for our sort of planet mature we've kind of looking on sedated stuff cut out there for a second that you were planning for your country so you know we may be able to deliver some of the stuff it all you have an adult you work on like the procedural planet level so you know so we'll see what happens to that promise so we may actually you know do something that I felt with the maybe stage two with stage one or the persistent universe which would be pretty awesome yeah yeah that would be cool is a is Vulcan of interest here at all is that because you know from my standpoint we we we would like to be the x12 as well as you know OpenGL next or whatever you want to call it often yeah because I mean we want to support units so I mean we have our servers run units for a start so we actually this works and unix as well as just you know straight windows but the problem we have is that you don't have a you know there is a graphic driver yet there's an OpenGL implementation that was just recently released with CryEngine but it's probably it's pretty early it's pretty slow and then the other problems we've done it's quite a lot of customization already to the pipeline so the render pipeline so a lot of the stuff like it's it's not simply it's not a plug-and-play basically right and so you know for us we sort of have this debate about you know you know supporting the always like what do we you know if we didn't have the if we only had the X well when we go back and support the x11 mapping so I think probably our tendency would be the more focus on the next level of OpenGL but that would be after the X well right and then I of course dx11 is still fully supported in star citizen you're not just abandoning it at the export so basically you need the X 11 or 12 we're not no abandon it so we're gonna make sure performs pretty well on the X 11 and with the X 12 is steps it up and some of the refactoring is going to help no matter what even for the X 11 because just being better about organizing your resources and data and java fiying it even though you may still be bottlenecks on the draw call issue and there's a plenty of other stuff that can can be paralyzed on the render and so so that will benefit the X 11 as well well in terms of the the star citizen stuff more specifically outside of all the technical things going on is there anything you want to you know address for fans or bring up or say we have a couple of weeks when I share some stuff that hopefully people will like I think they will we're going to show some you know on the tech stuff that you know is hard to do with smart 42 and you know the multi crew that we've demoed back in games con is moving along quite nicely so that's something we're pretty confident of being able to share which people use over probably towards the end of October but it's it's it's looking good and I think people will actually have a lot of fun because it's not it's a big level and it's not really it's not an empty level there's lots of things to do so it's like a bit of a playground right I'm kind of looking forward to people getting out there you know getting in there you know ships whether they're a multi cruise ship or a single seater ship and you know flying around and you know just kind of getting into trouble with each other against each other you know counting AI it's it's a it's you know the very very very beginning stages are kind of like what the actual sort of distant universe in space will feel like right so it's not you know it's not a sort of limited arena combat map it's not just gonna be about small single sea fires dog fighting so I'm actually I'm pretty I'm pretty interested to see you know the community getting to that and the kind of cool stuff that I'm sure are seeing videos you're saying I'm looking forward to getting the multi-crew of people's hands because really it's going to have all the core elements they'll have FPS it will have sort of kind of the social PE elements obviously it will have the dogfighting flying around which is arena commander and it's sort of like the basic skeleton that focuses in Universal behind although it's missing lots of features and functionality you know we'll be adding them as are as you know every month as we go along it really will be the first time that people will get more of this sort of scope or scale and the possibility of star citizen detail the whole idea of being on foot walking around space station getting into ship powering it up flying off you know coming across the derelict getting EBA encruster back to investigate the derelict have been back in your ship flying to an abandoned Space Station landing I am going and exploring and finding some items or whatever and then getting into gunfight with other players all that sort of stuff is going to be possible and available on there the multi crew release which is with you know our PU alpha right now it's 1.3 so I wear I'm pretty excited to sort of see how yeah people react and what kind of things they all do with the videos help they'll record because yeah it's it's it's essentially going to show the framework of wealth will be so cool about stuff because it's that sort of fidelity and being able to sort of transition between those states is something you don't get on any other game so you know you have space games where you can travel you know - you know loads of different star systems and trade between you and everything but you don't have that sense of like visceral like being inside a ship or being inside environment or being running around a detailed city or whatever and then you know getting a ship and fly somewhere else and visit some other place so I think yeah just the early stage of that will hopefully get people excited and reminding them why why they that star citizen and even though it's taking longer than everyone would like it to take that it's worth
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.