In the last year you built a lot of the foundational tools, such as Subsumption UI, SolEd, etc. Can we assume that we now have them all in our workspace? Are tools done? Are we done making tools?
TL;DRTools are not done and never will be; the team is structuring tool teams and now prioritizing implementation tools and what-you-see-is-what-you-get workflows, because content creation has outpaced implementation and causes asset rot.
Totally. Yep, done. Everybody's happy with the tools. They never need any more work. We never have to rework them. It's perfect on the first delivery. So next question.
Tools go through stages. You initially implement the tool and you do it in a way that it works. It can get the task done. Then once it's in there, you have to reevaluate a little bit and say, does this get the task done as quickly as we would like? Is the way that you interact with the tool as friendly as we'd like? Because usually when it first gets implemented, our tools are very complicated, which means using the tool is very complicated. And you want to simplify it as much as possible because that limits mistakes and also speeds up your workflow. So usually it goes through a couple passes. So I think probably the answer to that question is while they're implemented and somewhat working, they still need a lot of work. We use software that we're on version 11, 14, all these Adobe, Autodesk, all these programs are never quite finished, right? Because they could always be better.
And maybe, to use a term from Eric, to pontificate on the minutiae a little bit: there's a lot of, and I hate to overcomplicate this, but there's a lot of layers and a lot of tools that are involved. You can call a script that somebody writes for an artist within 3ds Max a tool. You can call the Sandbox Editor that we use a tool. You can call our copy build patcher setup a tool. So there's a lot of different layers of these tools. One of the things that we're working on even this month is structuring those tools teams a little more accurately to be fit for the purpose that we need them to be set up for. So a good example is we have a general tools team within the UK that's led by Martin Sr. And general tools are pretty much defined as anything that's outside of the editor. Then we have a Sandbox tools team that's led by Sascha Hoba in Frankfurt, and that's all the tools that happen within our editor interface. Like Planet Editor, like TrackView, like a lot of other things people have seen on various ATVs. Then we have another layer of this and that's the art and animation tools. So these are tools that we write on top of those DCC apps, so 3ds Max, Maya, MotionBuilder. And that's what a tech artist really usually spends a lot of his time on, is that sort of tool structure. What we're always trying to do is make an environment artist's workflow faster, better, things less prone to bugs, trying to automate it. Then the same thing goes for the animation tools. And so everyone's aware, we call them the technical animation team, but we've got a pretty big team, and that's led by Rob Howes out of Derby. So now I've just talked about three different studios completely, and you can imagine that there's a lot of communication back and forth. There's a lot of really early morning meetings to discuss this kind of stuff. So that gives you an idea of what that team looks like.
Now, where are we at in terms of tools? Just like you've seen with a lot of the gameplay systems, as that gameplay system comes online, you need to then either at the same time or shortly thereafter develop the tools related to said feature so you can implement and do the feature. So we put a huge onus and a big priority in the last year or two years, Forrest and I specifically focused on this, on the content creation tools that we had, because we knew when we were talking two years ago that the scale of this game is so immense that the amount of content we need to generate is to a degree that those tools need to be very powerful for the artist. Because again, we can't just do it in a standard AAA kind of setting where you make one character very specific. That is your hero character. Okay, cool. We're going to make 12 more of those and that's it. We're talking thousands of character assets already created, and a character asset is like a shirt or a pant or whatever. Then you've got the same complexity, if not more, on the environment side, then you've got more complexity within the ships. So we've got all those tools in shape, we've got our pipelines, we can do all this. Now, where's our bottlenecks? Where is all the time going? Because the only thing that a tech artist will think about after that pipeline works is how can I make that better? And every day, that's all we're thinking about: how can we make that better for the developers? How can we make that easier for the developers? But because we put such a huge focus on the content creation tools, I say this all the time, our ability to create content has far exceeded our ability to implement said content. And it's not a good thing necessarily, because what it can do is, okay, so we develop a lot of content, and again, the players aren't seeing a lot of the Squadron 42 kind of content yet, and that stuff has progressed very well. But because we've made so much stuff, it sits there unused for a month, two months, three months. And then what happens, and this is the really rough part, is a system will change under the hood. And it might change in a feature team in the UK, so I had no idea about it, Gaige had no idea about it, Forrest might not have known about it, and we're getting way better in terms of that communications structure, but what happens is, and I call it asset rot, basically a thing has sat there for so long that it starts to rot. Basically, there's bugs that get created after the fact, and that's just based on underlying changes. So the focus is moving towards: let's make sure that our tools for implementation and for all the designers match our rate and our ability to create this particular content.
What you're talking about here is a struggle that happens daily, not just for us. This is a standard game development thing.
Not even game development. I think this happens across anything that uses digital assets in some way. And it's this interdependency thing. The times that people get really angry is when they've made a super nice asset, like James Koo will finish off this gorgeous character and it'll sit there for about a month and then he'll come back to it, or what's worse is somebody else grabs it, puts it in game and says, oh, what is this? There's errors on it or whatever. Okay, I'm going to send this over to James, and then he gets some sort of email that says, oh, why is this? You said you were done with this thing. So it can create some friction. So we've really got to address that on a tools and developer workflow side. And this is a nonstop thing. We're never going to be done with the tools, and we have to be okay with that. But that also means that we have to very specifically prioritize certain things, and we prioritize it based on what the bottleneck is globally. So what is slowing this thing down? Is it slowed down at this step, at this step, at this step? Why do we have 30 assets sitting here and one asset sitting here? So I'm very much pontificating, but I do want to go a little bit further, because the tools thing is a real big focus for me personally right now, away from features, so much more on the tools. So we used to have a very solid mentality with what was CryEngine and is now Lumberyard, and Lumberyard has maintained this mentality of what you see is what you get. So a designer is working within a level. He does a thing. Sorry, I'm going to use your Red Bull cup for an example. So he places this cup on the table. Cool, great. Now he wants to actually test this and see how that actually worked out. Now, if he has to go through a whole bunch of, I've got to launch this app, I've got to set this CVar, I've got to do this thing, I've got to get 20 minutes through the level, and then I can see my cup placement, he is going to place it one time and never again. Even if it's not perfect, so it's like, actually, I wanted that cup on that paper. If I wanted to make that little move here and then go through 20 minutes, I'm just not going to do that. So what we're trying to improve is the what you see is what you get mentality. And sometimes that can be totally opposite of what would make sense for a system. So sometimes what makes sense for a system is that you're not updating everything in real time. You're going to bake it, basically. You're going to save it, you're going to export it, you're going to somehow lock it in. But the mentality of what you see is what you get is never be locked in, always be changeable. So there's a mentality that has to be addressed there. And I think with some tools that we've developed in the past, we have to not really rework the tool, but think of a different workflow for said tool. So a good example is Subsumption, and something we've been looking at is these GUIDs with object containers. And this is just a method of us identifying certain object containers, and then Subsumption uses a list of all of these things. The problem is, for a designer, if he makes a new object container, he can't manually go add this thing to the list, wait for a build to generate, and then see his new thing. That's the exact opposite of the what you see is what you get functionality. So that's a big drive on the tools front.