Microsoft Gamefest 2006: GarageGames Interview

0
During its Gamefest event this week, Microsoft announced plans to make entry-level development with XNA available on the PC for free, and on the Xbox 360 for a yearly fee of $99, via a C#-based suite called XNA Game Studio Express. While such a move is not unprecedented--Sony has offered its own hobbyist development channels for both PlayStation and PlayStation 2, for example--Microsoft seems to planning to offer a level of support and accessibility that is uncommon to officially sanctioned homebrew console development. Development studio and affordable middleware provider GarageGames also announced that it will be releasing an XNA-compliant version of its Torque game development environment, which consists of the Torque Shader Engine for 3D development and the Torque Game Builder for 2D development. GarageGames' goal is to eventually allow Torque X to achieve complete feature parity with its Torque Shader Engine and Torque Game Builder brethren, such that users can do everything possible with those engines in the C# environment of Torque X, and even export games directly from TSE or TGB.

I had the chance to chat with GarageGames CEO and CTO Joshua Williams and company president Mark Frohnmayer about what GarageGames and Microsoft hope to achieve with these recently announced tools, what it all means for hobbyist and independent developers, what exactly these technologies do, and what GarageGames has coming out in the near future.

Shack: Yesterday and today's announcements were quite significant. What do you guys see as the big step forward in terms of this as compared to existing open PC development, where people have always been able to pick up a compiler?

Joshua Williams: There are a few pieces, I think. The first is that, as a hobbyist, there's quite a bit of cool factor in being able to run your games [on Xbox 360]. Right now, sure, you can get a compiler and make a game and share it with your friends over email. They can play it on their PC, but it's pretty cool to be able to run it on your 360, and invite people over to come and see it. I think that'll get a lot of people hopped up on making games. I imagine if I were in high school again, learning games and game development, and I heard this announcement, I'd be rushing home as soon as it was available to make a game and show it off to my friends.

So that's the cool factor, but for indies, and people who are more aspiring to become game developers, getting actual experience on a console is a pretty huge change. There are a lot of similarities between PC development and console development, but there's nothing quite like being able to run your game on the console hardware. So you can run your games on the actual hardware threads available on the 360, you can get experience with the CPU, you can get used to having to do all the different resolutions that you have to do to make it an Xbox game. If you're serious about doing games in a cross-platform way or for the 360 in particular, you can get the actual experience you need there. Not only that, but you can prepare demos, so if you're trying to get your game picked up by publishers, or Microsoft itself, actually having a demo that runs on a 360 is a huge advantage as compared to just having something up and running with a mouse and keyboard where you can't demonstrate that the game mechanic works on a console.

That's another piece as an indie game developer, that you can actually make sure your game idea is going to work on the console, or that it works both on the PC and the console. There are a number of advantages for those guys, and also for educators.

Game programs are becoming more and more popular, and game programming turns out to be a really good way to give students interest in computer science and help retain students. One thing that we see, because Torque is used in about a hundred courses for game development, well, most of the [jobs] in the industry are for console development because most of the titles come out for consoles. So how can we teach our students console development techniques? Right now, there's no way to, unless the university is going to pay to get a development kit, or they work out a deal with the console manufacturer, which is very rare. Only a couple of universities have ever done that. There's no way for them to teach their students actually how to do console game development, which is the most applicable for actually getting jobs in the industry. With this, now you can. So I think it's a pretty big change across the board for game developers.

