Configure player

Close

WWDC Index does not host video files

If you have access to video files, you can configure a URL pattern to be used in a video player.

URL pattern

preview

Use any of these variables in your URL pattern, the pattern is stored in your browsers' local storage.

$id
ID of session: wwdc2005-206
$eventId
ID of event: wwdc2005
$eventContentId
ID of session without event part: 206
$eventShortId
Shortened ID of event: wwdc05
$year
Year of session: 2005
$extension
Extension of original filename: mov
$filenameAlmostEvery
Filename from "(Almost) Every..." gist: ...

WWDC05 • Session 206

Develop and Deliver Great Mac OS X Games

Graphics and Media • 39:55

This session covers a wide gamut of issues related to developing and delivering world-class games on Mac OS X. We'll focus on the key technology ingredients required for game development on Mac OS X, including programming best practices, third-party game technologies, business issues, and successful go-to-market strategies. This is a required session for anyone interested in game development on the Mac.

Speakers: Tim Schaaff, Jay Moore

Unlisted on Apple Developer site

Transcript

This transcript was generated using Whisper, it has known transcription errors. We are working on an improved version.

So I'm going to talk to you about games today, a little bit about the business, and then we're going to dive in and talk about a lot of the technical issues and opportunities in the gaming space.

[Transcript missing]

and as these titles, as these blockbuster game titles start to enter the mainstream culture, become part of the popular culture, what we've also seen is we are seeing the business of gaming begin to look more and more like the business of the film industry, the movie industry.

This includes investing in extremely high production value content, fancy talent, fancy graphics. Companies investing lots of money to build proprietary technology, game engines and rendering pipelines and tool sets and things like that. We're also seeing tremendous energy going into the launch activities for these new titles. They're being launched the same way that Hollywood launches movies.

And in addition, when you find a hit title, what happens now is that it becomes kind of a repeat-until-rich sort of a process. You take these titles and they become franchises, and it becomes incredibly important because of the business that they don't mess with the formula. You want to kind of repeat that initial success, just like you see happening in the movie industry.

Well, because of this huge upfront investment and because of the tremendous pressure that this is putting on the financial side of the business, there's creating also incredible pressure to get the products out the door. And everyone knows about the dynamic of hitting Christmas holiday season with your title. Well, the good news is you're going to become rich and famous, right? This is what it's all about.

Well, your results may vary. In fact, side effects include long hours, low wages, burnout. And we've been reading a whole bunch of stuff on the web, hearing about the kinds of conversations that have been taking place at some of the big gaming conferences, and this is exactly the sort of thing we've been hearing about. Well, there's more to it than that.

When we look at the marketplace, here's kind of the conventional wisdom of what gaming is supposed to be. It's 99% teenage boys engaged in extreme acts, with the rest of the market, 1% for the rest of us. So clearly, this is not what the rest of society looks like, and we think there is another way here. And we'd like to say this is the time to declare your independence.

[Transcript missing]

We believe that Mac OS X could be the ideal place for this transformation in games to occur again. In the 80s, Mac was on the forefront of the transformation of the music industry. In the 90s, again, the Macintosh was on the forefront of a dramatic transformation in the video world.

And we think that in this decade, this could happen again, and we're starting to see signs of this already. What I'd like to do now is I'd like to bring Peter Grafagnino up, and he's going to tell you about some of the technical ingredients that are powering this transformation. Peter Grafagnino: Thanks, Tim.

Morning, everybody. It looks like versus Dashboard, we sort of did okay. That's pretty good. I realize there's a lot of traffic with the weather this morning, too, so thanks for showing up. I'm going to talk about some of the game technology we have inside of the OS and kind of take you through it from a couple of different slices. First off, I'm just going to talk about the basic technology itself, the core tech in the OS, and point at some third-party stuff as well.

Then I'm going to talk about development models and how games are put together and kind of whether it's a big budget or a small operation, some of the ways people can approach things. I'm also going to talk about a new trend, these game development platforms, which are almost you can think of them as Xcode for developing games, very visual environments where you can create games in a very approachable manner.

And then I'm going to go through kind of a laundry list of some really simple best practices things about installers and how to support our monitors. There are just best practice things if you are writing a game to keep in mind to have a great Mac game experience.

[Transcript missing]

That's without. It's a little bit subtle, but you can get much cleaner video. And when you see this thing on a cinema display, the efficiency of the codec is incredible. So for nice cut scenes, you know, and these scenes are rendered with, you know, film technology using Maya and tools like that.

