It seems like everyone is kind of trying to go the other direction where they're just making it so you don't have to program sometimes. Unity and Unreal Engine, they both feel like they're moving in the direction to where you can get a lot more done with a lot less knowledge.
BB: It's definitely easier with tools like that, I guess, if you can afford it. Unreal Engine is another one, for sure. But yeah, Unity is great. I'm actually a huge fan of them. I mean, this was exactly what I was doing at Sony. We built kind of a more one-level meta up, which is we built a bunch of C# components and samples that showed how to build tools. And the teams could take this stuff and very quickly make an animation blend tree editor or level editor. We had prototype samples that they could very quickly just start modifying, grow, and make their own. So, it was kind of a construction set.
The technology is always getting better. Languages are better. Computers are faster. And, you know, there are tools like Unity. It's a little chaotic. There are a lot of open source editing tools. It takes a while, I guess.
There's nothing really compelling like a Maya where you can build your own like modeler. Because I think that's something that's missing. There's the modelers, and they can have plug-ins, but if you wanted to make a very different kind of game engine that did procedural geometry and you wanted to define procedures, it's more difficult, and you're sort of limited to what's out there already. Or you have to write plug-ins, which is demanding.
The Finnish company Housemarque, they actually use Maya as their level editor.
BB: There are two schools of thought in the game industry. Use Maya and write plug-ins, or build a level editor. Everyone uses Maya to model, or some modeling tool. I don't think anybody, or very few people... Even the Quake-style games, they have level editors, actual Doom-model geometry. They have a very different way of creating geometry.
But everybody uses Maya. Some people will do level editors, and some people will try to build a level editor in Maya. Both approaches have their strengths and weaknesses. And I've gotten caught in that battle a couple of times at a couple of companies. Yeah, it's just kind of never-ending.
As all these things get more robust, I think it will be interesting to see what happens. The flavor of an engine, that was never something that people would be able to identify before, but it's becoming identifiable.
BB: Well, it's funny, in a way... I don't want to sound like I'm criticizing Unreal or any engine, but they target a certain kind of game. It's really rare that you can do a first-person shooter and a racing game with the same engine and toolset. That's kind of a shame. It seems like it would be great if at least there were a framework that could build tools for different kinds of games.
And I think that’s the goal for everybody. They're all trying to get there. Since many of them do come from game creators, it will service what they want first.
BB: Yeah. Of course. And because game teams are always under a lot of pressure, they tend to just build what they need without thinking. And there's a lot of criticism for people who abstract too early and over-engineer, but in a way, for a framework, you do need to think more carefully and have that experience in multiple directions. "We don't want three separate things. How can we unify some of it?" And then customize it just because you've got code... Too much code is bad. It's what we do, but it's bad.
BB: Yeah. There's a great quote, "Functionality is an asset. Code is a liability."
I don't know how long your current project is going to be -- maybe it's a forever-ongoing thing. But what do you see as your next steps for yourself?
BB: Well, my passion really is building tools and frameworks, and what I'm looking at are ways to deliver that, learn more about web programming, and ways more to build that. I've always built desktop apps, but it just feels like that's the past, and that web apps -- apps that are delivered in the browser -- really are a good idea. So, I wanted to see if that’s really true, because there's an opposite current of phones. Apps are back. Yay, apps are good again! And web apps on the phone can be kind of painful.
So, it's got ways to go. I guess I haven't totally made up my mind, but I wanted to learn about this and see how Google builds software. They must know something. They seem to do a pretty good job. It's been eye-opening. Nobody's perfect, of course.
Have you felt specifically like you learned anything from your time so far at Google? Or were you schooling everybody?
BB: No, everybody's really smart there. I wanted to be challenged. Everybody's really smart, at least in my build group, I think, just from conversations. It can become a little overwhelming. Everybody is trying so damn hard to be the smartest guy in the room, and you're just trying to keep your head above water. And, you know, you don't need to always be trying to impress everybody. But I've been impressed. Everybody is really competent.
I was on Windows, so I wasn't really up to date on Linux and Mac OSX. I was programming a pretty high-level language and was not doing any low-level systems. Our group does much more system-level stuff. Native Client has got a lot of system level kind of coding in it.
Chrome and C++, I haven't done much C++ because I was able to avoid it. And there are a lot of considerations to working with hundreds of people, the collaboration. I've learned a lot of nuts and bolts. I've done very little just coding away like I used to, which I do miss. There's a certain discipline that you do need on really big projects. They have an excellent code-reviewing process. There are a lot of great people. I've learning from people who are the top browser writers in the world. That part I love.
It seems the only person you can really try to impress is yourself. And that's impossible.
BB: At the end of the day, I think all that matters is what have you done. It doesn't matter how smart you are, or how brilliant do you sound, or whether you sound like an academic paper when you talk. What really impresses me is people who have built things, who made things that really worked, who did something that nobody else thought would work, or followed their vision and made it real. That, to me, is very admirable; the only thing that counts.