Moving on from Google

Thanks!

This past Monday, I left Google. There are a lot of very interesting things going on at Google right now, and I enjoyed working with many of the people there, but it was not the perfect fit for me. I’m looking forward to my next adventure.

One of those things Google is working on that I do think is particularly great is Native Client. Opening up the web so that you can readily use languages other than HTML/JS and ActionScript is a really big deal. I hope that other browser providers will also adopt Native Client – it is open source after all! The web feels like it is blossoming open with this next wave of technologies, moving past its history as a markup language wrapped around text and toward a fully interactive platform for applications.

I’m really proud of the coverage we got this past week at GDC Europe about the Chrome Web Store. The idea of running apps in a browser is still controversial to some, but using the Chrome dev channel build with apps enabled I’ve quickly gotten used to the workflow and find myself spending more and more time in the browser. I still work on the desktop for larger apps, but for those apps which have a lot of the same needs as the browser, it just makes a lot of sense to have them live there.

For game developers, I’m looking forward to the day where we see more games running in the cloud, like Farmville and World of Warcraft do now, and it is easy for developers to create clients on multiple platforms so I can bring my game with me no matter where I am. As game developers we’ve talked about the idea of making multiple-platform game access simpler for a long time – trans-platform play where the experiences may be different, as opposed to cross-platform play where the experiences are the same – and it should be easier for developers to create clients for web, mobile and desktop without needing to write them in completely different languages or using vastly different SDKs. Microsoft is closest to this with XNA and Silverlight across multiple platforms; Apple’s SDKs across iPhone, iPad and Mac OSX are pretty cleverly designed as well; and Google is approaching it with Android NDK and Chrome Native Client. The increasing use of web services can abstract away a lot of the need for platform-specific SDK features, but there’s still a lot of work to do all around. Games aren’t getting cheaper to make, that’s for sure, and it’s important that technically complex features are still easily available to independent developers working alone.

Game engines and middleware are only getting better and better, and make increasing sense to use to bridge all these gaps. But the costs can be difficult to bear for indies, and there are also the different market systems, social graphs, and platform tech requirements to deal with… it’s clear there are still a lot of problems for the game industry to solve to make things easier for small developers. Which is good, because we all don’t like being bored. :) I’m going to continue studying and talking about the game technology space in this blog and occasionally on my Gamasutra expert blog, as always.

Lastly I want to apologize to those of you I haven’t kept in good touch with these past few months. A lot of people reached out to me during my time at Google, and I’ve been pretty lousy at replying back or staying in touch due to how busy I was. Sorry about that! I’ve found that increasingly my inbox overwhelms my ability to get work done, so I hope to do more tweeting and blogging in the future to help with that, a lesson I’ve learned from the very wise and publicĀ Robert Scoble.

I’m looking forward to sharing with you what I’m up to next!

Gamescom 2010 30second circles

One of the things I really like doing at places that seem unusual to me is to take quick 30 second video circles of them. It’s hard to capture the complete feel of a place with simple pictures, or a straight video shot. These circles help a bit. They still aren’t the perfect thing, but they’re closer. At Gamescom in Cologne, Germany this past week, I took three 30 second circles in different places inside of the expo halls. That show is SO massive. It’s a multiplier on top of E3, that’s for sure, and having the games fans from the public attending makes it so much more energized. I had a great time checking out the show and seeing my friends show off their games.

Here are my three 30 second circles from Gamescom.

Sharing video game history

Scott Steinberg’s article on CNN.com this morning got me thinking. Not about museums per se, but making historic games available for people to play and study.

However, let me first get something off my chest about video game museums. I’m really happy that some museums are sprouting up, and I’m a big fan of the International Center for the History of Electronic Games. But I really wish we had a video game museum in the San Francisco Bay area, which was the home of Atari. What better place?

We do have the Musee Mecanique, which is fantastic and specializes in early-1900s games. We also have the Pacific Pinball Museum, which you could say specializes in 1940-1980 games. What about 1980-2010 games? Arcade games? PC games? Console games? Where will people go to see these?

