Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I fired up Charles to try and dissect the source but it's a giant pile of obfuscation. Here is everything I could see with executable code. They must be pumping different sections of the game into individual iframes since there are 6 separate html files that mostly have the same code.

http://chrome.angrybirds.com/angrybirds/angrybirds.nocache.j...

http://chrome.angrybirds.com/angrybirds/10C85AF6734FAE7AFB4C...

http://chrome.angrybirds.com/angrybirds/3C8E31D1DD3333197B71...

http://chrome.angrybirds.com/angrybirds/0E4E6E6C7B52064E8C51...

http://chrome.angrybirds.com/angrybirds/F94722960223E26D4BB6...

http://chrome.angrybirds.com/angrybirds/09F8D37830DE81BA93CE...

http://chrome.angrybirds.com/angrybirds/0B93D95B5E595879D28E...

And all of the levels are listed out with the following pattern

http://chrome.angrybirds.com/angrybirds/json/Level1.json

The spritesheet assets are actually larger then they appear in game, however the scaling still looks really good in the final output, I'm surprised how smooth the game ran. http://chrome.angrybirds.com/angrybirds/sprite_sheets/INGAME...



This is standard GWT practice. Each of those files is a different browser permutation. It'll have different code for certain functions depending on which environment was loaded (likely IE, Gecko, early Gecko, WebKit, Opera).

Here's a little more info on it:

http://code.google.com/webtoolkit/doc/latest/tutorial/compil...


Thanks for that explanation. I really wish I could parse through this code, I'd love to understand how to do 2d games inside webgl and the performance differences between the normal canvas drawing functions and the webgl ones.


Ray Cromwell and Philip Rogers are doing a talk on this very topic:

http://www.google.com/events/io/2011/sessions/kick-ass-game-...

Philip Rogers has a Chrome credit on the new Angry Birds game. The talk should be up on YouTube within a few days.


And we all laughed when RMS warned us about obfuscation in web apps.


The levels look like a straight translation of the Lua level data into JSON, which is kind of cool.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: