{"assets":[{"original":"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/05\/Screen-Shot-2014-05-25-at-2.02.53-PM.png","local":"\/data\/posts\/2014\/05\/70439a833b782c8644b48c6b27a31990.png"},{"original":"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/05\/Screen-Shot-2014-05-25-at-2.02.23-PM-550x733.png","local":"\/data\/posts\/2014\/05\/c1414e63fdd240041344a707236e0869.png"},{"original":"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/05\/Screen-Shot-2014-05-25-at-2.03.35-PM-550x165.png","local":"\/data\/posts\/2014\/05\/bf4489dc41362527234360553b7ccb05.png"},{"original":"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/05\/Screen-Shot-2014-05-24-at-11.40.17-PM-550x255.png","local":"\/data\/posts\/2014\/05\/28cf1de6571956ee4d3dac4b44bdac85.png"}],"author_link":"author\/xewlupus\/","author_name":"little_polygon","cat":"MiniLD #51","categories":["MiniLD #51"],"comments":[],"epoch":1401027120,"event":"LD51","likes":6,"metadata":{"p_key":"82232","p_author":"little_polygon","p_authorkey":"0","p_urlkey":"292964","p_title":"Little Polygon Tools \u2013 A Case Study","p_cat":"MiniLD #51","p_event":"LD29","p_time":"1401027120","p_likes":"6","p_comments":"0","p_status":"WAYBACK","us_key":null,"us_name":null,"us_username":null,"event_start":"1398384000","event_key":"22","event_name":"LD29"},"source_url":"2014\/05\/25\/little-polygon-tools-a-case-study\/","text":"<p>So my <a href=\"http:\/\/www.ludumdare.com\/compo\/2014\/05\/24\/minild51-little-polygon-toolchain\/\">announcement post<\/a> yesterday for my\u00a0<a href=\"http:\/\/www.ludumdare.com\/compo\/minild-51\/?action=preview&amp;uid=19295\">Asset Toolchain<\/a> was a bit technical. \u00a0Here\u2019s a concrete example using features I finished this morning: you design a level using <a href=\"http:\/\/www.mapeditor.org\/\">Tiled<\/a>, and would like to load up the data in SDL. \u00a0Parsing the XML and compositing the images is tedious in C++, but super-simple in Python, so let\u2019s do the content construction at build-time, and just\u00a0hand SDL a \u201cready to go\u201d native asset.<\/p>\n<p>Step 1: Define a Native Format\u00a0(just plain-old data \u2013 pointers OK!)<\/p>\n<p><a href=\"http:\/\/www.ludumdare.com\/compo\/2014\/05\/25\/little-polygon-tools-a-case-study\/screen-shot-2014-05-25-at-2-02-53-pm\/\" rel=\"attachment wp-att-364433\"><img alt=\"Screen Shot 2014-05-25 at 2.02.53 PM\" class=\"aligncenter size-full wp-image-364433\" height=\"216\" src=\"\/data\/posts\/2014\/05\/70439a833b782c8644b48c6b27a31990.png\" width=\"351\"\/><\/a><\/p>\n<p>Step 2: Transform\u00a0Portable\u00a0Map Data to Native World Data (offline)<\/p>\n<p><a href=\"http:\/\/www.ludumdare.com\/compo\/2014\/05\/25\/little-polygon-tools-a-case-study\/screen-shot-2014-05-25-at-2-02-23-pm\/\" rel=\"attachment wp-att-364434\"><img alt=\"Screen Shot 2014-05-25 at 2.02.23 PM\" class=\"aligncenter size-large wp-image-364434\" height=\"733\" src=\"\/data\/posts\/2014\/05\/c1414e63fdd240041344a707236e0869.png\" width=\"550\"\/><\/a><\/p>\n<p>Step 3: Dead-Simple Bootstrap!<\/p>\n<p><a href=\"http:\/\/www.ludumdare.com\/compo\/2014\/05\/25\/little-polygon-tools-a-case-study\/screen-shot-2014-05-25-at-2-03-35-pm\/\" rel=\"attachment wp-att-364435\"><img alt=\"Screen Shot 2014-05-25 at 2.03.35 PM\" class=\"aligncenter size-large wp-image-364435\" height=\"165\" src=\"\/data\/posts\/2014\/05\/bf4489dc41362527234360553b7ccb05.png\" width=\"550\"\/><\/a><\/p>\n<p>Step 4: Profit!<\/p>\n<p><a href=\"http:\/\/www.ludumdare.com\/compo\/2014\/05\/25\/little-polygon-tools-a-case-study\/screen-shot-2014-05-24-at-11-40-17-pm\/\" rel=\"attachment wp-att-364436\"><img alt=\"Screen Shot 2014-05-24 at 11.40.17 PM\" class=\"aligncenter size-large wp-image-364436\" height=\"255\" src=\"\/data\/posts\/2014\/05\/28cf1de6571956ee4d3dac4b44bdac85.png\" width=\"550\"\/><\/a><\/p>\n<p>\u00a0<\/p>","time":"May 25th, 2014 2:12 pm","title":"Little Polygon Tools \u2013 A Case Study","title_was_empty":false}