"This is OUR tech."
With AAA video games rivaling blockbuster movies in terms of production values, it can be easy to forget that they’re basically just fancy pieces of software. Where you see a detailed landscape and the perfect headshot, Engineers like Piotr Mintus (Lead Software Engineer, Tools Architect) and Doug Heimer (Senior Software Engineer) see the resources and pipelines required to create and deliver those experiences to you. These tools guys build the technical magic that supports the creative and technical visions of a production team. Oh, and they’re damn good at it.
How good? We’ll let Doug field that one: “He won’t admit this because he’s modest, but Piotr is the reason we have a Tools team at Monolith.” Doug has got a point. Piotr’s been here for seven years now, building, upgrading, and optimizing tech. “When I was at Digipen, they would use Piotr’s stuff as examples in class,” says Doug.
Piotr and Doug don’t just work on the pipeline, though. They MAKE the pipeline. They build and maintain a whole hell of a lot of the infrastructure that supports the entire development team through the production process. “When a game is in pre-production, we’re in production,” says Piotr. “The tools should be ready to go by the time the game hits production.” These guys help make sure the vision of the production team doesn’t get lost in translation or bogged down by the technology used to create it.
What makes Monolith stand out from most other developers? “We’re either making new tech or updating our own existing tech. That means we get to have fun and be creative,” says Doug. Piotr chimes in: “We’re not just ‘tweaking’ someone else’s tech. This is OUR tech.” And back to Doug: “Let’s put it this way: Would you rather write your own story or rewrite someone else’s?”
For these guys, that opportunity meant the freedom to build a particularly powerful piece of networking tech called CRCL, or Common Runtime Communication Layer. What does that mean? Good question.
Let’s start with how things used to work, using the effects pipeline as an example: an effects artist would have to create an effect with all the settings she thought would work, but she wouldn’t really be able to tell until she uploaded it into a build. Once she went through that step, she could see how it looked, but couldn’t change it until she went back to her work station and tweaked it. Next, she’d upload it again to see if she was getting closer to the intended effect... and back and forth between the build and her workstation until she was satisfied with the result.
If an artist is spending an extra few minutes working with a tool to enter an effect into a build of a game, well, that might not sound like that big of a deal. But then imagine that she needs to do that multiple times a day, every day. Not exactly the most efficient way for an artist to spend her time, maybe, but a necessary step in the production process, right?
Well, no, actually. Not according to Piotr and Doug, at least. That’s the type of thing that can really break down the flow of the creative process, and that’s something that Doug and Piotr work their asses off to stamp out. They listened to the feedback from the teams that said they were spending too much damn time in the tools and not enough time doing the stuff they do best--making cool s***. So they built CRCL.
Okay, now that you’ve got the back story, it’s time to talk about what CRCL actually does. In layman’s terms, it allows artists to stream their effects to a build in real time. Cool, huh? Not nearly as cool as being able to tweak the effect within the build, also in real time. All those steps of saving a version, uploading it, viewing it, then going back to the workstation to make tweaks? Gone. If it sounds like magic, well, that’s probably because it kind of is.
And just because we’ve been using the process that an effects artist goes through when using CRCL to demonstrate the way the tool works, that doesn’t mean that it only works with effects. In fact, it can be used with a number of other tools, and both Piotr and Doug are even imagining up ways to integrate this technology with our world editor for real-time updating.
But in all honesty, no one can explain it better than Piotr and Doug themselves, so we’ll step aside and give them the floor for a minute to speak directly to all the other engineers out there:
CRCL is a Platform agnostic common runtime communication layer. It provides a framework which allows us to communicate between multiple endpoints established on different hardware via type safe, validated messages. It leverages a custom Remote Procedure Call framework that makes the technology available to all engineers. For more technical information please see our GameFest 2010 talk, Creating a Common Remote Communication Layer as the Foundation for Next Generation Development Tools.
Technical elements aside, it all boils down to the fact that the work Piotr and Doug do saves our teams countless hours and allows the best possible effects, and so much more, to end up in the games we make. Everyone here at Monolith is thrilled and relieved to know that there are scary-smart engineers like these two guys behind the scenes, helping to make the magic happen.