About a year ago I got together with a group of local folks with the same interest and we had a chat about the idea of starting up a local video game museum, but we’re all very busy and it was difficult to keep the momentum going. I still think about it a lot though.

However, there is one thing I’m spending a lot of time thinking about at work lately, and that’s Native Client, the sandbox for running compiled code inside of the Chrome web browser. Having compiled C++ games able to run in the browser is something I get very excited about. It makes me wonder – would it be possible to get some of these old games running in the browser via MAME? That could really lower the barrier to playing some of the historic older games… although admittedly nothing is quite like the experience of playing them on the original hardware.

I wonder, would it be interesting to emulate the old tools as well? I’m inspired by people creating new games for the Atari 2600, like Ed Fries’ Halo 2600 and Ian Bogost’s Guru Meditation. To me it would be very interesting to see what the experience was like of creating games for the Atari 2600 or Intellivision “back in the day”.

I’m going to do some playing around and see what I can get to work. Native Client is still fairly young, and under rapid development. But it could wind up being a wonderful way to share the love of historic video games with others.

The demise of the term “social game”

Paul Hyman’s article on Gamasutra this morning was timely, as I’ve been thinking a lot about the term “social game” lately and what it actually means. Increasingly its usefulness as a descriptor is over.

Five or ten years ago we all talked about “online games”. When I ran developer relations at Sony I remember giving a lot of talks about the PS2 network adaptor, talking to our middleware partners about supporting online features, and working with developers to implement multiplayer online gameplay. Nowadays, we don’t talk about “online games” at all – that’s because ALL games have online features. The term “online game” has been deprecated, by and large.

The same thing is happening now with the term “social game”. Right now in the popular consicousness “social game” really means “Facebook casual game with social graph features”. But there are a lot of social graphs available now from other social network platforms such as Hi5 and RenRen. Apple (Game Center), ngmoco (Plus+) and Aurora Feint (OpenFeint) are examples of just a few of the social graphs available to developers on iOS. Xbox Live and the PlayStation Network of course have had social graphs inside their walled gardens for quite some time. So are games on mobile and core (console) game platforms that use social graphs “social games”? No one uses that term at the moment – so why do people use the term for casual titles?

As the game industry continues to evolve, “social game” will die out as well. Why? Because ALL games will connect to a social graph. That’s practically true already! It’s only a question of which social graph they will connect with, and how you will manage that as a player. And then, as a developer, finding an easy way to give the player control over that access.

At the moment, most developers I talk with seem to be abstracting away social graph API calls, in a similar way that one might abstract away rendering calls so that your game can run successfully using either DirectX or OpenGL. These kind of abstractions are never optimal, there’s always some slop involved when you try to determine the minimal set among multiple platforms and yet still allow your game code access to platform-specific features. But the time for arguing about whether or not to include social network access in your game is over: the answer is yes. Now, how to do it?

Rockin’ some web tech

Lately I seem to refer to myself a lot as “old-school” when it comes to talking about tech. I don’t feel too old-school in the game industry, but when it comes to web tech I definitely am. I can rock some PHP and MySQL, sure, but when it comes to web apps what I really want to use is C++. Because it’s the language I know best.

At Casual Connect this week I went out on a limb and asserted that C++ would be the next great language for the web. And why not? There are so many people out there who know C++, and have code they’ve written in it over the years – why shouldn’t these folks be able to leverage their expertise? I don’t think HTML5, Flash or Java are going anywhere, but enabling C++ on the web is a really interesting thing.

Of course, we’re going down that road with the development of Native Client for Chrome. The idea is that you recompile your code using a GCC-based compiler that produced sanitized executables, and then the code runs in a multi-layer sandbox that provides high performance and access to hardware acceleration through libraries like OpenGL ES 2.0. I’m pretty excited about the possibilities… and I’m looking forward to hooking it into all sorts of “new-school” JavaScript APIs to take advantage of what the web has to offer.

I think the combination may be hard to beat – hardware acceleration and access to web APIs. FTW!

Now I better get back to work – lots to do. :)