And having a great codec to preserve all that quality is really nice. So QuickTime sessions right after this session in this room is going to be a session talking about video and QuickTime working together with OpenGL. So you definitely want to see that. And then there's the QT Kit session as well on Wednesday later today.

Open AL. So Open AL is our audio solution for games. It's built on top of our core audio engine, and it adds positional sound and powerful APIs for games modeled after OpenGL. So if you're familiar with OpenGL, driving OpenAL is very similar. And it's been widely adopted across the game community.

In fact, you guys were kind of a little bit ahead of us on this, but we built the version into Tiger now, so we have OpenAL support on the platform, and we're actively engaged. With the open source effort on that. So a bunch of games are using OpenAL, and so we think it's a great solution.

On input, we've got the USB HID. USB solved a bunch of problems in terms of connectivity with devices. We realize it doesn't solve every problem. And so this is an area, actually, we're interested in getting some feedback. We realize game configuration, controller configuration UI is very difficult to write. But we don't necessarily want to get into your game and write your user experience.

So a way to think about it in terms of object-oriented programming, there's model, view, control. You guys are going to own the UI in terms of how your game setup should work. But what can we do at the model level to improve the abstractions? So things like learn mode and mapping of input points is easier to do. So anyway, talk to us after the session or at the games thing tonight.

and there's the email address for you. The other thing we did in Tiger is built-in haptic support. So we worked with Immersion, who's the clear leader in this field, and we have force feedback framework in Mac OS X, so that's great for giving feedback for devices as well. The last section I'm going to talk about in terms of core technology is tools. Now, these tools come with the OS. Obviously, Xcode, you heard about the importance of Xcode. Obviously, with the processor transition we're undergoing, very important to use Xcode. The other thing is our performance tools are great. These performance tools are cross-architecture, PowerPC and Intel.

Great analysis tools for developing code that runs really fast on both architectures, which we think is really going to be a compelling story for us on performance. And obviously, OpenGL Profiler, hopefully all of you are well familiar with this tool. It's just a great tool for tuning your games. And if you haven't used it, you probably have some orders of magnitude of performance on the table. But you can get just by firing up this tool.

So definitely something you should know about. So those are the pieces of kind of Apple supplies in the OS in terms of core technology. But in terms of building a game, there's a few other pieces you need. You know, so-called middleware, networking is one, physics is another. And I'll talk about a couple of those.

AGEA, Novadex physics engine, they're very excited to come to the platform. Actually, they're going to be giving a lunch talk today on their engine. It's been ported over. It's a great physics engine optimized for multiple platforms. So this is really a great thing if you want to learn more, go to their website or just see them today at lunch.

Another area is networking. I can get this thing to work. Another area is networking. There's both commercial solutions like Game Ranger, open source solutions like Open Play, and a ton of other things in terms of doing networking. So there are some URLs to go check out if you're just getting into this stuff.

So that's the kind of game technology areas in terms of the portfolio of the kind of tools in the tool chest to build a game. But let's talk about how that maps over to various kind of game development paradigms. So we call this Pathways to Game Development. So here's kind of the big high-end sort of Hollywood studio model game development. To be honest, not a lot of this occurs on the platform right now, but we think it's a great opportunity.

You saw Michael Johnson from Pixar talk about how his team builds really creative internal tools for Pixar to help them create games. We think there's a big opportunity here for doing things like level editors and asset management in terms of custom development. But we've got all the great content creation tools on the platform. We've got a great technology stack.

We've got Xcode. We've got PowerPC and Intel optimization tools. So this is an area we think could be very... very interesting for the high-end studios. The other thing that typically happens on the platform is those games are not developed natively on the platform, but they're ported. And so we've got a bunch of developers, great developers, who do that for us.

And, you know, this is a pretty vibrant community. You know, a lot of the high-end games you see come through here. And they use all the great tools, OpenGL, OpenAL, Build with Xcode, Tuneless Shark, and OpenGL Profiler. So that's a... that's a great way to get into the mode of development.

Probably not a lot of you in the audience are in this field, but it's a critical part of our success with games. The last two I'm going to get to are kind of a little more, you know, small budget ways of developing. You know, these are things that a small team could do with a great idea.

One interesting one is Mac-only game development. And kind of think of this as, you know, you're not so worried about being cross-platform or anything like that. You want to leverage all the technology Apple has, not just the core stuff, like, OpenGL and OpenAL, of course, but maybe some new things like, you know, iChat or the iSight.

