Look, guys! Mason is using Google+ for something! I've decided I need a place for long-form musings. So. Here we go.
The 23 Second Update
As many of my friends and colleagues already know, in January I left Amazon and joined a new (as in newly formed, as in startup) company, Massively Fun.
At MF, we're a bunch of web nerds.
We're web nerds, building online games. It's an interesting combination.
Some Initial Confusion
I have zero experience in the games industry. (Don't ask me how I got this job; I have no idea.) Before joining Massively Fun, I was an engineer on the S3 team at Amazon Web Services, where I worked on everything from [secret project] to [other secret project] to [that other, other secret project]. I've certainly formed opinions about how software should/services be written, maintained, and scaled. What I don't know is if any of this is in line with (what I can only refer to as) mainstream game development practices.
Why? Because the games industry - from their development practices and methodologies to their software stacks and hardware infrastructure - seems to be shrowded in a cloud of mystery. I'm sure a large amount of what I've picked up over the years applies; best practices are best practices for a reason. Still, the proprietary secret-sauce - the juicy goodness that really helps make or break a game in terms of success - is tapped out behind locked doors by largely anonymous engineers. And rightly so, perhaps. The product of all those man-hours is a huge amount of highly valuable intellectual property.
But it still kind of sucks. As someone new to this industry, it's confusing. As someone who learned most everything he knows from books and blogs written by amateurs and industry experts alike, it's foreign.
We're web nerds. We're web nerds, building online games. And I think we can do it better.
We come from backgrounds where sharing useful information, whether in the form of a blog post, Ruby gem, or RFC, contributes to the acquisition of social currency within the group. The natural consequence of this is obvious: when the system encourages sharing and collaboration, the system experiences progressive - sometimes disruptive - advancement. It becomes an active conversation, where the best is kept and the rest is abandoned (or, at the very least, abstracted away to the point where you don't have to think about it). It's just... better.
HTML5 (and related technologies) presents a huge opportunity for anyone who has wanted to make rich, interactive experiences, yet never picked up the skills necessary to use the more mainstream, proprietary technologies of yesteryear (i.e., Flash/ActionScript or Silverlight). For years, we've been playing catch-up. Building RIAs or online games without Flash or Silverlight or Java has involved cobbling together an ensemble of things that almost do the job, and then abusing them until they do. That's the hacker way, after all - finding a clever solution given the tools at hand.
The more I play with these shiny new features, the more I keep thinking to myself, "Hey, it's almost like someone finally realized this Internet thing is pretty important, and decided to give the dudes who write content for it some real tools." Byte arrays? Yes please. Audio and video APIs? Local storage? Canvas? Hardware accelerated rendering? I look at this list and at the things my company is building with them, and wonder how we did anything before they came along.
I have some incredibly exciting things to share with you. Soon. Unfortunately, none of us are allowed to talk about them quite yet (somewhat clashing with the entire mood of this post). Those of you who have played WordSquared have some idea of the types of games Massively Fun puts out, and our upcoming projects are no different: they're massively multiplayer, insanely addictive, and ridiculously beautiful. (No, really. The stuff our artists bang out brings forth tears of joy and anticipation.)