Gadgetory


All Cool Mind-blowing Gadgets You Love in One Place

Sean Tracy on 64-bit Engine Tech & Procedural Edge Blending

2016-09-30
this is part 1 of our two-part interview with technical director Sean Tracy from cloud Imperium games even if you're not interested in star citizen right now the interviews should be pretty interesting because it contains information about 64-bit coordinates and world space and what is a 64-bit engine we talked about meshes and textures and mapping all this stuff load processing and management before getting to this coverage it is brought to you by an tech and their new mini ITX cube case designed by Razer it's got an aluminum shell acrylic windows on the sides and it should be available shortly so just as an FYI part 2 of this interview will go up on Wednesday and that will include the character technology that's been updated for citizencon and also load management on the CPU threading pins like that so without further ado I will let you get to part 1 of the interview hey everyone we're here at the cloud Imperium games offices near Santa Monica and LA I guess I don't really know where we are I'm joined by Shawn Tracy from CI G and we just talked with Chris Roberts of course so that video will be on the channel now we're gonna be going more technical so the first kind of question would be not in our interview with Chris he mentioned the concept of I used the word CryEngine yeah which kind of response was not really crying anymore yeah right so the working title we had then was star engine so yeah so storage has been kind of bounced around I don't know how how absolutely official it is or anything like that but yeah I mean it's a pretty different version than what the CryEngine is we branched quite a while ago so we haven't taken a new CryEngine version for quite some time it's about the 3.7 3.8 area of CryEngine so this was this was early last year it might have been before that where we branched off so we branched off entirely because it was getting really difficult to take the integrations at this point at some point when you're developing your game on where you're gonna get to the point that polling integrations is hard because you've customized it so much for your game so whatever changes you make to underlying engine systems when there's when there's a fundamental change that comes in from your middleware provider it's pretty difficult to consume that all the time and then you start being selective okay well we'll take faith this feature but we won't take this feature and what you don't know right out of the gate is if there's any interdependent writing on it what's gonna happen and then you find that out usually the hard way later on so we tried to stop doing that we do cherry-pick on on occasion from our particular code base that we have up to and again I was pretty sure it was 3.7 or 38 I just can't remember the exact version right but yeah we've made some pretty pretty major changes and it's been ongoing for a while for c IG of course I only came on about two and a half years ago from crime tech after supporting them with their engine draw provisions and as soon as they were done getting the engine on my car and I better get over there No so one of the big fundamental changes and Chris had mentioned it what's the support for a 64-bit positioning right now what's a lot of people I think maybe misunderstand is that it wasn't an entire conversion for the whole engine the engine split up in a very independent and you know not as much as they should be but isolated modules right and they do talk to each other of course but things like physics things like render things like AI what are the purposes of changing the AI to 64-bit well all the positioning that it will use will be drastic for a bit but the the AI module itself doesn't really care you know so there was a lot of changes to support this large world coordinates and it's actually pretty crazy I haven't written up on my wall the actual maximum it's 18 zeros that we can support in terms of in terms of space which is crazy because especially for if that's a floating-point limit or something yeah that's exactly yeah and at that point like I mean you you just can't have any more time within the memory so it's pretty weird for people that have you know come over from Crytek that have worked on just CryEngine normally because and Chris had mentioned this you're working on like a 4 - I mean maximum 8 kilometres of level and already at that scale I felt like that was pretty big but when it's it's such a you know for lack of a better word it messes with your mind in the large world coordinates because you'll be sitting there working on something and then your start to start to zoom out you're like yeah and the job is going it really messes with your sense of scale though because it can be pretty confusing again if you're looking at a planet like I mean you're looking at thousands of kilometres of area right so it can get very easy to underestimate how large the undertaking of just populating something whatever area - not just exactly right so that can that can really mess with your mind but that's one of the bigger bigger changes we made of course with with the implementation of planets but more just with the positioning of it right so now I think in the the first system that we're gonna do and just right now and this is maybe quantum travel speeds will change or so but it takes about 45 minutes at our at our jump or quantum jump speed to cross an entire system so that's just one system and if you want to think of the systems as levels I guess in them in themselves that's kind of how you would think about it they're ready basically no loading for you know 45 minutes of quantum travel which is the actual realistic value of you know 0.2 C which is the 0.2 times the speed of light so it's crazy how large that area is educated can really mess your mind when you're working on it yeah awesome that's oh that he's gonna so the 64-bit conversion I can I guess the the clarity to be made is that it's not the entire engine that's right will be the entire right right so yeah that was the big piece of clarity I think I and a lot of people have this understanding they just III think it's just easier done so yeah they converted the engine sixty right well okay the you know there was stuff within the engine that were already was 64-bit what we really needed was physics and positioning to be right and that's what got changed so and to put that into perspective for folks the world space coordinates is one of the big impacts from that you've got more space you can work with is there anything else specifically that you benefit from by making the conversion to 64-bit yeah not that I can think of right out of the gate no it's more just supporting the actual server itself more than anything it's not better performance or anything if anything it's a bit worse but I mean we're talking marginal different rest like I mean yeah if anything it said it's actually tiny bit slower but with newer CPUs actually we did we did make a change to how that the positioning works so actually it ends up being faster but so normally if you're just gonna switch over to seach for bit positioning you would be a little bit slower in your math so the other the only benefits we get is just just the sheer amount of space right and support for the players and they have to have that amount of space for a game that's young in space right exams for procedural generation in tech for the planets so procedural generation written 2.0 mmm it's kind of a big topic yeah right there's there's a lot we can talk about here technically we were talking with Chris as I said there's another video on that so there's biomes there's different I guess layers you got called for the biomes so oh and sort of interrupt you one of the things that we had done and I the difference between the v1 and the beaten planets and because I was sitting into the interview with Chris it wasn't super clear what the difference really was so on the v1 planet it was our very first implementation what you saw on our demos is actually just a single terrain layer like it's one material right um yes okay we've got different textures that are that are that are blending at different distances and so but all the planets that we had shown literally only had a single material across the entire planet which is pretty fake I mean that's that's another oh and that's actually in a lot of cases where you see procedural generation tech it never goes beyond that um they're happy with just this one sort of rocky material or whatever it happens to be across the entire planet so what this does is it brings us way more in line with how we were making crisis levels or levels down at Crytek with terrain because we always had access or designers always ever artists always had access to up to 16 layers for different terrain textures so what we want to do with it is kind of give them back that same ability just on a ridiculous scale because again you would you know and I thought it was a lot of time to tell paint eight kilometers of space and just paint you know again like thousands of thousands right crazy but yeah we want to give them that amount of layers because that's the only way that you're gonna get the quality that you want out of a first-person shooter or anything like that you're never gonna get that with just a single to sort of terrain layer so another big improvement on the v2 planets is the biomes of course so on the v1 v1 planets they had no bottoms there was no idea whatsoever it's a single terrain layer it's got the height map great but on V - we've got biomes so the biomes themselves have layers within them for object placement for weather like Chris note noted as well as the vegetation and other objects like grass actually adding foliage now exactly and then and and this this was one of the good reasons about coming from CryEngine anyways we've reused and try to be used as much as possible a lot of the really powerful tools that CryEngine Artic had for these things just at the bigger scale right so again in the thinking of the terrain layers well terrain layers were the same way and crying - before that let's just apply that to planet and you've got the same sort of ability just work on a larger scale same thing with the vegetation I had noticed in that the conversation with Chris of those more advanced rule sets for vegetation so in crisis to give you kind of some some history we really only had like 16 different palm trees and like it did pretty well for entire force and people were like very low that vegetation to me well what was really good about it was the system that we use to place these so we had variable scale we would set rule sets on like a little layer or a group for these vegetation objects so again we'll take this really powerful tool and apply it to the procedural stuff so you'll do things like density okay how how close can other you know palm trees be to this are they randomly rotated because that's that's a really easy win for a lot of things so you might have like this tree that's sort of rotated like this right and if that's placed the same rotation everywhere you're like say NASA right but as soon as you randomly rotate it a lot of people will be like wow this is actually the Statue then it's all actually the same asset though right then you got randomized scale that'll happen between them the density random scale and whether it aligns to height maps so like if the tree ends up on the side of a hill does it go like this or does it go like though the grass it's about to do that but if it's a tree it's gotta go yeah so there's a lot of things we learned in in the crisis projects and just working on CryEngine generally that I think we're applying to that tool set there so that it's just as powerful because a mentality at Crytek was always used the tools to get you 90% of the way there and then let the artists come in and do that last 10 percent right so that's the exact same I deal with these planets we've got to have powerful tools because again you've got you know have a thousand planets or whatever it's going to end up being how to make all of those you know it in at to a fidelity that you know is we're all proud of right but it doesn't take you know not take 10 years or 11 years to do it so so again taking a lot of the tools from from CryEngine is is really one of the best things so a lot of people say oh yeah well crazy idea to go with crime well not really because there was a lot of stuff in the engine that is very very powerful because basically your own engine now anyway like exactly so exactly but it would be a shame to you know just take all the old modules delete you know there's no reason to do that we know we want to try to save our time and it build off of of good tool sets that were already there right so with the procedural generation stuff like we said multiple layers we're talking about with Chris about how you might have a forest layer your biome rather nexu some other neighboring biomes swamps something like that yeah what what sort of parameters are in when the system is looking at how to blend these multiple biomes supply yes the edge blending and that's actually something we're talking a lot about right now even just last week we had a pretty large Eno that we were going back and forth on some things so so whatever I answer right now guarantee this is gonna take so I mean the the thinking general use right now just like Chris said there's a distribution map right so you can either use that to inform all your placement but then you don't really get perfected plans what you can do is on those edges of the of the clip Maps because you kind of learn not to Club pass the distribution map you know where that ends so you can actually do a certain distance that you're kind of calling a blend distance or whatever so this is where one is blending into the other the problem is is if you have a lot of biomes the rules to blend those two are probably gonna end up being pretty different for terrain layer blending it's pretty straightforward we did that in the crisis games that's a sort of a high-pass technique of you know kind of we have a detailed map that's grayscale and then we have a low detail that's more color and it's just really easy to blend to greyscale details together on top of you know just a base color so terrain layer is probably going to be easy it see it's the vegetation and and like the actual assets themselves because again if you're blending from desert to jungle yeah this kind of easy you know just a little bit of grass at the edges and then you spread in trees but when you start doing like like a mountain sort of forest versus jungle of versus city like what do you do so a lot of rules again is based on that based on that distribution map we're gonna have a distance and then that distance is gonna be variable based on whatever biome is blender do it so right now we're trying to make it so that the rules are robust enough that we get the nice blends out of it but not so complex that nobody will understand what's going on right right and that's again in the end we have to give the artists and and the environment designers some ability to go in and manually fix whatever that is but we've got to be able to get it 90% of the way there you know with rules and really I don't fix it on then so yeah I realized it you can go into super deep detail about that but it's kind of because yeah yeah we're still talking about exactly the right way to do it but what you'll see in the in the citizencon demo for the v2 planets already has a lot of that blending in it just not in terms of large objects right like that 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 what's fun yeah we'll see you all next time
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.