Or you want to use Quartz Composer to do something because it makes you express your ideas more quickly. And one example of a game like this is the Big Bang board games from Freeverse, where they've integrated iChat and all these great OS X technologies to build something you really, you know, can't exactly have an analog for on another platform, but it just feels so much like a Mac experience when you're on the phone. And you're playing the game.

And I think that this is really ripe for experimentation. I think there's a lot of cool things that could be done with iSight and OpenGL and all the technology on the platform. And so that's an area that could be pretty interesting to think about if you're thinking about getting into game development.

The other thing that's really interesting that's going on is what I'm going to call downloadable game development. These are ways of developing games that have the wide reach, and so there's a runtime that runs across, say, Mac, PC, consoles. But the focus is on the gameplay and not technology, and more importantly, the focus is on the creation of the game and not so much on technology development. And these are kind of, again, complete IDEs for games, kind of as a way to think about it.

Like Xcode, you know, you press build, your game comes out. They have scripting languages, very visual design tools, the kind of thing, you know, a few folks with some graphic design skills and a little bit of logic skills can come up with a game. And so this is, and we'll talk about a couple of these. Over the Edge Entertainment is a group in Denmark.

And you saw this engine, the Unity engine, demoed in Scott Forstall's Mac OS X State of the Union talk. The interesting thing about Unity is you can kind of think of it, it's almost like a Flash environment. I mean, it's not meant for the same things that Flash is, but it's very approachable. You know, a designer with some scripting skills can put together some fairly interesting content with this tool. So it's an integrated editor. It's only on Mac OS X. However, their runtime lets you deploy.

You can deploy to other systems. You can create console quality games with this thing. They've got a neat dashboard widget. You can make your game into a dashboard widget, which is kind of neat. They've got all the, you know, buzzwords. Their, you know, engine has pixel shaders and particles. And it's built on that Novadex physics engine, so that comes with it. And it, you know, so it's just a great platform to experiment with and play around with.

And in fact, you may have heard of the game Goo Ball. Goo Ball is kind of a fun game, like the old marble game that Ambrosia did, and they did it with this tool. And I think it's really a great way to accelerate development. There's another company that's doing some really innovative stuff in the downloadable game space, and that's Garage Games. And rather than me talk about it, I'm going to invite Jay Moore up to the stage to tell you about what they're up to on the Mac and give you an overview and a demo. Thanks, Jay.

So Garage Games came to the conclusion from a group of guys that have been developing games for over 15 years at Dynamics that games needed to be changed in terms of how they're both made and played. So we founded a company six years ago that is out with the mission to actually create a space where independent development can actually bring new games to market. And the open platform for OS X is an ideal situation for that. We knew that there were three things that had to happen for us to be able to do this successfully.

The first one was we needed to create AAA technology that was available to anybody to be able to get access to this. The kind of technology that was licensed for a million dollars and required you to pay a back-end percentage of royalties, which is still the business model today in the AAA game space, is really what we were coming out against with the Torque game engine. Then we actually came to the next pace, which was to get a community of people together that were like-minded that would actually collaborate together.

Today we can claim 100,000 members in our community and 45,000 active game developers actually working inside our environment, actually solving solutions to shared game design issues that otherwise you'd have to have a very, very large team in order to compete with. And the third thing that we had to do was actually have a good go-to-market strategy.

Today we're shipping eight successful OS X titles, one of them that comes on every Mac that's shipped in the consumer channel today. So we feel like we've gotten on the right track. We feel like we've gotten a long ways. But right now with OS X 1.4, or with Tiger, we feel like we're at the very cusp of actually breaking through into where innovation can happen.

So I want to talk a little bit about the technology that we came to. And I just, real quickly, how many people have ever heard of garage games or the Torque game engine in this room? Okay, so from the show of hands, how many people actually own one of our platforms, one of our engines? So we've got about a 10% market penetration in the room, it looks like.

Maybe 15. We want everybody to have access to this. We want to democratize the technology. Now this is not technology that's easy to learn. We've got students graduating this year from colleges all across the planet, where about a thousand of them will have been in Torque for about two years, and about another 500 to a thousand have been in Torque for about two terms.

