8 ms·
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
by seanalltogether 15y ago
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.js http://chrome.angrybirds.com/angrybirds/angrybirds.nocache.j...
http://chrome.angrybirds.com/angrybirds/10C85AF6734FAE7AFB4C2822A45A883B.cache.html http://chrome.angrybirds.com/angrybirds/10C85AF6734FAE7AFB4C...
http://chrome.angrybirds.com/angrybirds/3C8E31D1DD3333197B714712576C7FFA.cache.html http://chrome.angrybirds.com/angrybirds/3C8E31D1DD3333197B71...
http://chrome.angrybirds.com/angrybirds/0E4E6E6C7B52064E8C51988DA10DE399.cache.html http://chrome.angrybirds.com/angrybirds/0E4E6E6C7B52064E8C51...
http://chrome.angrybirds.com/angrybirds/F94722960223E26D4BB6053F32532BD8.cache.html http://chrome.angrybirds.com/angrybirds/F94722960223E26D4BB6...
http://chrome.angrybirds.com/angrybirds/09F8D37830DE81BA93CE98D1406F19AD.cache.html http://chrome.angrybirds.com/angrybirds/09F8D37830DE81BA93CE...
http://chrome.angrybirds.com/angrybirds/0B93D95B5E595879D28EE9CA28E135D9.cache.html 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 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_BIRDS_PIGS.png http://chrome.angrybirds.com/angrybirds/sprite_sheets/INGAME...
- msy 15y agoAnd we all laughed when RMS warned us about obfuscation in web apps.
- mmastrac 15y agoThis 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/compile.html http://code.google.com/webtoolkit/doc/latest/tutorial/compil...
- seanalltogether 15y agoThanks 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.
- mmastrac 15y agoRay Cromwell and Philip Rogers are doing a talk on this very topic: http://www.google.com/events/io/2011/sessions/kick-ass-game-programming-with-google-web-toolkit.html 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.
- wzdd 15y agoThe levels look like a straight translation of the Lua level data into JSON, which is kind of cool.