Definitely on hard surface man-made stuff. Hard surface is the term typically coined for things that are sci-fi or mechanical. As opposed to, you wouldn't describe a Tudor-style medieval building as hard surface, even though the practices and the approach to developing that content is the same.
I actually didn't know that specificity to hard surface. I would have called it hard surface modeling if you were modeling a medieval castle. Just technology and sci-fi stuff, is that something just internally here at CIG, or is that something you found that's kind of throughout the industry?
Throughout the industry. I'm sure there's people out there who are sitting there saying I'm wrong. You could be wrong about anything, but at least that's what I've come to know growing up and learning in this industry. When someone says hard surface, they're talking about either subdivision modeling or sci-fi.
My influences are Star Wars, obviously. I think you've got to go past Star Wars if you're a sci-fi artist. Ralph McQuarrie is an excellent concept artist. Blade Runner is another great one. Lots of old, even though it's not quite relevant to sci-fi, Jim Henson movies like The Dark Crystal, anything with strong world building is definitely an influence of mine. Not just art, that's why I was drawn to Star Citizen in general. Because it's a persistent universe. It's a living, breathing world. And to me, it captures the stuff that Jim Henson was doing with The Dark Crystal and even the Labyrinth movies and stuff.
TL;DRProcedural generation is only a tool supporting artists, so the team mixes hand-authored work with procedural filling-in instead of leaving it to chance and regenerating rooms until one works.
We were talking a little bit about this before we went live, about how we use procedural generation as a tool to support our artists. The procedural generation is not the end goal of building these things. It's really about assisting folks like you in creating the sheer number of space stations and environments that we're going to need for a game of this scale.
Yeah, that's exactly right. As I was saying, if we allow it all to chance, then chances are we'll be sitting there regenerating these rooms for hours until we've come across something that's not broken and works. And then there's a chance that it's 90% perfect and we're like, right, we still have to throw it away because we need to procedurally generate that last 10%. This kind of allows us to hand author a lot of the work, but also offload a lot of the more granular work that we would usually do to the procedural system and fill in the gaps that way.
Yeah. So we could be as tight with our specification of what we want to spawn here, or we could go very wide. So you'll see on these orange volumes, the secondary element, we can see a category filter. So we're looking for floor aligned maintenance props with a maximum dimension of four on X, 1.5 on Y and three in the Z axis. And again, with the minimum dimensions. So that's saying that any prop that we find that fits these tags, these floor aligned and maintenance, and then can also fit within these bounds, go ahead and bring it in. And there could be four, five, six different versions of floor aligned maintenance that fit within that spot.
TL;DRBecause areas are half hand-authored and half procedural, the team keeps fine control to fix gaps or exploits QA finds, such as adding safety nets, though they can't guarantee such problems never occur.
Yeah. So that's another reason why we do half hand authored, half procedural. So if there is an instance like that and QA come to us and say, hey, we've got players getting stuck in an area that they aren't meant to, for this area, for instance, say your props were able to spawn and players were able to get up on those props and then jump over the railing and get stuck. Obviously, when death has consequences, we're going to see a lot less of that. But people like to explore in this repercussion-free state of the game. So they're going to do that. So that means that because half of it's hand-authored and we have control, like, all right, we can't guarantee that we're not going to get a prop so they can get up on it and jump over the railings, which means that we might relook this area here and maybe put some safety nets in so players can't fall down there and get stuck. So it's going to happen. And that's why we do half hand authored, half procedural. So we have finite control over fixing that stuff. Obviously we get finite control over how it looks as well. But that's how we're going to ensure that we can reliably fix those issues when they pop up.
TL;DRStations use approximate exterior collision volumes with known connection points, and the procedural interior system fills inside those bounds without clipping, so the two fit together with little extra work.
Yeah, so that's a good question. What we do is we have an approximate collision volume that represents the exterior of a station. So we want to make sure that where there's an interior, it's connected to a nice view room outside. So there's a point on the exterior that we know that the station's going to be stemming from almost, because we know that we want the interiors to have a view room to the outside of the station. So there's points all along the exterior that we can guarantee where it's going to start from. And then we build a collision volume around these different elements. So with the ring, we've got a ring collision element, or if we want a station interior in one of the lateral sections of the station, we've got a collision volume over that. And what that means is that the interior procedural system will just keep going, and it's going to guarantee that it won't clip through those collision volumes. So within those bounds, let's say the station rings, those big new rings, it's going to just fill in inside of that physical ring. So we don't really have to do much work to make the two fit together. Because we know what the station looks like. We know what the components are. So we can do a collision model of that and just say, use the interior space of this.
Yeah. And the station exteriors were developed with this same technique. We're starting to see a lot of variation between station exteriors. It's the same process as what we're using at the moment as well.
TL;DRYes; reusable rooms and a growing prop library are meant to speed up building locations, with each new planet, moon or station made faster, though design and art still have to approve them.
Yeah, that's the idea. With these uni rooms, they're not just for station interiors. It's for anything where it's appropriate to use a room like this, the same style, same kind of feel that we're going for with interiors. We can use these, and especially the prop volumes here. This is our bread and butter, even though it's the smallest element in it, this is the library we're going to keep expanding and expanding. Every time we get something new, we're going to put it in the prop library. And even the landing zone, people can use these elements because it doesn't need to be procedurally brought in. It is a prefab at the end of the day. So we're working on how we can speed up and quickly iterate and build out these locations with little to no human input. Obviously, we want to make sure that design have gone through and it's a logical location to exist. And we want to make sure that it meets our goals artistically.
Yeah, it's one of the most common questions we get, a variation of that one about, if this is taking this long, how do you expect to be able to do X in the future? And it's because all this development is designed to be exponential. The hardest part is building all the tools, building all the procedures, building all the tile sets. And once that stuff's done, every planet makes the next planet faster, every moon makes the next moon faster, every space station makes the next space station just that much faster. And it can sometimes be kind of hard to see, especially if you've been following the project as closely as many of us have. It's like when you put a lobster in water and you're slowly turning the temperature up. The lobster doesn't notice that the temperature is getting hotter. We turn the speed and frequency up and we get better and more efficient at making these with each asset.
Yeah, that's right. It's making recyclable content as well. Having that theory in the back of our mind that we're building a room, it's got to have longevity in it. It's got to be reusable. So that's why we build these rooms in a certain way as well. Because there's no point making it all bespoke so it can only exist in one location, because that's no good for reusability.
TL;DRClean stations are possible if the style calls for it, but the current utilitarian Stanton stations are meant to look lived in, and cleaner looks are expected at places like microTech and Crusader.
Yeah. I mean, if the style calls for it, we will. But the style for the stations, at least these ones in the Stanton system, it's utilitarian. These aren't new. They've been here for a very long time. And it is a large location to keep track of. So you're going to see a bit of things run wild within it. It's not going to be kept updated. And it depends as well, within these utilitarian station interiors, we do have higher focused areas where it's more of a communal space where they would focus their attention. So that might be a bit cleaner, with less maintenance props around. You wouldn't expect to see these maintenance props in every single room. This is more of that back traversal alley that none of the people who live here care enough about to do something about it.
Yeah. But definitely while we're still working on utilitarian stations, they're going to be a bit lived in and a bit beaten up. But that doesn't mean that we don't entertain the ideas of what a high tech station might look like, or a station by a different manufacturer. These are Rest & Relax owned stations. So they're going to kind of feel like a public rest stop back on Route 65 or something like that. Just don't go into the toilets.
Captain Cole says, lived in doesn't have to mean dirty. No, it doesn't, but it sure does help. Besides, I think, without giving too much away, as we work towards a location like microTech, you'll probably be seeing a cleaner aesthetic. The two planets we've got so far, Hurston and ArcCorp, are very industrialized, very mechanically inclined, stuff like that. As we move towards other locations like microTech and Crusader, I think you'll see more of probably what you're asking about.
Yeah, and you can just say better population on those planets as well. Little tolerance for wrongdoings and whatnot. So the people who live there are going to be a bit more sophisticated.
TL;DRYes; it is a level holding every prop in the library with debug labels, so people reuse and debug existing props, and it keeps growing as new items are added for everyone to use.
This just helps us so someone's not making vending machines over here and someone else is making vending machines over here. If we want to go in and debug vending machines or make new ones, we know where to come to. So we've got a wide range of things, and this library is always going to be expanding as well. So it might look a bit bare for a really huge station interior, but it's something that we're going to work on all the time on every location. We're going to be populating this with new things. Someone might set dress a part manually, and we might go, great, I actually want to be able to reuse that procedurally. We just put it in this prop library, and then everyone benefits from it across the PU. Anyone who's making a location for the PU will benefit from this library.
Yeah, it's easy to forget that we're still building the Stanton system. Even though the Stanton system has ArcCorp and Hurston and microTech, it is still one region of space, so there's going to be a lot of similarities, a lot of shared aspects between them all.
Yeah, you could. There would be an extent of how deep you want to do that. Every single book procedural might be a bit overkill. But definitely each one of these brushes that I placed could definitely be a volume, so I don't have to manually randomize it. I'm never going to be able to randomize something as well as a computer can. So if I want true random, when you get in the mindset of setting these props down and stuff like that, I'm not placing these books. The people who lived here are placing these books, kind of thing. So you kind of want to detach yourself from, it's me, I'm some omnipotent being placing books in Star Citizen, kind of thing. So I think getting these randomized would definitely be great. And that's something I'll probably do off camera when I go back to work.
TL;DRAbandoned buildings, slum areas and shipwrecks are possible and likely to be looked at in future using existing technology, but whole abandoned cities don't fit ArcCorp's lore.
Yeah, sure. Maybe not abandoned parts of the city. I don't think that makes much sense for ArcCorp. But definitely abandoned buildings and stuff like that work. We have the technology to do that with, say, underground facilities on other planets and moons. It would just be empowering the mission feature teams to be able to create these missions, and then there might be a small amount of content to be created to embed these into ArcCorp properly, but definitely we have the ability to do that and we'll probably look into something in the future about that. Shipwrecks as well, we've got derelicts on moons and other planets. So again, we have the foundations to do it and it'd be interesting to look into doing that for ArcCorp as well.
Yeah, I think whole abandoned cities is probably not within the lore of ArcCorp, as it's a corporate planet and it's kind of hard to imagine. Maybe if it's part of the lore, but I would definitely see abandoned buildings, things like that, like slum areas that could be explored.
TL;DRThey combined small brushes into larger ones to reduce draw calls and used more aggressive LODs, since the busy city hides detail changes at a distance.
Sure. We tried to use larger brushes to build these locations out. In past locations, it could get very granular, like a hallway would be made of a lot of small pieces, and that would work well for these interior locations. But when you're on ArcCorp, the level at which you see these locations can vary from up close to low atmosphere to very far away. So we had more view distances to consider when we're making these locations. So one of the approaches we used was to just combine a lot of these brushes into bigger brushes to reduce the draw calls, which is one of the main killers of frame rate, draw calls. And we could get away with a lot more aggressive LODs, because ArcCorp, it's a planet full of a city, so it looks very busy on its own, so we could get away with a lot more aggressive LODing, because at a distance the details just kind of blur together and you get just this big picture of a city. You're not really focusing on, oh, there's this one tree out in the middle of the open, and I can see on one LOD state it's got leaves and the next it doesn't. But because it's surrounded by a lot of noise, we can go a bit more hard on our LODs as well.
TL;DRAssets get about five LODs each, with large buildings kept at high detail for a long draw range, tiny details like railings simply switched off at distance, and hierarchical LODs that merge buildings something they want to explore.
There will be a lot of LODs in the grand scheme of things. Generally, we have about five LODs per asset. If you calculated all the LODs, five LODs per building, it gets big, but at the same time, with the procedural tech and the planet tech, we just have to load this building once and then it's loaded there and it's loaded there, and we get a lot of reuse out of that one building. But it's definitely a good portion of the time doing these LODs and optimizing it. Obviously, if it's an interior space that you don't really see from far away, we don't have to do five LODs, because even on low spec you probably never see LOD 5 or LOD 4. But definitely the buildings, we went right up to the cusp so we could get the most draw range out of them.
And that goes back to the previous question as well, about how we changed the art style, and it's a bit of both. We just wanted to make it look like this, and a bit of performance. The way that our LOD system works, it's all about getting these very small polygons and averaging them out. And these buildings are pretty large. So one thing that we could take into consideration is, okay, LOD 0, which is the most detailed that you see, would still have polygons that are large enough so that you see LOD 0 for actually quite some time, like maybe a kilometer, I don't know, like 500 meters. Whereas if we had lots of little details, lots of antennas, little polygons, little things, little cables, that thing within two meters would just go pop.
For example, on the rooftops, so we've got the buildings and we've got these rooftops on them and you can walk around them. So there are higher density polys and draw calls than the side of the building, because you can fly past the side of the building, but you can't walk on it. So it had to be high detail, but we've got to make sure, because we've literally got thousands of rooftops in one city or a collection of cities, for example around Area 18. So basically with each LOD, you need to reduce the amount of polys and draw calls. So with the lowest LOD, LOD 5, you're looking for it to be the most simple object, like a box with one material, so one draw call. But even that, it still costs: if you've got thousands of these, it's still a thousand draw calls. So in addition to LODing, we made sure things that were small and couldn't be seen from a distance, not only were they LODed, but they just disappeared when you didn't need to see them. So the rooftop has tons of railings going around, and I calculated, just for one railing type, there was about 60,000 on ArcCorp or something like that.
It's insane. I think when we added ArcCorp in, we added over 100,000 entities into the PU, which was fun for the engineers. But with the railings and small things, the railings are very thin objects, and from a distance they get to like a pixel thin, and then you don't need to see them. So we set the view distances on those kind of objects very low. So if you're on one rooftop and you're looking over to another one, you're not going to see the railings anyway because they're really thin. So we don't draw them. We just turn them off. So it's those kind of tips and techniques that will help even further. Good LODs is one thing, but making sure we've got a system in place that doesn't even draw them is even better.
Just one more thing to add is something that we want to look more into is hierarchical LODs. Basically we will merge LODs together. So if you've got five buildings on a tile or a hundred buildings in a city or whatever, when you're up close to it, you're seeing the building at LOD 0, and the further you get away, each building LODs down, and then we will merge those buildings together as one mesh, which will then save more draw calls. So it's something that we want to get into more in the future.
TL;DRFrom Lorville they learned to make the ArcCorp spaceport readable from farther away, with clearly separated landing sections by ship size, which helps both visual clarity and performance.
Sure. I guess when we first started the spaceport on ArcCorp, we looked at what we did with Lorville, and one of the things we wanted to do was have a bigger read from further away. So there were clear sections for landings and clear sections for what size ship you are as well. So as you make your approach, you can start to adjust accordingly. That's twofold as well. Number one, that's just for a bit more visual clarity, that it's a lot more open, but also for performance as well. It aligned to what we're doing with the rest of the structures, like Luan was saying, where the old buildings and stuff like that were very dense, and they LOD out really quickly. So these larger structures obviously help with visual read from a distance, but they also played nice in optimization and just being able to be drawn from further away.
TL;DRStation variants are on the roadmap and being worked on, with the idea that major landing zones get an orbital cargo or port station so large ships needn't descend into the atmosphere.
Yeah, variants of the stations are definitely on the roadmap and something we're working towards. It'd be cool to get these space station dry docks around ArcCorp for, say, larger ships like the Hull series, so they don't have to go down into the atmosphere. They could land at these dry docks and ferry their goods there, and then smaller ships can take it down to the planet and vice versa. Definitely stations are getting looked at.
The idea is that every major landing zone, like Lorville, like Area 18, will have a cargo station or port station in orbit, so you'd be able to drop off big things. Like the Hull variants that have trouble flying in atmosphere would not need to go all the way down to do their runs. They could drop it off at a cargo station, and then someone else, or a part of the org, could do the rest of the journey and take that in.
TL;DRAll three say they enjoy the work, because the scale and the challenge of solving problems like covering a planet in city is exciting and rewarding.
It's a lot of fun. It's interesting because it's really challenging. As I said, ArcCorp is probably one of the most challenging things I've ever worked on, but that makes it fun, because you're not just doing paint by numbers. You're not just doing a routine thing where you know what you're doing and it's like, okay, I'm going to work, this is what I do every day. You come to work and you're like, okay, how are we going to solve this? How are we going to figure it out? Because when we started looking at ArcCorp, we were just like, okay, this is an interesting problem, how to cover a whole planet with buildings. So I diverted the question a bit, but for me, that's what makes it fun, the challenge of it. We're pushing boundaries, we're trying to do things that haven't been done before, and that's the reward and where the fun comes from for me.
I think the challenge pretty much hits the nail on the head, where it's the challenge of figuring out how the hell are we going to do a city planet? You sit down in the meeting room and your art director and your lead come to you and they're like, by the way, you're going to be doing the planet that's covered by cities, and you go, excuse me? That challenge is quite exhilarating. It's just such an insurmountable thing to figure out. And when you finally see it and players are playing it and having fun, then that's the reward. And that's what's really exciting for me.
Yeah, the scale of things is definitely challenging and can be daunting. But again, it's what excites me as an environment artist, just the sheer scale and how we're going to do it. Everything starts as a blank canvas, and it's like, take this blank canvas and populate an entire planet with city. So it's never a dull moment.