But it's about an 18-month learning cycle to get completely up to speed. And what we're doing is actually breaking down those barriers and making it easy for them to get to the top of the world. And we're making it easier to access. And probably the title that I'm most excited about and we're talking about lately is our Torque 2D technology that allows you to understand how to build a game quickly in a 2D environment with state-of-the-art physics, state-of-the-art actual collision systems, as well as using 3D rendering in a 2D environment. But the Torque game engine stands alone.

Its source is available. So you actually get to be able to build a game. You can actually make your game and customize it the way you want. And rather than talking about a lot of these things, let me go ahead and show you just a quick trailer-type demonstration of the Torque game engine. If I could see demo two.

So here we've got the Warzone demo, which is our 1.4 implementation of the Torque game engine. And in this, you're going to see just a brief highlight of some of the core features inside of the Torque game engine. I do a one-day demonstration of the Torque game engine that's about a 45,000 foot level overview of our technology. We're going to do that in just a couple of minutes here.

So here you've got the real-time scene basically showing our cube map skyboxes. You're going to see flying over here a A moving vehicle where we've actually used the volumetric lighting and particle effects to create an immersive environment here. That was rigid body physics that blew the barrel down on top of us. You'll see that here we've got... Connected to this, an ability to mount particle and volumetric lighting to the actual object.

Running through here, we've got the computer-driven AI, actually with just giving them a destination and targets for the weapons. So you're actually getting a real immersive space with computer-generated bots that you're playing against. The tracer fire is guided by our customizable projectile system. So we have both the particle engine as well as a projectile system built into the engine.

This scene is going to demonstrate what we're known for, which is seamless interior and exterior fly-through, so that you've got portalization, you've got as good a quality input on the visual distance as any engine on the market, so you've got long visual distance on the terrain. We use a level of detail manager, which allows your game to have efficient rendering.

Here you're going to see the rigid body physics working integrated. One of the things that differentiates the Torque game engine from every other engine on the planet, it was built on the Starseeds tribes base of technology, and we have the most efficient net code, allowing for the most people to play against each other online in the same space with the lowest lag.

Tim Schaaff, Jay Moore And that's something that is a built-in play mechanic, but also allows for you to create a real immersive multiplayer game space, whether it be a card game or whether it be a first-person shooter. Tim Schaaff, Jay Moore Now this is going to showcase ragdoll animation.

We're actually using this to be able to have real efficient net code use. So we use an animation as well as a physics engine for getting that effect. Now you've got a lot of weather, and we're using AI pathing on this. The vehicle physics are actually built into the engine, and right now you're seeing the terrain. We've got a full terrain editor built into the engine as well.

So there's literally 18 different modules to our engine that you actually are going in from lighting to mission editing to control of the terrain as well. So that's just a brief highlight of the Torque game engine. Available instead of for a million dollars, for $100 to anybody who makes less than $250,000 a year. We've literally got tens of thousands of developers working inside of Torque. There's 2,500 active projects being worked on in Torque today.

100 of those will probably become commercial projects. 50 of those we'll bring to market over the next five years. And actually OS X now represents 60% of our game sales to date, and that's showing you that there's an active market and a great growing opportunity on OS X.

And if you guys want to find out more, catch Jay after the session and talk to him, because he's got a lot of resources for game development. So the last section here I'd like to talk about is what I call Mac OS X game best practices. And these are a lot of little things you can do in your game to enhance the Mac user experience. The first one is sort of obvious.

I mentioned it before. Use the tools. I mean, obviously with the processor transition, again, very important. Another thing that's true about the tools is that since it's all Unix and GCC under the hood, you can actually use Xcode as a development environment, but then have a nice cross-platform make-file strategy that you can build in other environments as well. So the fact that it's layered on top of Unix, some people have found really interesting.

The next thing, support our displays at their native resolution. I mean, if you see a game running at full res on a cinema display, it's just jaw-dropping. And a lot of games tend to switch into lower resolutions, or they don't understand the native resolution of the display. And the thing about LCD technology is that when it's not running native, it looks really bad because it's a digital device, so it really only has one pixel, unlike a CRT where the signal is analog on the actual glass. So it's real important to support our displays at a native resolution. It's just going to make your games look the best they can.

The other thing, use home directories. A lot of games have tended to install things like save games in the folder where the game is. People, you know, reinstall or update and they lose all of their stuff. Put preferences in the per-user places. And make sure that your game's compatible with fast user switching because that's another important thing.

So per-user data, per-player data should always go somewhere in the user's home directory. Important thing. Next one, package your application. I mean, how many applications have you seen that look like this? You know, and Mac users, 8.3 file names, I mean, come on. This is, of course, a fictitious example. This is no one's game, actually.

