Google I/O 2010 - Native Client, Unity, & Chrome Web Store
Game developer related portions of the Google I/O 2010 Day 1 keynote, including information on Unity, Native Client, and the Chrome Web Store.
Recently, I joined Google, where I'm the developer advocate for games. I've used this Gamasutra blog in the past to focus on game engines and middleware, and I'm planning to continue doing just that. In this post I'm going to talk a little about the work we've been doing with the team at Unity Technologies.
This week in San Francisco is Google I/O, the annual conference to get together and talk about all things Googley. There are over 5000 people attending for the two days, making Moscone West the temporary center of the Google developer universe. (Moscone Center is also where the annual Game Developers Conference is held.)
One thing that I've been pleasantly surprised by since joining Google is how focused on developers the company is. A friend of mine pointed out that when you live in Silicon Valley, you feel catered to as a developer - even the billboards on Highway 101 are targeted at developers. At Google, that feels amped up to another level. The company cafe I frequent has areas labelled "I18N" and "cd ~", for international foods, and homestyle foods. That may be a corny example, but this developer focus pervades the company. Making it as easy as possible for developers to work with Google technologies ultimately serves to benefit the users of the resulting applications.
At Google I/O this week, conference attendees are starting to see how Google's developer focus can manifest in the game development space. During the keynote Wednesday morning, Sundar Pichai, VP Product Management at Google, showed off Lego Star Wars, a Unity game developed by Three Melons (now part of Playdom).
The version shown in the keynote was the browser plugin version, due to issues with the presentation computer, but Lego Star Wars is now up and running in the Chrome browser via Native Client. Native Client will allow C++-based code to run securely inside the Chrome browser, enabling high-performance computing, 3D graphics, real-time interactivity... well, you know, I immediately just want to use it for games, so that's what I'm thinking about, but I'm sure other people will use it for other interesting compute-intensive tasks. :-)
Of course, Unity running inside the browser is nothing new - Unity has run in the browser via an installable plugin since 2006. But Native Client integrated into Chrome allows Unity games to run in the Chrome browser - on any operating system supported by Chrome - with no plugin required. Moreover, Unity also targets Android, making it a development solution that spans from small screen mobile games to large screen web-based games with a minimal amount of re-coding effort.
The team at Unity has been great to work with - they have a very similar philosophy to Google around empowering developers. Unity recognizes that the wider the reach of their platform, the more valuable the technology is to game developers. It's valuable for indy developers, who are trying to reach the largest audience possible with a tight budget, as well as large studios, who are trying to keep down development costs so they can outshine their competition and produce the best big-budget blockbuster that they can.
The Lego Star Wars game was shown in the context of the Chrome Web Store, an open marketplace for distributing web-based applications that will run in the browser. PopCap's Plants vs Zombies (a Flash-based game) was also shown in an example of purchasing a game via the Web Store. Just as it's important for game developers to have accessible cross-platform tools such as Unity and Flash, it's important for them to be able to easily reach an audience, to be able to distribute their games without too much pain. With Android Market and soon Chrome Web Store, Google will offer the ability to distribute - and even sell - games, from mobile to web.
Of course this is just the beginning for Native Client, and for the Web Store. I'm looking forward to seeing other game engines and libraries running inside the browser, and I'm thinking about porting over some of that old Game Programming Gems sample code to put into an online game programming tutorial. Why not? I think an open platform, plus an open marketplace for applications, plus high-quality tools for game developers, will result in a vibrant ecosystem for games and game developers. I'm looking forward to seeing what other game developers will create!
If you're interested to learn more, you can check out the Native Client SDK, or watch the relevant portion of the keynote (jump to about halfway through).