Skip to main content
  1. Projects/

Angry Birds

After releasing the Quake II port, we were approached by the Chrome DevRel team, who were discussing working with Rovio to get Angry Birds running directly in Chrome. It was a much simpler game, but it’s also worth noting that shiny new browser features like WebGL weren’t widely available yet, so we had to find a way to make it work across the browsers commonly found in the real world.

This meant creating an abstraction layer across all of WebGL, <canvas>, and even simple HTML <image> elements with affine transforms, which turned out to dramatically outperform canvas on some browsers at the time. The result was a GWT library we called “PlayN” for implementing casual games. Rovio was porting from their existing ActionScript implementation, so this proved a fairly direct transliteration for the most part.

The resulting implementation worked quite well all things considered, and Rovio announced it during the Google IO 2011 keynote.

Photograph of Angry Birds at Google IO 2011
Peter Vesterbacka demoing Angry Birds on Chrome at Google IO 2011

Unfortunately, they seem to have decided to stop maintaining it at some point, and the original link no longer works. Still, it was a fun project to work on, and it did take us one small step further towards commercially successful games running directly in the browser.

Here are a couple of very old presentations I did at the time: