{"author_link":"\/author\/sos\/","author_name":"Sos","author_uid":"1405","comments":[{"author_name":"LegacyCrono","author_uid":"3093","time":"Aug 1, 2011 @ 12:16pm","epoch":1312200660,"text":"Pew pew! Bonus points for making it fit in an URL! :D"},{"author_name":"Folis","author_uid":"2494","time":"Aug 1, 2011 @ 12:27pm","epoch":1312201320,"text":"The game which was made to live as an URL!\r<br\/>\r<br\/>Sos, you amaze me!\r<br\/>\r<br\/>Also I loved the effects you could create with the beam!"},{"author_name":"jonbro","author_uid":"1187","time":"Aug 1, 2011 @ 3:23pm","epoch":1312211880,"text":"whoa dude! this is some amazing size coding! are you going to post the source at some point? I would love to see how you did it."},{"author_name":"Sos","author_uid":"1405","time":"Aug 1, 2011 @ 7:38pm","epoch":1312227180,"text":"package \r<br\/>{\r<br\/>\timport flash.display.Sprite;\r<br\/>\timport flash.events.Event;\r<br\/>\timport flash.events.KeyboardEvent;\r<br\/>\t\r<br\/>\t\/**\r<br\/>\t * ...\r<br\/>\t * @author Sos\r<br\/>\t *\/\r<br\/>\tpublic class M extends Sprite \r<br\/>\t{\r<br\/>\t\t\r<br\/>\t\tpublic function M():void \r<br\/>\t\t{\r<br\/>\t\t\tif (stage) i();\r<br\/>\t\t\telse addEventListener(Event.ADDED_TO_STAGE, i);\r<br\/>\t\t\t\r<br\/>\t\t\t\r<br\/>\t\t\t\r<br\/>\t\t}\r<br\/>\t\t\r<br\/>\t\tprivate function i(e:Event = null):void \r<br\/>\t\t{\r<br\/>\t\t\tremoveEventListener(Event.ADDED_TO_STAGE, init);\r<br\/>\t\t\t\/\/ entry point\r<br\/>\t\t\tstage.addEventListener (KeyboardEvent.KEY_DOWN, a);\r<br\/>\t\t\tstage.addEventListener (KeyboardEvent.KEY_UP, b);\r<br\/>\t\t\taddEventListener(Event.ENTER_FRAME, c);\r<br\/>\t\t\tstage.addChild(new B(0, 0, 320, 400, 0));\r<br\/>\t\t\t\r<br\/>\t\t}\r<br\/>\t\tpublic function a (e:KeyboardEvent):void \r<br\/>\t\t{ \r<br\/>\t\t\t\/*\r<br\/>\t\t\ttrace(\r<br\/>\t\t\t&quot;Key code: &quot; + e.keyCode + &quot;\\n&quot; +\r<br\/>\t\t\t&quot;Ctrl status: &quot; + e.ctrlKey + &quot;\\n&quot; +\r<br\/>\t\t\t&quot;Key location: &quot; + e.keyLocation + &quot;\\n&quot; +\r<br\/>\t\t\t&quot;Shift key: &quot; + e.shiftKey + &quot;\\n&quot;);\r<br\/>\t\t\t*\/\r<br\/>\t\t\tif (e.keyCode == 38) B.k |= 1;\r<br\/>\t\t\tif (e.keyCode == 40) B.k |= 2;\r<br\/>\t\t\tif (e.keyCode == 37) B.k |= 4;\r<br\/>\t\t\tif (e.keyCode == 39) B.k |= 8;\r<br\/>\t\t\tif (e.keyCode == 32) B.k |= 16;\r<br\/>\t\t\t\/\/if (e.keyCode == 88) B.k |= 32;\r<br\/>\t\t}\r<br\/> \r<br\/>\t\tpublic function b (e:KeyboardEvent):void \r<br\/>\t\t{\r<br\/>\t\t\t\/\/trace(&quot;Key code: &quot; + e.keyCode);\r<br\/>\t\t\t\r<br\/>\t\t\tif (e.keyCode == 38) B.k &amp;= ~1;\r<br\/>\t\t\tif (e.keyCode == 40) B.k &amp;= ~2;\r<br\/>\t\t\tif (e.keyCode == 37) B.k &amp;= ~4;\r<br\/>\t\t\tif (e.keyCode == 39) B.k &amp;= ~8;\r<br\/>\t\t\tif (e.keyCode == 32) B.k &amp;= ~16;\r<br\/>\t\t\t\r<br\/>\t\t\t\/\/B.k = 0;\r<br\/>\t\t\t\/\/if (e.keyCode == 88) B.k &amp;= ~32;\r<br\/>\t\t}\r<br\/>\t\t\r<br\/>\t\tpublic function c(e:Event):void \r<br\/>\t\t{\r<br\/>\t\t\tif (Math.random() &lt; .1) addChild(new B(1, 0, Math.random() * 640, 20));\r<br\/>\t\t\t\/\/trace(&quot;update&quot;);\r<br\/>\t\t}\r<br\/>\t}\r<br\/>\t\r<br\/>}\r<br\/>\r<br\/>import flash.display.Shape;\r<br\/>import flash.events.Event;\r<br\/>import flash.geom.Point;\r<br\/>\r<br\/>class B extends Shape\r<br\/>{\r<br\/>\t\/\/ bits:\r<br\/>\t\/\/ 0x|------||------||------||------|\r<br\/>\t\/\/ 0xvvxxxxxxvvyyyyyyllllllllwwwwmmtt\r<br\/>\t\/\/ mmtt -- mark and type\r<br\/>\t\/\/ wwll -- wparam (4bit) and lparam (8bit)\r<br\/>\t\/\/ vvxxvvyy -- velocity and position\r<br\/>\t\/\/\r<br\/>\t\/\/ MARKS AND TYPES\r<br\/>\t\/\/ 00 - player\r<br\/>\t\/\/  * 00 - normal\r<br\/>\t\/\/  * 01 - powerupped\r<br\/>\t\/\/  * 10 - more powerupped\r<br\/>\t\/\/  * 11 - invurnelable\r<br\/>\t\/\/ 01 - enemy\r<br\/>\t\/\/  * 00 - normal\r<br\/>\t\/\/  * 01 - big\r<br\/>\t\/\/  * 10 - fast\r<br\/>\t\/\/  * 11 - boss\r<br\/>\t\/\/ 10 - bullet\r<br\/>\t\/\/  * 00 - player's\r<br\/>\t\/\/  * 01 - enemy's\r<br\/>\t\/\/  * 10 - player's big\r<br\/>\t\/\/  * 11 - enemy's big\r<br\/>\t\/\/ 11 - background\r<br\/>\t\/\/  * 00 - star\r<br\/>\t\/\/  * 01 - explosion particle\r<br\/>\t\/\/  * 10 - trail\r<br\/>\t\/\/  * 11 - ???\r<br\/>\t\/\/\r<br\/>\tpublic static var k:uint = 0;\r<br\/>\tprivate var o:uint;\r<br\/>\tpublic function B(\r<br\/>\t\tt:uint, \/\/ type\r<br\/>\t\tm:uint, \/\/ mark\r<br\/>\t\tx:uint, \/\/ x\r<br\/>\t\ty:uint, \/\/ y\r<br\/>\t\tp:uint=0) \/\/ param\r<br\/>\t{\r<br\/>\t\t\/*\r<br\/>\t\tthis.graphics.lineStyle(1,0x800000);\r<br\/>\t\tif (t == 0)\r<br\/>\t\t{\r<br\/>\t\t\tthis.graphics.lineStyle(3,0x00ff00);\r<br\/>\t\t\tthis.graphics.beginFill(0x0000FF);\r<br\/>\t\t\tthis.graphics.drawRect(0,0,10,10);\r<br\/>\t\t\tthis.graphics.endFill();\r<br\/>\t\t} else if (t == 1){\r<br\/>\t\t\t\r<br\/>\t\t\tthis.graphics.beginFill(0xff0000);\r<br\/>\t\t\tthis.graphics.drawRect(0,0,16,16);\r<br\/>\t\t\tthis.graphics.endFill();\r<br\/>\t\t\t\r<br\/>\t\t} else if (t == 2){\r<br\/>\t\t\tthis.graphics.lineStyle(0,0x808000);\r<br\/>\t\t\tthis.graphics.beginFill(0xffff00);\r<br\/>\t\t\tthis.graphics.drawRect(0,0,2,5);\r<br\/>\t\t\tthis.graphics.endFill();\r<br\/>\t\t\t\r<br\/>\t\t}\r<br\/>\t\t*\/\r<br\/>\t\tif ((o &amp; 15) &lt; 3)\r<br\/>\t\t{\r<br\/>\t\tthis.graphics.lineStyle(t+1, t==1 ? r(0xffffff) :(0xff &lt;&lt; t));\r<br\/>\t\tthis.graphics.beginFill((0x80 &lt;&lt; t));\r<br\/>\t\tthis.graphics.drawRect(0, 0, t == 2 ? 3 : 16, t == 2 ? 3 : 16);\r<br\/>\t\to = t;\r<br\/>\t\t} else if ((o &amp; 15) == 3)\r<br\/>\t\t{\r<br\/>\t\t\tthis.graphics.beginFill(r(0xffffff));\r<br\/>\t\t\tthis.graphics.drawRect(0, 0, 3, 10);\r<br\/>\t\t\to = (t &amp; 0xf) | (m &lt;&lt; 8) | (p &lt;&lt; 16) | (0x40&lt;&lt;24);\r<br\/>\t\t}\r<br\/>\t\t\r<br\/>\t\tthis.x = x;\r<br\/>\t\tthis.y = y;\r<br\/>\t\taddEventListener(Event.ENTER_FRAME,u);\r<br\/>\t}\r<br\/>\t\r<br\/>\tpublic function g():void {\r<br\/>\t\tfor (var c:uint = 0; c &lt; 10; c++) parent.addChild(new B(3, r(0xff), x, y,r(0xff) ));\r<br\/>\t\tremoveEventListener(Event.ENTER_FRAME, u); \r<br\/>\t\tparent.removeChild(this);\r<br\/>\t}\r<br\/>\tpublic static function r(i:uint):uint\r<br\/>\t{\r<br\/>\t\treturn Math.random() * i;\r<br\/>\t}\r<br\/>\tpublic function u(e:Event):void \r<br\/>\t{\r<br\/>\t\tfor each (var b:B in parent.getObjectsUnderPoint(new Point(x, y)))\r<br\/>\t\t{\r<br\/>\t\t\tif ((o&amp;15)==2)\r<br\/>\t\t\t{\r<br\/>\t\t\t\tif (b.o == 1) \r<br\/>\t\t\t\t{\r<br\/>\t\t\t\t\t\/\/b.removeEventListener(Event.ENTER_FRAME, update);\r<br\/>\t\t\t\t\t\/\/parent.removeChild(b);\r<br\/>\t\t\t\t\t\/\/return;\r<br\/>\t\t\t\t\tb.x = r(640);\r<br\/>\t\t\t\t\tb.y = -20;\r<br\/>\t\t\t\t}\r<br\/>\t\t\t} else if ((o&amp;15) == 0)\r<br\/>\t\t\t{\r<br\/>\t\t\t\tif (b.o == 1) \r<br\/>\t\t\t\t{\r<br\/>\t\t\t\t\tx = 320;\r<br\/>\t\t\t\t\ty = 400;\r<br\/>\t\t\t\t}\r<br\/>\t\t\t}\r<br\/>\t\t}\r<br\/>\t\tif ((o&amp;15) == 0)\r<br\/>\t\t{\r<br\/>\t\t\tif (k &amp; 1) y-=5;\r<br\/>\t\t\tif (k &amp; 2) y+=5; \r<br\/>\t\t\tif (k &amp; 4) x-=5;\r<br\/>\t\t\tif (k &amp; 8) x+=5;\r<br\/>\t\t\tif (k &amp; 16) parent.addChild(new B (2, 0, x+5, y));\r<br\/>\t\t} else if ((o&amp;15) == 1) \r<br\/>\t\t{\r<br\/>\t\t\ty += 1 + r(6);\r<br\/>\t\t\tx += 4 - r(8);\r<br\/>\t\t\trotation += 15;\r<br\/>\t\t\tif (y &gt; 480) \r<br\/>\t\t\t{\r<br\/>\t\t\t\tg();\r<br\/>\t\t\t\t\/\/removeEventListener(Event.ENTER_FRAME, u); \r<br\/>\t\t\t\t\/\/parent.removeChild(this);\r<br\/>\t\t\t}\r<br\/>\t\t} else if ((o&amp;15)==2) {\r<br\/>\t\t\ty -= 12;\r<br\/>\t\t\trotation +=  r(24);\r<br\/>\t\t\tif (y &lt; 0) \r<br\/>\t\t\t{\r<br\/>\t\t\t\tg();\r<br\/>\t\t\t\t\/\/removeEventListener(Event.ENTER_FRAME, u);\r<br\/>\t\t\t\t\/\/parent.removeChild(this);\r<br\/>\t\t\t}\r<br\/>\t\t}  else if ((o&amp;15)==3) {\r<br\/>\t\t\t\/\/y -= 12;\r<br\/>\t\t\trotation +=  24;\r<br\/>\t\t\tx += ((o &gt;&gt; 16) &amp; 0xff) \/ 32.0;\r<br\/>\t\t\ty += ((o &gt;&gt; 8) &amp; 0xff) \/ 32.0;\r<br\/>\t\t\to |= (o &amp; 0x00ffffff) | (((o &gt;&gt; 24)-1)&lt;&lt;24);\r<br\/>\t\t\tif (!(o&amp;0xff000000)) \r<br\/>\t\t\t{\r<br\/>\t\t\t\tg();\r<br\/>\t\t\t\t\/\/removeEventListener(Event.ENTER_FRAME, u);\r<br\/>\t\t\t\t\/\/parent.removeChild(this);\r<br\/>\t\t\t}\r<br\/>\t\t}\r<br\/>\t\t\r<br\/>\t\t\/\/trace(&quot;update&quot;);\r<br\/>\t}\r<br\/>}"},{"author_name":"tcstyle","author_uid":"4834","time":"Aug 1, 2011 @ 7:46pm","epoch":1312227660,"text":"Technically interesting. But as a game...\r<br\/>I like the minimalistic presentation."},{"author_name":"TellusE","author_uid":"749","time":"Aug 1, 2011 @ 8:45pm","epoch":1312231200,"text":"Sos, I realise now you're the type of person my mother warned me about.\r<br\/>You're batshit crazy! And it works! Excellent piece of tech :)"},{"author_name":"Nothing Games","author_uid":"4766","time":"Aug 2, 2011 @ 12:37am","epoch":1312245120,"text":"This is a really cool idea, i wouldn't of thought it possible :o"},{"author_name":"gimblll","author_uid":"78","time":"Aug 2, 2011 @ 5:49am","epoch":1312263840,"text":"Cool tech trick\/idea. Not much of a game though."},{"author_name":"RandomM00","author_uid":"3221","time":"Aug 2, 2011 @ 1:53pm","epoch":1312292880,"text":"I love the crazy idea, a game in a URL, but the game itself is as feature\/graphics poor as I would expect :P"},{"author_name":"saluk","author_uid":"106","time":"Aug 5, 2011 @ 7:27pm","epoch":1312572120,"text":"Mad props."}],"images":["mini28\/1405-b9a4216cda1f3e642a6ae9bef3fa22d5.jpg"],"links":[{"url":"http:\/\/sos.gd\/b64\/?mime=application\/x-shockwave-flash&amp;b0=Q1dTC5kGAAB42lWVS2\/bRhCAZ5ZLDilKNi3Lsp0n5VBxHq3DpJeiDdAmlhIkqaM0TtC0gG3SEmUqsSVXYtz4FuQHFL31cUoCFEgPvRboqUF\/Ad0A7bW39tD\/kA5JCbAWS3L3m9mZ3Zkh%2BQS0jwGKrwFOINSm5gFgeXphAWrWv8plWBY8\/yKn8F3jS6r\/fApp%2B7r587OLCPB7bgV%2BK11mIU%2Bg3fd3gotgwRLwQvHD90n79SMX5F6v08q3t\/1BuBTsBd1ooNaTR%2BFWsL\/Z8\/utdCYfd7oRrhQyvVZnsLvt72uru\/1OFGAHfdzEJl5VV0N\/NzBWlvyB896lD65iD7fwMT5SB5G\/FVh%2BKzP2SWcQBd2gP3GlVqvXNu41NlbvXblen%2B4HO729YExFdrqdSL9V\/3yj1v&amp;b1=jstpYM7t8x67fv1e9uXLt7ZaWus9HlsLPdokfB\/nKvFcgVPwq1vt9t9Xb0rb6\/G3aaA2O70w1Wo\/3tQG\/1\/a\/uBs0In%2BC%2Btuv32ZmZOU7N5LITbgW9HfVOjw9d2gqixuZDXjG4320F\/RRqGZlM91rjaPhRMwz6hVoWmEw6daMbBX2\/GXX2goyUx%2BTLvW7k8776ZhnLSlmfIxVUmLNUmMXyGThPKEhIEiqhRkikGKTmCE3CPGGBtAlSJkmfIiwSThOWCGcIy4SzhHNkzBMeITxKeIzwOOEJwpOENmGFcIHwFKFDWCU8TbhIubOE5wjPk3iHlHdJWSLlgpkWE5cOogAd83lEJZkoGUmbCjJpLGaMhwQgVM2QgJIQhI6gGAgyh6CaeYOAlAIXLEwg6JMIBhcwWqyLCuaEKhFMKdBkY7qhxO51Nq&amp;b2=ugkbNjN74B3lRRB4gbBFYeYK3oifZ03KZGUbAeh8vIXY\/dtVKCvZlGSXhTntIux22dNdLxbNw2eJyunIvbuZSvmQ6cq74W1W8UB26aamMe2ZyisLkvY\/egfcQ5XeItt7YF97bl4E%2B%2BldAzY1QMaXWMyiFdHKP6kNpj1GLKjmXieG\/keOKw429fjTwfxmKEq2NYjvDiGNZH2B7DVoLZu6qx98XY9Y5eOwYXMM\/fnbV5jhA6kKLqU\/WlU7ppyixKmuDqNGJ33XIgXU%2BaRno9zVbcPn7g4PPqWzz4sXFC8JTj7MiDF458mT7Ul42TMj4IC\/Gb0I43ZVgZJWYyS6muIOkzw5SmmHO6EDdOJa4NTSX9OxG79lPzTwf%2B8hbWHM\/2Kjcdca2Kz5rSWmalTfnmFMvjdsERpSLAHzzAksoD5z%2B\/&amp;b3=YtlcTkygNDsScVDWba6G0F6vcEWElUtSmfrl7Vtd6kqm%2BhDA42S8KnLtrle8iqO%2BCCtMxCHyPCUyI7ZnJzo2E\/0QeZ4S61Vxhg0ucIwFxzjhfIY0vtb72e6wdGRoVyZ2K9W\/lQmZvAcTYM0MJflkDxUH8kMBBygn%2BCX6MHYD8E673qLrnXG9s653zvU07g\/geNpC9bA8z\/0BptxM0jud\/D1WgP9E8D9tN2Rc","text":"base64 URL"},{"url":"http:\/\/bit.ly\/nqCRa7","text":"bit.ly URL"}],"metadata":{"g_key":"35061","g_author":"1405","g_event":"MINI28","g_eventkey":"53","g_subevent":"COMPO","g_urlkey":"36856","g_title":"The Epic Box War of Compulsive Minimalism","g_status":"UCHK1","g_place":"99999","g_commentcount":"10","g_site2_node_id":"0","g_hide":"N","g_has_icon":"Y","g_rqueue":"0","g_random":"0"},"nds":[],"node":null,"orig_images":["http:\/\/ludumdare.com\/compo\/wp-content\/compo2\/\/56620\/1405-shot0.png-eq-900-500.jpg"],"text":"My aim was to create a game that can be embedded as an url (below 2048). I managed to create a 1122 byte swf, which then base64'd into 1538 bytes, but it appears browsers\/flash player doesn't support base64'd embedded swf's, oh well....\r\n\r\nPS. since I have around 500 bytes left, I'll improve!\r\n\r\nEDIT:\r\n\r\nI decided not to give up and created a custom PHP script to be able to embed my game in URL. \r\nNow I can have bit.ly host my swf's :P<\/p>","title":"The Epic Box War of Compulsive Minimalism"}