Mark Frohnmayer: I would add to that, when you look at the full articulation of the vision of actually being able to have people make console games--[Microsoft's] Chris [Satchell] alluded to this towards the end of his address--and allow them to sell their games through networks and to friends, all of the sudden you can have people making a living building console games without having to be a part of a major publisher. Without having to go through the gatekeepers that exist. I think it's a huge potential win for indie developers.

Shack: Even now though, presumably smaller developers would be able to use these tools to present prototypes to Microsoft to obtain a Live Arcade deal.

Mark Frohnmayer: In the short term, that's absolutely possible. You could build your prototype, and you could take it to MS, and say, "My friends love this, I've got the gameplay all hammered out, it already works on your platform." One of the challenges, even for indie developers, has been really proving that they can make a title work on that platform, and to be able to have this as a stepping stone to get there is a huge deal.

Shack: Speaking of the Torque X engine, of course when Microsoft announced their XNA Game Studio Express, GarageGames also announced Torque X. Do you want to give a brief overview of those tools?

Joshua Williams: Sure. Our plan over time is to have complete feature parity between the Torque engine suite of technology, both the 2D technology and the high end 3D technology, and Torque X with managed code. In C++ we have our 2D tech which is build on top of our 3D tech, and it's the most powerful 2D engine out there. It's all scene graph driven, it's hardware accelerated, it's got a particle system, you can do really cool effects with it, it's got continuous time collision detection against polygons, it's got tile maps that you can do crazy effects with, it supports super high res graphics. You can just do really cool 2D games with it.

On the 3D side, with the Torque Shader Engine, like Mark says, it's totally buzzword compliant. Normal maps, specularity, HDR, bloom and glow, all the standard rendering effects you expect to see in a modern high end game engine as well as we think some of the best terrain technology in the industry. You're able to load arbitrarily large terrains and page them from disk and collide against them. Then there are a lot of other nice game engine features like character animation, art tool support so we have exporters for Maya and [3D Studio] MAX and standard art creation tools. We have a world builde so level designers can get missions together and all that. We want all of that, all the featuers of the 3D engine, on Torque X too. We already have key portions of it up and running. A lot of the 2D stuff is already set. As you saw with Marble Blast Ultra, enough is already up to do that game in managed code, which is nice.

Mark Frohnmayer: What's really amazing to me, watching our dev team bring our technology over, is just how quickly we've been able to bring our tech over to managed code and how performance has been. To me, it suggests another win for development under this framework, that using both a competent engine technology as well as the managed environment, it just makes game development that much more fun.

Joshua Williams: We got them done really quickly. This port of Marble Blast Ultra took about three man-weeks to get done, which is really fast. The 2D demos we did took a few days each, which is cool. Obviously, we're game developers and we know our tech really well, so I'm sure we're getting it done more quickly than someone starting out, but the fact that you can do stuff that quickly with Torque X and the managed environment is super exciting to me, because I think it means a lot of people are going to get projects done a lot more quickly and be able to express their ideas sooner rather than later.

Shack: You mentioned some groups that will be most affected by this. You've got the hobbyist developers who think this might be something they want to pursue, and the smaller developers who do have some kind of budget. In terms of the hobbyist developers, what can they expect to see when they start to dive into this whole thing?

Joshua Williams: There are a couple things. If you're just using XNA Game Studio Express, what that gives you is what looks like a low-level game making API. It's sort of similar to Visual Studio now, with a C# code editor. Using that, you can make games on your own by writing a bunch of C# code, talking to the XNA framework, importing art assets, and getting your gameplay up and running. That's using the basic XNA framework and tools. If you use stuff like Torque X, or the Torque Game Builder tools which can talk to our XNA implementation, then you get much more of a quick experience. For 2D game development, you can actually drag and drop art assets onto the screen, set behavior parameters for how you want your scrollers and your sprites and your tiles to behave, and get your interactivity up and running, then deploy that to the XNA platform using the exporter tool.

If you're trying to do a 3D game, when we launch you can essentially write to the Torque X engine, and it gives you a bunch of built in features so you don't have to recode, say, a collision detection system all on your own in C#, which is what you'd have to do if you were doing a game [without a pre-existing engine]. You'd have to do your own collision detection, you'd have to do your own shader-based rendering, you'd have to do optimize your scene graph. Using an engine on top of the engine just saves you a lot of time.

So, as a hobbyist, what you see is the IDE, which looks similar to Visual Studio, and then an API that you're writing to, and that can either be the XNA-based framework, or a higher-level API that does more work for you like Torque X. If you so happen to be doing a 2D game, it's our plan that at launch you'll be able to export games from Torque Game Builder, which is totally a visual game creation tool, and you can deploy them on 360 with XNA.

Continue to page 2 to learn about the benefits of managed code, what you'll get with Microsoft's $99 annual "creator's club" membership, and what GarageGames has in the pipeline.

_PAGE_BREAK_

Shack: Do you want to speak a bit on the concept of managed code, and what that means in terms of usability and efficiency, and potential hits on performance?

Joshua Williams: Sure. So, what managed code means is that, whereas with C++ or native languages you're talking direectly to the metal and there's nothing between you and your executable, in a managed environment you have this layer between you and the hardware. That gives you a lot of nice benefits, like you don't have to worry so much about your low level memory management stuff. I guess in layman's terms, it cleans up a lot of the nasty work you have to do even in high level languages like C++. It also gives you a nice safe execution environment, so the output from managed platforms like .NET is generally more secure than output from arbitrary code execution like in C++, so there are some wins with managed platforms.

One thing is that, in business development and application development, it's pretty commonly heard that developers are about 50-100% making managed apps than they are making C++ apps, just because there are less headaches. The downside that people talk about is usually that for managed languages such as C# or Java, there's less performance than with C++. But, Microsoft has done a really good job of making the C# platform, and XNA in particular, really perform. Our game engine is up and running, and the framerates we get in our demos are comparable to what we see with our C++ engine. That actually blew us away. When Microsoft first approached us about this stuff, we thought it was kind of an insane idea, because we believed in the misconception that everyone else does, that managed code is not performant enough to do realtime 3D or high end games, but it turns out it is.

Shack: In that vein, what would you say to those who maintain that someone who's starting out in development should be learning assembly and low level languages as grounding, the sort of approach prescribed by people like John Carmack? What's your take on that?

Mark Frohnmayer: I would say that there's a place for that kind of person, too. You have that option, even with Torque running in C++. The question I would have is, how many people actually fit that mold? I mean, John Carmack is one of the most brilliant programmers in the games industry. I think for the vast majority of people starting out, things like memory overwrite bugs, where the application crashes and they can't figure it out, are simply going to turn them away from games. I think one of the problems we've had in the games industry, especially with getting new people and new ideas as well as retaining people with talent, is that there are a lot of things that are hard, and there are a lot of things that are hard that don't need to be hard. The more that we can do to make that process easier, the more we can include people not just as consumers of our games, but as creators of the gaming experience. To me, the most fun in games is making games. It's bringing your own creation to life, then playing it and having a good time with it.

Really, the purpose of what GarageGames is in business for is to allow that to happen. Managed code is a super awesome piece of that whole puzzle, of making games more fun and easier to make. That's only going to result in good things both for game makers and game players.

Shack: Could you explain specifically what users will be able to do with just the free downloaded version of XNA Game Studio Express and then what you get with the $99 annual fee? I've noticed some people have been a little unclear on that.

Joshua Williams: Sure, so with just the free version you get the whole IDE, so again it's similar to Visual Studio in the way it's laid out, and you can make games on it and play them on the PC. The subscription piece that Microsoft offers gives you the opportunity to deploy those games to your 360 and play them. Also that creator's club gives you early access to some starter kits and stuff that they're putting out, early access to some content that they'll be putting out over time. They haven't revealed a lot of details as to how that stuff is going to work, but that's what they're saying their plan is.

To us, that's exciting, because we do the same sort of stuff already in the GarageGames community. We have art content packs and starter kits and stuff to help you get up and running, and we see each time we do one of those it helps people's productivity a huge amount. As soon as a content pack comes out, which is a bunch of prepackaged art that you can use in your game, we see demos coming out using that art and you can tell it gets people up and running more quickly. Likewise, starter kits are a huge leg up for when you're trying to do specific kinds of games. So with some of the demos we have for Torque Game Builder, we shipped demos that are like starter kits for doing sidescrollers, or top down games, or whatnot. The fact that Microsoft has taken the same tactic is encouraging to us because it will give people a big leg up from just getting started at the baseline. So that's what you get with the subscription: deploy to the 360, and access to the creator's club.

Shack: So while the big news here is the greater accessibility of console development, Microsoft has recently been taking a very strong stance about where they want to go with Windows gaming. What are your thoughts on the future of PC development and PC gaming?

Mark Frohnmayer: I would say that PC development up until now has been kind of a nightmare. If you think about what we go through as PC game developers, dealing with everything from driver compatibility issues to hardware differentials between systems ends up being a huge part of the hassle of getting games out on the PC, as well as having a good system on the back end that's simple for consumers to download games or get them on the system and install them. What I've heard from Microsoft as far as their initiative on Windows gaming is to make it a much more console-like experience. You go to the store, it's very clear what titles are appropriate, you can take them home for a much easier installation process and there's a much easier process for game developers to build those games. It seems like they're moving in the right direction in that regard as well. But I think it's all about making our end user experience as gamers more pleasant.

I think the opportunities that exist on the PC currently for people to make money are wide and varied, as far as being able to make a living making games, so the more we can encourage a common platform to develop our games, the easier it will be for people to bring them to market and make a living at it. That's really kind of closing the whole loop on the independent game idea. It's all well and good to be able to make games, but then also to be able to make a living at it if you really enjoy it, without necessarily having to go to work for an established game studio and to do it yourself as an indie, is really great. I think people more and more are being able to do that.

Shack: On that end user side of things, does GarageGames have any new games in the works, or are you guys pretty full up with work on your development tools right now?

Mark Frohnmayer: For games? We do have a couple things that we can't talk about just yet. [laughs]

Joshua Williams: We got a couple things brewing.

Mark Frohnmayer: We're about to release our first actual legimitate casual game that we developed in house. It just went into beta last week. We're about to release a new set of levels for Marble Blast Ultra on Xbox 360. We did a whole new set of multiplayer maps that are actually a lot of fun. Then we have another game that's in the early stages of development that's going to totally rock. We will give you much more information on that as we get closer.

Shack: Anything related to Tribes? I'm sure you guys get asked that every day.

Mark Frohnmayer: It actually is in a lot of ways a gameplay homage to Tribes, but it's a very different genre.

Joshua Williams: It's going to be cool.

Mark Frohnmayer: It will be cool.

Shack: Thanks for talking to us.

Filed Under
Hello, Meet Lola