So we have great packaging technology in the OS. So here's that game all wrapped up into one double-clickable thing. Obviously, you know, I know a lot of you guys have done this already, but I think it's real important. Drag installs. Again, if you package your app, you can just drag it from me to you. And you can just drag the media onto the disk and it'll just work. And the same thing the user drags on to install is the thing they drag on to play.

or thing they click on when they want to play. Another thing is smart patches and updates. So first when you're installing, you know, avoid compressing the compressed. You know, that's not--it's a waste of everyone's time and usually a waste of disk space too. And zip inside stuff inside tar, inside DMG, inside--you know.

It's like, you know, a Russian doll game to try to get at the actual content. And the other thing is, you know, sometimes people have done things like multi-step updates. If you have to upgrade a game, you know, obviously, the media is huge to begin with, so you don't send the whole thing out.

You send out a little update. Then there's a readme file saying, "Put this thing over in system library and this thing, and you're ready to go." And, you know, if the user makes one mistake, his game has got to reinstall from scratch. So obviously use the computer to compute so it knows where to put things. That would be a great thing.

So create smart downloads. This is another technology that we have in the OS. You see Safari use this for-- it has automatically Internet-enabled disk images, so when it sees DMG come down, it can unpack it, put up the appropriate user interface, and automatically clean up after itself when it's done. So there's a great tech note on this that's in Xcode of how to distribute software using Internet-enabled disk images, so check that out.

Next thing is integrating with .Mac. This is something we've started where you can use .Mac as a kind of storage place to hold, you know, game ladders and rankings, high scores, things like that. There's an SDK for .Mac, the 2.0 version, which you can go hear about later today, but that's a really interesting opportunity. In fact, the Sims has a, you know, place to go save your Sim on .Mac, and so it's really pretty cool. And with that, I'd like to bring Tim back up for some thoughts and take us through the rest of the presentation. Thanks, Tim. Thanks, Peter.

Okay, so we've covered some of the key technologies that Apple produces and some very interesting new technologies that are coming from the third-party community to help support creating some great games for Mac OS X. But of course, there's more to getting a game into the market then and having success with that than simply writing the game. Now that's a lot of work, of course, and that's the focus of most of what we're talking about here.

But I want to touch on a few of the other things that are relevant. You know, great games end up living within a community of engaged users, and having a successful gaming business requires an intelligent approach to getting to market. In terms of the resources that Apple can provide to help you kind of get your game going and learn about what's going on and then market it, I think it's a great way to get a game going. And then market that game and develop, help you build a community around your titles. There's several things you can do. First of all, we've got this resource where we post game trailers on apple.com/games.

Number one game trailer site. It gets a tremendous amount of traffic. In addition, every week we send out emails, HTML-style emails to about 8 million customers covering all kinds of different topics. And then we have a lot of news about Apple and QuickTime. And we often build into these communications information about interesting developments in the world of gaming. And so this is a great resource.

If you've got some information, you've got some ideas, come talk to us and we'll see what we can do there. And then of course there's the Apple Start page, which draws people in and often directs them into interesting parts of the website that talk about issues of importance to the gamers. And the last one is in the corner.

We've got a quicktime player. We've actually got a little content guide that comes up whenever you launch the player. And we use that a lot to promote music or video events that are coming up. We also often use it to talk about interesting things that are happening in the world of games.

Now beyond that, for the development community and for the kind of the business community, we've got this website at developer.apple.com that's focused on kind of a clearinghouse for, gaming information and resources and things like that that can help you figure out what do I need to do to develop a game, how do I get that game to market, and you know, just a bunch of good information resources. So you should check that one out for sure.

And then lastly, there is a tremendous amount of information and sort of community resources out on the web that can be very useful for you as you're trying to get your game into the market. Have it become known within the community. And so you should definitely check these things out as well. They're very, very useful.

Now, I'm not going to spend a lot of time today talking about the real detailed aspects of how Apple can help you get your game into the market, but I want you to understand that we have a lot going on at Apple to help support game developers. And this afternoon in this room, Kristy Wyatt from the developer relations team is going to be here, and she's going to give you a real detailed look at some of the things that Apple can do to help you with your titles once you've got the technology done. And I think if you're in the business of games, this is a very important session to come and see. You'll learn a lot about what's up with Apple.

[Transcript missing]