<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Swingpant&#039;s Game Lab</title>
	<atom:link href="http://swingpants.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://swingpants.com</link>
	<description>Swingpant&#039;s Code Nurdlings</description>
	<lastBuildDate>Tue, 08 May 2012 21:07:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='swingpants.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/4a88693aa17d6b5e1d453a6684bc1c68?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Swingpant&#039;s Game Lab</title>
		<link>http://swingpants.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://swingpants.com/osd.xml" title="Swingpant&#039;s Game Lab" />
	<atom:link rel='hub' href='http://swingpants.com/?pushpress=hub'/>
		<item>
		<title>Games for Kids: Flash vs HTML5 &#8211; Presentation Content</title>
		<link>http://swingpants.com/2012/02/26/games-for-kids-flash-vs-html5-presentation-content/</link>
		<comments>http://swingpants.com/2012/02/26/games-for-kids-flash-vs-html5-presentation-content/#comments</comments>
		<pubDate>Sun, 26 Feb 2012 22:51:02 +0000</pubDate>
		<dc:creator>swingpants</dc:creator>
				<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[Conference]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flash Games]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[References]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Amsterdam]]></category>
		<category><![CDATA[FTIC]]></category>
		<category><![CDATA[HTML5 Games]]></category>

		<guid isPermaLink="false">http://swingpants.com/?p=499</guid>
		<description><![CDATA[Here are the notes for the content of my FITC Amsterdam 2012 presentation Games for Kids: Flash vs HTML5. There are links here to some of the demos, notes and references. I set myself the objective of learning best practice in game design using HTML5. To best discover all of the foibles and dark corners [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=swingpants.com&#038;blog=5703708&#038;post=499&#038;subd=flashlabs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://swingpantsflash.com/fitc2012/"><img class="aligncenter size-full wp-image-500" title="FITC Amsterdam 2012" src="http://flashlabs.files.wordpress.com/2012/02/heading.jpg?w=655" alt=""   /></a></p>
<p style="text-align:left;">Here are the notes for the content of my FITC Amsterdam 2012 presentation <strong>Games for Kids: Flash vs HTML5</strong>. There are links here to some of the demos, notes and references.</p>
<p style="text-align:left;">I set myself the objective of learning best practice in game design using HTML5. To best discover all of the foibles and dark corners of this new technology I set myself the constraint of using NO libraries. I wanted to build a game that would work across many devices, and exhibit some sophistication. The presentation details the discoveries made on this journey, showing how I&#8217;ve optimised the game engines &#8211; and some of the hacks that I&#8217;ve felt necessary to apply.</p>
<div id="attachment_527" class="wp-caption aligncenter" style="width: 460px"><a href="http://swingpantsflash.com/fitc2012/"><img src="http://flashlabs.files.wordpress.com/2012/02/buttonpanel.png?w=655" alt="" title="Demo Panel for Session"   class="size-full wp-image-527" /></a><p class="wp-caption-text">Demo Panel for Session - Click through</p></div>
<p>While experimenting with HTML5 touch I found some Android devices had a terrible response. It took me a while to realise that it was my display method, Canvas, that caused the poor performance. Moving to displaying with DOM gave me a workable response on most devices.</p>
<div id="attachment_513" class="wp-caption aligncenter" style="width: 460px"><a href="http://swingpantsflash.com/fitc2012/"><img src="http://flashlabs.files.wordpress.com/2012/02/btn_touchballs.jpg?w=655" alt="" title="Ball physics"   class="aligncenter size-full wp-image-515" /></a><p class="wp-caption-text">Multi-touch Ball Physics</p></div>
<p>A first quick attempt at gameplay interaction was to build a simple ball physics engine. This gives many options in game design and allows for good utilisation of the major strength of mobile devices: touch input. Getting this to work across multiple devices and operating systems gave me confidence that I could achieve a consistency of performance.</p>
<div id="attachment_513" class="wp-caption aligncenter" style="width: 460px"><a href="http://swingpantsflash.com/fitc2012/"><img src="http://flashlabs.files.wordpress.com/2012/02/btn_eggyeggy.jpg?w=655" alt="" title="Eggy Eggy Pig"   class="aligncenter size-full wp-image-517" /></a><p class="wp-caption-text">Eggy Eggy Pig - visual design by Eloisa(9) &amp; Lola(7)</p></div>
<p>With the help of my daughters, I set about designing and building a platform game. <strong>Eggy Eggy Pig</strong>. The requirement was for platforms and surfaces that could run at any angle, as well as spritesheet animations, triggered interactions, collectables and parallax scrolling. Of course control method was key too.</p>
<div id="attachment_523" class="wp-caption aligncenter" style="width: 460px"><a href="http://swingpantsflash.com/fitc2012/"><img src="http://flashlabs.files.wordpress.com/2012/02/btn_lucaskanade.jpg?w=655" alt="" title="Optical Flow wih Lucas Kanade"   class="size-full wp-image-523" /></a><p class="wp-caption-text">Optical Flow with Lucas Kanade (Flash)</p></div>
<p>After looking what can be done with HTML5, it is important to understand what can&#8217;t be done. Any game project should start with the question &#8216;what is the appropriate technology to achieve our objectives?&#8217;. In many cases the answer will not be HTML5. I show a couple of cases where Flash could be the only solution, including a look at Maestro Flash &#8211; a production implementation of the Lucas Kanade optical flow method. </p>
<p>References:</p>
<ul>
<li>Vic20 Emulator &#8211; Vice &#8211; <a href="http://www.viceteam.org/" title="Vice 2.2" target="_blank">viceteam.org</a></li>
<li>CBBC &#8211; <a href="http://www.bbc.co.uk/cbbc" title="CBBC Online" target="_blank">bbc.co.uk/cbbc</a></li>
<li>CBeebies &#8211; <a href="http://www.bbc.co.uk/cbeebies" title="CBeebies online" target="_blank">bbc.co.uk/cbeebies</a></li>
<li>RaphaelJS	<a href="http://raphaeljs.com/" title="RaphaelJS" target="_blank">raphaeljs.com/</a></li>
<li>JSPerf.com &#8211; <a href="http://jsperf.com/" title="JSPerf" target="_blank">jsperf.com</a></li>
<li>Lucas-Kanade Method &#8211; <a href="http://en.wikipedia.org/wiki/Lucas%E2%80%93Kanade_method" title="Lucas-Kanade Method" target="_blank">wikipedia.org</a></li>
<li>Notepad++ &#8211; <a href="http://notepad-plus-plus.org/" title="Notepad++" target="_blank">notepad-plus-plus.org/</a></li>
<li>Jesse Freeman &#8211; <a href="http://www.amazon.co.uk/Introducing-HTML5-Development-Jesse-Freeman/dp/1449315178/ref=sr_1_1?ie=UTF8&amp;qid=1330164725&amp;sr=8-1" title="HTML5 Game Development (ImpactJS)" target="_blank">HTML Game Development(ImpactJS)</a></li>
<li>SoundManager2 &#8211; <a href="http://www.schillmania.com/projects/soundmanager2/" title="SoundManager2" target="_blank">schillmania.com/projects/soundmanager2</a></li>
<li>Rover &#8211; <a href="http://www.theroverapp.com/" title="The Rover App" target="_blank">theroverapp.com</a></li>
<li>OnLive &#8211; <a href="http://www.onlive.co.uk/" title="OnLive" target="_blank">onlive.co.uk</a></li>
<li>FITC Amsterdam 2012 &#8211; <a href="http://www.fitc.ca/events/about/?event=125" title="FITC Amsterdam 2012" target="_blank">FITC.ca</a></li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/flashlabs.wordpress.com/499/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/flashlabs.wordpress.com/499/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/flashlabs.wordpress.com/499/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/flashlabs.wordpress.com/499/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/flashlabs.wordpress.com/499/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/flashlabs.wordpress.com/499/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/flashlabs.wordpress.com/499/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/flashlabs.wordpress.com/499/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/flashlabs.wordpress.com/499/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/flashlabs.wordpress.com/499/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/flashlabs.wordpress.com/499/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/flashlabs.wordpress.com/499/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/flashlabs.wordpress.com/499/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/flashlabs.wordpress.com/499/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=swingpants.com&#038;blog=5703708&#038;post=499&#038;subd=flashlabs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://swingpants.com/2012/02/26/games-for-kids-flash-vs-html5-presentation-content/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1cebf29489913586137c5bdad0414c88?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">swingpants</media:title>
		</media:content>

		<media:content url="http://flashlabs.files.wordpress.com/2012/02/heading.jpg" medium="image">
			<media:title type="html">FITC Amsterdam 2012</media:title>
		</media:content>

		<media:content url="http://flashlabs.files.wordpress.com/2012/02/buttonpanel.png" medium="image">
			<media:title type="html">Demo Panel for Session</media:title>
		</media:content>

		<media:content url="http://flashlabs.files.wordpress.com/2012/02/btn_touchballs.jpg" medium="image">
			<media:title type="html">Ball physics</media:title>
		</media:content>

		<media:content url="http://flashlabs.files.wordpress.com/2012/02/btn_eggyeggy.jpg" medium="image">
			<media:title type="html">Eggy Eggy Pig</media:title>
		</media:content>

		<media:content url="http://flashlabs.files.wordpress.com/2012/02/btn_lucaskanade.jpg" medium="image">
			<media:title type="html">Optical Flow wih Lucas Kanade</media:title>
		</media:content>
	</item>
		<item>
		<title>Games for Kids. Flash vs HTML5</title>
		<link>http://swingpants.com/2012/02/21/games-for-kids-flash-vs-html5/</link>
		<comments>http://swingpants.com/2012/02/21/games-for-kids-flash-vs-html5/#comments</comments>
		<pubDate>Tue, 21 Feb 2012 08:14:48 +0000</pubDate>
		<dc:creator>swingpants</dc:creator>
				<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[Conference]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flash Games]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[FITC Amsterdam]]></category>

		<guid isPermaLink="false">http://swingpants.com/?p=478</guid>
		<description><![CDATA[For my session at FITC Amsterdam 2012 I&#8217;ll be talking about making games for kids. More and more, mobile devices are allowing people to visit our websites away from the desktop. The sites that I work on chiefly consist of games (Flash) and video content (delivered via Flash). This means that mobile devices without Flash [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=swingpants.com&#038;blog=5703708&#038;post=478&#038;subd=flashlabs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>For my session at FITC Amsterdam 2012 I&#8217;ll be talking about making games for kids. </p>
<p>More and more, mobile devices are allowing people to visit our websites away from the desktop. The sites that I work on chiefly consist of games (Flash) and video content (delivered via Flash). This means that mobile devices without Flash will only be able to gain access to a very small amount of content. To improve this situation we are looking at broadening our game content to include HTML5 builds. </p>
<p><a href="http://www.fitc.ca/events/presentations/presentation.cfm?event=125&amp;presentation_id=1846"><img src="http://flashlabs.files.wordpress.com/2012/02/fitc_stage31.jpg?w=655" alt="" title="FITC Amsterdam 2012"   class="aligncenter size-full wp-image-497" /></a></p>
<p>HTML5 has a great deal of promise, and in the future we will be able to achieve amazing things within the browser. But what about now? What can be achieved on the current crop of those mobiles and tablets that are available to children? </p>
<p>To explore the development of HTML5 games, I set myself the task of building whole game prototypes with NO libraries. Here, I felt the best way for me to discover and analyse the issues was to code raw.</p>
<p>With a target of mobile and tablet devices I figured that I&#8217;d need to hand-roll my own highly performant physics systems, and I wanted this to be fairly sophisticated. I will describe my methods with code and visual examples.</p>
<p>Throughout the session I&#8217;ll detail my discoveries. What are the most optimal ways to achieve cross (mobile) browser game builds? How do you achieve high performance on low spec devices? How do you optimise assets? What tools are good to use? </p>
<p>I&#8217;ll look at what we can and can&#8217;t do with HTML5 &#8211; some of the exciting possibilities and some of the game related (currently)missing features.</p>
<p>Also, what next for the mobile technology and gaming? HTML%, Apps or the cloud? </p>
<p>I&#8217;ll be posting the session content &#8211; game prototypes and performance tests &#8211; here on the GameLab before my FITC Amsterdam session.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/flashlabs.wordpress.com/478/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/flashlabs.wordpress.com/478/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/flashlabs.wordpress.com/478/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/flashlabs.wordpress.com/478/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/flashlabs.wordpress.com/478/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/flashlabs.wordpress.com/478/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/flashlabs.wordpress.com/478/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/flashlabs.wordpress.com/478/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/flashlabs.wordpress.com/478/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/flashlabs.wordpress.com/478/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/flashlabs.wordpress.com/478/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/flashlabs.wordpress.com/478/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/flashlabs.wordpress.com/478/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/flashlabs.wordpress.com/478/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=swingpants.com&#038;blog=5703708&#038;post=478&#038;subd=flashlabs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://swingpants.com/2012/02/21/games-for-kids-flash-vs-html5/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1cebf29489913586137c5bdad0414c88?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">swingpants</media:title>
		</media:content>

		<media:content url="http://flashlabs.files.wordpress.com/2012/02/fitc_stage31.jpg" medium="image">
			<media:title type="html">FITC Amsterdam 2012</media:title>
		</media:content>
	</item>
		<item>
		<title>HTML5 Game Dev. Removing elements from the screen. Finding the fastest method.</title>
		<link>http://swingpants.com/2012/02/09/html5-game-dev-removing-elements-from-the-screen-finding-the-fastest-method/</link>
		<comments>http://swingpants.com/2012/02/09/html5-game-dev-removing-elements-from-the-screen-finding-the-fastest-method/#comments</comments>
		<pubDate>Thu, 09 Feb 2012 00:48:40 +0000</pubDate>
		<dc:creator>swingpants</dc:creator>
				<category><![CDATA[Benchtesting]]></category>
		<category><![CDATA[Code Snippet]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[removeChild]]></category>

		<guid isPermaLink="false">http://swingpants.com/?p=464</guid>
		<description><![CDATA[Using removeChild to clear off a few in-game elements I noticed a bit of lag when testing on some devices so thought I&#8217;d better have a look at what the fastest removal methods are. The three methods I selected to test were removeChild, display=&#8221;none&#8221; and a simple hide the element offscreen. Again, testing has been [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=swingpants.com&#038;blog=5703708&#038;post=464&#038;subd=flashlabs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Using removeChild to clear off a few in-game elements I noticed a bit of lag when testing on some devices so thought I&#8217;d better have a look at what the fastest removal methods are.</p>
<p>The three methods I selected to test were <strong>removeChild</strong>, <strong>display=&#8221;none&#8221;</strong> and a simple <strong>hide the element offscreen</strong>. Again, testing has been carried out at JSPerf.com.</p>
<p>My first test was on <strong>Chrome 16</strong> and the results were pretty conclusive. display=&#8221;none&#8221; was very slow, and hide the element was by far the fastest &#8211; over 4 times faster than display=&#8221;none&#8221;.</p>
<p>So, conclusive proof &#8211; I should just hide my elements off the screen.</p>
<p>Err, no. I next tested <strong>Firefox 9.0.1.</strong> Ah, here removeChild was 2.5 times faster than both display=&#8221;none&#8221; and hiding the elements.</p>
<p>IE7.0 then. display=&#8221;none&#8221; and the hiding elements method were nearly 3 times faster than removeChild.</p>
<p>What about devices?<br />
With <strong>Android 2.2 (Galaxy Tab 1)</strong> display=&#8221;none&#8221; was the fastest method, but only marginally so over the other two.</p>
<p><strong>Safari on iPad #1</strong> (4.2.1) flips the results on their head again with removeChild() being nearly 3 times quicker than the other two.</p>
<p>So how do we interpret this data? A chief decision to make would be what the target devices are. Then choose the quickest method. If we wanted a more generic approach then a series of conditionals would allow for all three methods to be present, using the most relevant one for the current browser.</p>
<p>For the prototypes I am working on, number one target is the iPad. A lot of my focus has been on trying to avoid using the Canvas element (entirely due to horrible performance on Android with it).</p>
<div id="attachment_467" class="wp-caption aligncenter" style="width: 610px"><a href="http://jsperf.com/removing-an-element-from-the-screen/3"><img src="http://flashlabs.files.wordpress.com/2012/02/elementremovaloptimisation1.jpg?w=655" alt="" title="ElementRemovalOptimisation"   class="size-full wp-image-467" /></a><p class="wp-caption-text">Element removal.</p></div>
<p>The (very simple) code used is here (for simplicity&#8217;s sake I use the inverse method as well to bring the element back onto the stage for subsequent removal):</p>
<blockquote>
<p><strong><br />
var testDIV = document.createElement(&#8216;div&#8217;);<br />
testDIV.innerHTML = &#8220;Hello World&#8221;;</p>
<p>function displayIsNone()<br />
{<br />
    testDIV.style.display=&#8221;block&#8221;;<br />
    testDIV.style.display=&#8221;none&#8221;;<br />
}</p>
<p>function removeChild()<br />
{<br />
     document.body.appendChild(testDIV);<br />
     document.body.removeChild(testDIV);<br />
}</p>
<p>function moveVideo()<br />
{<br />
     testDIV.style.left=&#8221;10px&#8221;;<br />
     testDIV.style.left=&#8221;-9999px&#8221;;<br />
}<br />
</strong>
</p></blockquote>
<p>Try the tests yourself here: <a href="http://jsperf.com/removing-an-element-from-the-screen/3">http://jsperf.com/removing-an-element-from-the-screen/3</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/flashlabs.wordpress.com/464/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/flashlabs.wordpress.com/464/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/flashlabs.wordpress.com/464/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/flashlabs.wordpress.com/464/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/flashlabs.wordpress.com/464/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/flashlabs.wordpress.com/464/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/flashlabs.wordpress.com/464/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/flashlabs.wordpress.com/464/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/flashlabs.wordpress.com/464/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/flashlabs.wordpress.com/464/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/flashlabs.wordpress.com/464/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/flashlabs.wordpress.com/464/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/flashlabs.wordpress.com/464/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/flashlabs.wordpress.com/464/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=swingpants.com&#038;blog=5703708&#038;post=464&#038;subd=flashlabs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://swingpants.com/2012/02/09/html5-game-dev-removing-elements-from-the-screen-finding-the-fastest-method/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1cebf29489913586137c5bdad0414c88?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">swingpants</media:title>
		</media:content>

		<media:content url="http://flashlabs.files.wordpress.com/2012/02/elementremovaloptimisation1.jpg" medium="image">
			<media:title type="html">ElementRemovalOptimisation</media:title>
		</media:content>
	</item>
		<item>
		<title>HTML5 Game Dev. DOM Manipulation. It&#8217;s costly, so minimise its use.</title>
		<link>http://swingpants.com/2012/02/08/html5-game-dev-dom-manipulation-its-costly-so-minimise-its-use/</link>
		<comments>http://swingpants.com/2012/02/08/html5-game-dev-dom-manipulation-its-costly-so-minimise-its-use/#comments</comments>
		<pubDate>Wed, 08 Feb 2012 00:22:45 +0000</pubDate>
		<dc:creator>swingpants</dc:creator>
				<category><![CDATA[Code Snippet]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[jsperf]]></category>
		<category><![CDATA[Optimisation]]></category>

		<guid isPermaLink="false">http://swingpants.com/?p=450</guid>
		<description><![CDATA[Typically when manipulating display objects in Flash, applying positional data is a trivial task so you wouldn&#8217;t think twice about applying the data on every game loop. It doesn&#8217;t matter that the object hasn&#8217;t moved on that frame. The overhead would be minimal, you can just reapply without penalty &#8211; in fact to engage with [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=swingpants.com&#038;blog=5703708&#038;post=450&#038;subd=flashlabs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Typically when manipulating display objects in Flash, applying positional data is a trivial task so you wouldn&#8217;t think twice about applying the data on every game loop. It doesn&#8217;t matter that the object hasn&#8217;t moved on that frame. The overhead would be minimal, you can just reapply without penalty &#8211; in fact to engage with any conditional to test for the need to apply could be more costly in the long run.</p>
<p>With DOM manipulation, any update seems to be fairly processor expensive. Very non-trivial. Here it is essential that updates should be applied ONLY when absolutely necessary.</p>
<p>I ran a test script at <a href="http://jsperf.com/optimising-dom-access" title="JSPerf.com">JSPerf.com</a> which demonstrated the issue. I set up a Div with some simple text content. Then manipulate it on every iteration. I move the x-position by 0.2, then round off the position before applying. To optimise I only apply the dom manipulation when the actual object has changed position. The results are stark. A massive performance boost. </p>
<div id="attachment_453" class="wp-caption aligncenter" style="width: 610px"><a href="http://jsperf.com/optimising-dom-access"><img src="http://flashlabs.files.wordpress.com/2012/02/dommanipulationoptimisation.jpg?w=655" alt="" title="Dom Manipulation Optimisation"   class="size-full wp-image-453" /></a><p class="wp-caption-text">Optimise your DOM manipulations. It pays.</p></div>
<p>The code used is simple, and as follows. Create a div, populate then manipulate:</p>
<blockquote><p>
<strong></p>
<p>    var targetDIV = document.createElement(&#8220;div&#8221;);<br />
    targetDIV.innerHTML = &#8220;test data&#8221;;<br />
    document.doby.appendChild(targetDIV);<br />
    var posX =0, prevPosX=0;</p>
<p>    function unoptimisedManipulation()<br />
      {<br />
        posX+=0.2;<br />
        var roundX = Math.round(posX);</p>
<p>        if(posX&gt;500) {posX=0;}<br />
        targetDIV.style.left=roundX+&#8221;px&#8221;;</p>
<p>        prevPosX = roundX;<br />
      }</p>
<p>    function optimisedManipulation()<br />
      {<br />
        posX+=0.2;<br />
        var roundX = Math.round(posX);<br />
        if(prevPosX!=roundX)<br />
          {<br />
            if(posX&gt;500) {posX=0;}<br />
            targetDIV.style.left=roundX+&#8221;px&#8221;;</p>
<p>            prevPosX = roundX;<br />
          }<br />
      }</p>
<p></strong>
</p></blockquote>
<p>The results aren&#8217;t indicating that DOM manipulation should be avoided &#8211; Android devices really struggle with Canvas so DOM is preferable &#8211; it just takes a bit of effort to make the DOM production ready.</p>
<p>Try running the tests yourself at JSPerf.com : <a href="http://jsperf.com/optimising-dom-access" title="http://jsperf.com/optimising-dom-access"><strong>http://jsperf.com/optimising-dom-access</strong></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/flashlabs.wordpress.com/450/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/flashlabs.wordpress.com/450/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/flashlabs.wordpress.com/450/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/flashlabs.wordpress.com/450/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/flashlabs.wordpress.com/450/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/flashlabs.wordpress.com/450/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/flashlabs.wordpress.com/450/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/flashlabs.wordpress.com/450/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/flashlabs.wordpress.com/450/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/flashlabs.wordpress.com/450/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/flashlabs.wordpress.com/450/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/flashlabs.wordpress.com/450/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/flashlabs.wordpress.com/450/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/flashlabs.wordpress.com/450/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=swingpants.com&#038;blog=5703708&#038;post=450&#038;subd=flashlabs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://swingpants.com/2012/02/08/html5-game-dev-dom-manipulation-its-costly-so-minimise-its-use/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1cebf29489913586137c5bdad0414c88?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">swingpants</media:title>
		</media:content>

		<media:content url="http://flashlabs.files.wordpress.com/2012/02/dommanipulationoptimisation.jpg" medium="image">
			<media:title type="html">Dom Manipulation Optimisation</media:title>
		</media:content>
	</item>
		<item>
		<title>HTML5 Game Dev. Flipping a DIV &#8211; Horizontally Inverting content with Javascript and CSS</title>
		<link>http://swingpants.com/2012/02/07/html5-flipping-a-div-horizontally-inverting-an-image/</link>
		<comments>http://swingpants.com/2012/02/07/html5-flipping-a-div-horizontally-inverting-an-image/#comments</comments>
		<pubDate>Tue, 07 Feb 2012 22:21:23 +0000</pubDate>
		<dc:creator>swingpants</dc:creator>
				<category><![CDATA[Code Snippet]]></category>
		<category><![CDATA[Conference]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[css transform]]></category>
		<category><![CDATA[spritesheet]]></category>

		<guid isPermaLink="false">http://swingpants.com/?p=436</guid>
		<description><![CDATA[As I prepare for my talk at FITC Amsterdam (Feb 2012) I&#8217;m building a web game in both Flash &#38; HTML5. I&#8217;m aiming my HTML5 build at the mobile web (but will try to reach as many desktop browsers as possible) &#8211; so it will need to run optimally across Android &#38; iOS. I&#8217;ve discovered [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=swingpants.com&#038;blog=5703708&#038;post=436&#038;subd=flashlabs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As I prepare for my talk at FITC Amsterdam (Feb 2012) I&#8217;m building a web game in both Flash &amp; HTML5. </p>
<p>I&#8217;m aiming my HTML5 build at the mobile web (but will try to reach as many desktop browsers as possible) &#8211; so it will need to run optimally across Android &amp; iOS.</p>
<p>I&#8217;ve discovered a few issues so far that for the purpose of record and reference I&#8217;ll post here in game lab.</p>
<p><strong>First up.</strong> I have a player character that I&#8217;m animating via a spritesheet. I need the character to be able to face left and right. </p>
<p>I made the assumption that I could drop the sheet into a div (as background image) and then apply a scaleX  transition to the div when I need to face left, and remove the transition when I need to turn right.</p>
<p>I&#8217;m applying the horizontal flip by adding a CSS classname to the div.</p>
<p><strong>The CSS:</strong></p>
<blockquote><p>
               <strong>.flip-horizontal<br />
			{<br />
				-moz-transform: scaleX(-1);<br />
				-webkit-transform: scaleX(-1);<br />
				-o-transform: scaleX(-1);<br />
				transform: scaleX(-1);<br />
				filter: FlipH; /*for IE*/<br />
				-ms-filter: &#8220;FlipH&#8221;;<br />
			}</strong>
</p></blockquote>
<p>Then when I need my character to face left I add the class name to the character div:</p>
<blockquote><p>
<strong>function faceLeft() {characterDIV.className = &#8220;flip-horizontal&#8221;;}<br />
function faceRight() {characterDIV.className = &#8220;&#8221;;}</strong>
</p></blockquote>
<p>So, is this good? Works fantastically on the desktop browsers and really well on Android. </p>
<p><strong>BUT</strong>, on iOS (iPad in my tests) there is a <strong>BIG</strong> lag when the webkit transform is applied.</p>
<p>I mean big &#8211; in my game there can be up to a second long hang. Totally unacceptable for any game usage (unless as a one shot on initialisation).</p>
<p><strong>The answer?</strong> Unfortunately I couldn&#8217;t come up with a technical solution. I had to resort to putting the reverse animation on the spritesheet. This gives me the performance I want &#8211; but at the expense of more weight to the game. </p>
<p>If my game has many characters then I am essentially doubling my asset weight for those characters. Boo.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/flashlabs.wordpress.com/436/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/flashlabs.wordpress.com/436/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/flashlabs.wordpress.com/436/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/flashlabs.wordpress.com/436/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/flashlabs.wordpress.com/436/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/flashlabs.wordpress.com/436/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/flashlabs.wordpress.com/436/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/flashlabs.wordpress.com/436/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/flashlabs.wordpress.com/436/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/flashlabs.wordpress.com/436/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/flashlabs.wordpress.com/436/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/flashlabs.wordpress.com/436/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/flashlabs.wordpress.com/436/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/flashlabs.wordpress.com/436/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=swingpants.com&#038;blog=5703708&#038;post=436&#038;subd=flashlabs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://swingpants.com/2012/02/07/html5-flipping-a-div-horizontally-inverting-an-image/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1cebf29489913586137c5bdad0414c88?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">swingpants</media:title>
		</media:content>
	</item>
		<item>
		<title>Creative Javascript &#8211; 3D Tree with Leaf-fall</title>
		<link>http://swingpants.com/2011/11/02/creative-javascript-3d-tree-with-leaf-fall/</link>
		<comments>http://swingpants.com/2011/11/02/creative-javascript-3d-tree-with-leaf-fall/#comments</comments>
		<pubDate>Wed, 02 Nov 2011 23:34:39 +0000</pubDate>
		<dc:creator>swingpants</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Effect]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Mathematics]]></category>
		<category><![CDATA[CreativeJS]]></category>
		<category><![CDATA[HTML5 Canvas]]></category>

		<guid isPermaLink="false">http://swingpants.com/?p=419</guid>
		<description><![CDATA[A HTML5 prototype&#8230; Finally getting around to have a play with HTML5 Canvas &#8211; enabled by attending Seb Lee Delisle&#8217;s excellent CreativeJS course. I&#8217;m impressed with performance from Canvas nowadays &#8211; my first sight of it many moons ago left me pretty disappointed &#8211; but now it actually feels useful and some pretty impressive visual [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=swingpants.com&#038;blog=5703708&#038;post=419&#038;subd=flashlabs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A HTML5 prototype&#8230; </p>
<p>Finally getting around to have a play with HTML5 Canvas &#8211; enabled by attending Seb Lee Delisle&#8217;s excellent CreativeJS course.</p>
<p>I&#8217;m impressed with performance from Canvas nowadays &#8211; my first sight of it many moons ago left me pretty disappointed &#8211; but now it actually feels useful and some pretty impressive visual effects can be achieved without resorting to WebGL.</p>
<p>The prototype I threw together <a href="http://swingpantsflash.com/html5/3dTreeWithLeafFall/Jon_3dTree.html">here</a> demonstrates a growing tree, in 3D with numerous branches, leaves, leaf fall, faux-shading and colour phasing. The demo will re-grow a tree on mouse click, and will allow for left and right rotation by means of mouse position (left/right).</p>
<div id="attachment_416" class="wp-caption aligncenter" style="width: 460px"><a href="http://swingpantsflash.com/html5/3dTreeWithLeafFall/Jon_3dTree.html"><img src="http://flashlabs.files.wordpress.com/2011/11/3dtreewithleaffall.jpg?w=655" alt="creativeJS" title="HTML5: 3D Tree with Leaf fall"   class="aligncenter size-full wp-image-420" /></a><p class="wp-caption-text">3D Tree with Leaf Fall</p></div>
<p>To talk through the code a little: The tree is constructed using a recursive <strong>buildBranch</strong> function. Every branch spawns two new branches, or in the last generation it has a 90% chance of spawning a leaf. The branches are coloured from brown to green related by the recorded generation of the branch.</p>
<p>No 3D libraries were used in this demo &#8211; all of the 3D is via a simple scaling calculation for 3D points [ fov / (fov + point.z) ]. This allows for any 3D point to be translated (scaled) onto the 2D canvas. </p>
<p>The <a href="http://en.wikipedia.org/wiki/Painters_algorithm">Painter&#8217;s Algorithm</a> (priority fill) is applied via the sorting of all branches and leaves on their mid-point. This means that those furthest away are drawn to screen first.</p>
<p>Shading is applied by mapping colour to the z value of a branch&#8217;s position. This is very simply applied. There is a related alpha to add a fog effect to the furthest away elements, this gives some subtle but nasty artefacts and could be improved.</p>
<p>When a branch is fully grown the leaves will then appear and grow to their full size. When they fall a sine value  is applied to rotation to make it rock as it falls. Leaves will collect on the ground.</p>
<p>Performance is pretty good here, but I did have to restrict the number of branch generations to 9. Of course some of the out-of-the-box features that Flash has such as Glow and Blur filters don&#8217;t exist &#8211; which means work-arounds or approximations have to be used &#8211; sound implementation isn&#8217;t very consistent across browsers &#8211; it is still early days, more and more JS will be used across the web, as it is the browser manufacturers will hopefully drive their products into more useful areas and consistent implementations.</p>
<p>The demo is a fast turn-around &#8216;prototype&#8217;, so not optimal or well formed. Feel free to have a play with the code, offer improvement suggestions or adapt in anyway you wish.</p>
<p>No attempt has been made to cover HTML5 cross-browser issues &#8211; so don&#8217;t expect this to work in IE!</p>
<p>Direct Link: <a href="http://swingpantsflash.com/html5/3dTreeWithLeafFall/Jon_3dTree.html">3D Tree with Leaf Fall</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/flashlabs.wordpress.com/419/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/flashlabs.wordpress.com/419/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/flashlabs.wordpress.com/419/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/flashlabs.wordpress.com/419/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/flashlabs.wordpress.com/419/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/flashlabs.wordpress.com/419/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/flashlabs.wordpress.com/419/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/flashlabs.wordpress.com/419/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/flashlabs.wordpress.com/419/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/flashlabs.wordpress.com/419/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/flashlabs.wordpress.com/419/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/flashlabs.wordpress.com/419/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/flashlabs.wordpress.com/419/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/flashlabs.wordpress.com/419/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=swingpants.com&#038;blog=5703708&#038;post=419&#038;subd=flashlabs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://swingpants.com/2011/11/02/creative-javascript-3d-tree-with-leaf-fall/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1cebf29489913586137c5bdad0414c88?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">swingpants</media:title>
		</media:content>

		<media:content url="http://flashlabs.files.wordpress.com/2011/11/3dtreewithleaffall.jpg" medium="image">
			<media:title type="html">HTML5: 3D Tree with Leaf fall</media:title>
		</media:content>
	</item>
		<item>
		<title>References from Playability: Making Games for Kids</title>
		<link>http://swingpants.com/2011/09/12/references-from-playability-making-games-for-kids/</link>
		<comments>http://swingpants.com/2011/09/12/references-from-playability-making-games-for-kids/#comments</comments>
		<pubDate>Mon, 12 Sep 2011 17:31:49 +0000</pubDate>
		<dc:creator>swingpants</dc:creator>
				<category><![CDATA[Conference]]></category>
		<category><![CDATA[Flash Games]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[References]]></category>

		<guid isPermaLink="false">http://swingpants.com/?p=400</guid>
		<description><![CDATA[Here are the references from my talk at Flash on the Beach 2011: Games: Horrible Histories: Moo Spew Horrible Histories: Gong Farmer Shaun the Sheep: Alien Athletics Deadly 60: Deadly Dash Dick and Dom: Let Rip Your keyboard doesn&#8217;t work: The functioning key test app. Many keyboards have a mechanical issue that means if two [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=swingpants.com&#038;blog=5703708&#038;post=400&#038;subd=flashlabs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>Here are the references from my talk at Flash on the Beach 2011:</strong></p>
<p><strong><br />
Games:</strong></p>
<li>Horrible Histories: <a href="http://www.bbc.co.uk/cbbc/games/moo-spew-game" title="Moo Spew" target="_blank"><strong>Moo Spew</strong></a></li>
<li>Horrible Histories: <a href="http://www.bbc.co.uk/cbbc/games/gong-farmer-game" title="Gong Farmer" target="_blank"><strong>Gong Farmer</strong></a></li>
<li>Shaun the Sheep: <a href="http://www.bbc.co.uk/cbbc/shaunthesheep/games/championsheeps/alien-athletics/" title="Alien Athletics" target="_blank"><strong>Alien Athletics</strong></a></li>
<li>Deadly 60: <a href="http://www.bbc.co.uk/cbbc/games/deadly-dash-game" title="Deadly Dash" target="_blank"><strong>Deadly Dash</strong></a></li>
<li>Dick and Dom: <a href="http://www.bbc.co.uk/cbbc/games/dick-and-dom-let-rip-game" title="Let Rip" target="_blank"><strong>Let Rip</strong></a></li>
<p><div id="attachment_416" class="wp-caption aligncenter" style="width: 460px"><a href="http://flashlabs.files.wordpress.com/2011/09/swingpantsfotbflinger.jpg"><img src="http://flashlabs.files.wordpress.com/2011/09/swingpantsfotbflinger.jpg?w=655" alt="" title="Swingpants FOTB Flinger"   class="size-full wp-image-416" /></a><p class="wp-caption-text">Swingpant&#039;s FOTB Flinger</p></div><br />
<strong><br />
Your keyboard doesn&#8217;t work:</strong><br />
The functioning key test app. Many keyboards have a mechanical issue that means if two keys are pressed, certain other ones cannot be registered as being used. On the keyboard I am currently typing on if I press [Down], [LEFT] and then [Space], the [Space] fails to work. If I press [A] and [W], then [Q] fails to work. </p>
<p>Test your keyboard here: <a href="http://bit.ly/keytest" target="_blank"><strong>http://bit.ly/keytest</strong></a><br />
(Sorry users of keyboards that aren&#8217;t exactly like the one I have here &#8211; I made the app from a pic of this one)</p>
<p><strong><br />
Accessibility</strong></p>
<li><a href="http://www.netmagazine.com/features/simple-introduction-web-accessibility" title="A Simple Introduction to Web Accessibility" target="_blank"><strong>A simple introduction to web accessibility</strong></a> &#8211; Ian Hamilton</li>
<p><strong><br />
Recommended Reading on Game Design:</strong><br />
<strong>Game Design Books:</strong></p>
<li>The Art of Game Design &#8211; Jesse Schell</li>
<li>A Theory of Fun for Game Design &#8211; Raph Koster</li>
<li>Challenges for Game Designers &#8211; Brenda Brathwaite &amp; Ian Schreiber</li>
<p><strong><br />
Academic Papers:</strong></p>
<li><a href="http://www.cs.northwestern.edu/~hunicke/MDA.pdf" title="MDA: A Formal Approach to Game Design and Game Research" target="_blank">MDA: A Formal Approach to Game Design and Game Research (PDF)</a> &#8211; by Robin Hunicke, Marc LeBlanc, Robert Zubek</li>
<li>Playability: How to Identify the Player Experience in a Video Game &#8211; by José Luis González Sánchez, Natalia Padilla Zea, Francisco L. Gutiérrez.</li>
<li>From usability to Playability: Introduction to player centred video game development &#8211; by José Luis González Sánchez, Natalia Padilla Zea, Francisco L. Gutiérrez.</li>
<li><a href="http://uoit.academia.edu/LennartNacke/Papers/333768/Dissecting_Play-Investigating_the_Cognitive_and_Emotional_Motivations_and_Affects_of_Computer_Gameplay" title="Dissecting Play: Investigating the Cognitive and emotional motivations and affects of computer gameplay" target="_blank">Dissecting Play: Investigating the Cognitive and emotional motivations and affects of computer gameplay</a> &#8211; Lindley, Nacke, Sennerston</li>
<div id="attachment_408" class="wp-caption aligncenter" style="width: 460px"><a href="http://vimeo.com/28855306"><img src="http://flashlabs.files.wordpress.com/2011/09/flashonthebeach_gmunk.jpg?w=655" alt="" title="Flash on the Beach"   class="size-full wp-image-408" /></a><p class="wp-caption-text">Flash on the Beach Titles by GMunk</p></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/flashlabs.wordpress.com/400/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/flashlabs.wordpress.com/400/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/flashlabs.wordpress.com/400/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/flashlabs.wordpress.com/400/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/flashlabs.wordpress.com/400/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/flashlabs.wordpress.com/400/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/flashlabs.wordpress.com/400/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/flashlabs.wordpress.com/400/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/flashlabs.wordpress.com/400/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/flashlabs.wordpress.com/400/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/flashlabs.wordpress.com/400/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/flashlabs.wordpress.com/400/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/flashlabs.wordpress.com/400/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/flashlabs.wordpress.com/400/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=swingpants.com&#038;blog=5703708&#038;post=400&#038;subd=flashlabs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://swingpants.com/2011/09/12/references-from-playability-making-games-for-kids/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1cebf29489913586137c5bdad0414c88?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">swingpants</media:title>
		</media:content>

		<media:content url="http://flashlabs.files.wordpress.com/2011/09/swingpantsfotbflinger.jpg" medium="image">
			<media:title type="html">Swingpants FOTB Flinger</media:title>
		</media:content>

		<media:content url="http://flashlabs.files.wordpress.com/2011/09/flashonthebeach_gmunk.jpg" medium="image">
			<media:title type="html">Flash on the Beach</media:title>
		</media:content>
	</item>
		<item>
		<title>Flash on the Beach 2011: My Schedule</title>
		<link>http://swingpants.com/2011/09/10/flash-on-the-beach-2011-my-schedule/</link>
		<comments>http://swingpants.com/2011/09/10/flash-on-the-beach-2011-my-schedule/#comments</comments>
		<pubDate>Sat, 10 Sep 2011 00:41:44 +0000</pubDate>
		<dc:creator>swingpants</dc:creator>
				<category><![CDATA[Conference]]></category>
		<category><![CDATA[Flash on the Beach]]></category>

		<guid isPermaLink="false">http://swingpants.com/?p=387</guid>
		<description><![CDATA[The amazing Flash on the Beach conference is upon us again. A must every year for me to get my fix of the latest tech, design and web game ideas. This year I&#8217;m speaking on the monday morning &#8211; great for me as I don&#8217;t have to sweat it for the following few days. Some [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=swingpants.com&#038;blog=5703708&#038;post=387&#038;subd=flashlabs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The amazing Flash on the Beach conference is upon us again. A must every year for me to get my fix of the latest tech, design and web game ideas.</p>
<p>This year I&#8217;m speaking on the monday morning &#8211; great for me as I don&#8217;t have to sweat it for the following few days.</p>
<p>Some major clashes this year &#8211; I may have to miss Seb Lee Delisle, Stray, Joel Gethin Lewis, Keith Peters, Conrad Winchester and Stefan Richter. Sorry guys &#8211; my arm is up for being twisted though.</p>
<p>Mon 12th Sept 2011<br />
<strong>Keynote</strong>.<br />
<strong>Jon Howard</strong> &#8211; Playability: Making games for kids<br />
<strong>Rob Bateman</strong> &#8211; Flash 11: Get Ready for Gametime<br />
<strong>Eugene Zatepyakin</strong> &#8211; Natural Features Tracking and Image Pattern Detection / Recognition<br />
<strong>Han Hoogerbrugge</strong> &#8211; Prostress of the graphic universe of Han Hoogerbrugge<br />
<strong>Jon Burgerman</strong> &#8211; A short talk about working and not working and how to waste your time proficiently</p>
<p>Tue 13th<br />
<strong>Tomek Augustyn</strong> &#8211; Riding the Hislope<br />
<strong>Joa Ebert</strong> &#8211; The Tale of a travelling salesman and his four colours<br />
<strong>Mike Chambers</strong> &#8211; Deconstructing theexpressiveweb.com<br />
<strong>David Lenaerts</strong> &#8211; Keeping It Real<br />
<strong>Remy Sharp</strong> &#8211; HTML5: Where flash isn&#8217;t needed anymore<br />
<strong>Cyriak Harris</strong> &#8211; Destroying my laptop with After Effects<br />
<strong>Jame Victore</strong> &#8211; Who died and made me boss</p>
<p>Wed 14th<br />
<strong>The Elevator Pitch</strong>.<br />
<strong>Thomas Vian</strong> &#8211; All aboard the game engine<br />
<strong>Lee Brimelow</strong> &#8211; Render for Speed<br />
<strong>Frank Reitberger</strong> &#8211; Real(hard)time<br />
<strong>Joshua Davis</strong> &#8211; The Unknown Voyage</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/flashlabs.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/flashlabs.wordpress.com/387/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/flashlabs.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/flashlabs.wordpress.com/387/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/flashlabs.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/flashlabs.wordpress.com/387/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/flashlabs.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/flashlabs.wordpress.com/387/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/flashlabs.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/flashlabs.wordpress.com/387/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/flashlabs.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/flashlabs.wordpress.com/387/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/flashlabs.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/flashlabs.wordpress.com/387/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=swingpants.com&#038;blog=5703708&#038;post=387&#038;subd=flashlabs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://swingpants.com/2011/09/10/flash-on-the-beach-2011-my-schedule/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1cebf29489913586137c5bdad0414c88?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">swingpants</media:title>
		</media:content>
	</item>
		<item>
		<title>Playability: Making games for kids</title>
		<link>http://swingpants.com/2011/09/08/playability-making-games-for-kids/</link>
		<comments>http://swingpants.com/2011/09/08/playability-making-games-for-kids/#comments</comments>
		<pubDate>Thu, 08 Sep 2011 23:02:16 +0000</pubDate>
		<dc:creator>swingpants</dc:creator>
				<category><![CDATA[Conference]]></category>
		<category><![CDATA[Flash Games]]></category>
		<category><![CDATA[BBC]]></category>
		<category><![CDATA[Flash on the Beach]]></category>
		<category><![CDATA[games]]></category>

		<guid isPermaLink="false">http://swingpants.com/?p=381</guid>
		<description><![CDATA[I shall be speaking at this year&#8217;s Flash on the Beach conference in Brighton, UK (11th to 14th September 2011). The subject is playability in relation to making web games for kids. As a lead developer, tech lead and team leader I have had huge amounts of experience working on game design and development with [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=swingpants.com&#038;blog=5703708&#038;post=381&#038;subd=flashlabs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I shall be speaking at this year&#8217;s Flash on the Beach conference in Brighton, UK (11th to 14th September 2011). </p>
<p>The subject is playability in relation to making web games for kids. As a lead developer, tech lead and team leader I have had huge amounts of experience working on game design and development with major kid&#8217;s TV brands. It is exciting, fun and always a privilege. </p>
<p>In the session I will be looking at how a gamedev team is made up, the product lifecycle from idea to release. Important points I&#8217;ll look at are the specific needs of the game&#8217;s audience. How to design the best control method, the most appropriate aesthetics and which mechanics work best.</p>
<p>I&#8217;ll dig into the elements of a successful game &#8211; which measures are used to find out if a game is &#8216;good&#8217; and successful.</p>
<p>With constantly shifting sands in the world of the web,I&#8217;ll touch on what I see as the future of games for a major broadcaster &#8211; what technology will be used and on what platforms.</p>
<p>During the session I&#8217;ll be showing examples of games, video examples and I&#8217;ve arranged for a Skype call to the TV offices&#8230; </p>
<div id="attachment_382" class="wp-caption aligncenter" style="width: 460px"><a href="http://www.flashonthebeach.com/speakers/index.php?pageid=1218"><img src="http://flashlabs.files.wordpress.com/2011/09/playability_blog.jpg?w=655" alt="" title="Playability: Making games for kids"   class="size-full wp-image-382" /></a><p class="wp-caption-text">Playability at FOTB2011</p></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/flashlabs.wordpress.com/381/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/flashlabs.wordpress.com/381/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/flashlabs.wordpress.com/381/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/flashlabs.wordpress.com/381/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/flashlabs.wordpress.com/381/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/flashlabs.wordpress.com/381/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/flashlabs.wordpress.com/381/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/flashlabs.wordpress.com/381/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/flashlabs.wordpress.com/381/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/flashlabs.wordpress.com/381/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/flashlabs.wordpress.com/381/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/flashlabs.wordpress.com/381/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/flashlabs.wordpress.com/381/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/flashlabs.wordpress.com/381/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=swingpants.com&#038;blog=5703708&#038;post=381&#038;subd=flashlabs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://swingpants.com/2011/09/08/playability-making-games-for-kids/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1cebf29489913586137c5bdad0414c88?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">swingpants</media:title>
		</media:content>

		<media:content url="http://flashlabs.files.wordpress.com/2011/09/playability_blog.jpg" medium="image">
			<media:title type="html">Playability: Making games for kids</media:title>
		</media:content>
	</item>
		<item>
		<title>Introduction to Mercator Projections, Latitude and Longitude</title>
		<link>http://swingpants.com/2011/03/05/introduction-to-mercator-projections-latitude-and-longitude/</link>
		<comments>http://swingpants.com/2011/03/05/introduction-to-mercator-projections-latitude-and-longitude/#comments</comments>
		<pubDate>Sat, 05 Mar 2011 00:05:02 +0000</pubDate>
		<dc:creator>swingpants</dc:creator>
				<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[Code Snippet]]></category>
		<category><![CDATA[Mathematics]]></category>
		<category><![CDATA[3d coodinates]]></category>
		<category><![CDATA[latitude]]></category>
		<category><![CDATA[longitude]]></category>
		<category><![CDATA[Mercator Projection]]></category>

		<guid isPermaLink="false">http://swingpants.com/?p=360</guid>
		<description><![CDATA[Or how to place a map coordinate into 3D space. This post is a brief walk through of the basics from my 2010 presentation &#8220;Where in the world? Intercontinental Ballistic Flash&#8221;. Belgian, Flemish geographer and cartographer Gerardus Mercator, in 1569 presented a cylindrical map projection. The Mercator Projection quickly became the standard map used for [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=swingpants.com&#038;blog=5703708&#038;post=360&#038;subd=flashlabs&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Or how to place a map coordinate into 3D space. This post is a brief walk through of the basics from my 2010 presentation &#8220;Where in the world? Intercontinental Ballistic Flash&#8221;.</p>
<p>Belgian, Flemish geographer and cartographer Gerardus Mercator, in 1569 presented a cylindrical map projection. The Mercator Projection quickly became the standard map used for nautical purposes. It&#8217;s advantages were that the scale is linear in any direction around a point, meaning all angles were preserved (conformal).</p>
<div id="attachment_361" class="wp-caption aligncenter" style="width: 308px"><a href="http://flashlabs.files.wordpress.com/2011/03/mercator_himself.jpg"><img src="http://flashlabs.files.wordpress.com/2011/03/mercator_himself.jpg?w=655" alt="Geographer and cartographer Gerardus Mercator" title="Gerardus Mercator"   class="size-full wp-image-361" /></a><p class="wp-caption-text">Gerardus Mercator</p></div>
<p>Around the equator feature shapes are accurately portrayed but as the poles are approached there is a size and shape distortion. The scale increases as the pole is neared, eventually becoming infinite when the pole is reached.</p>
<p>If you imagine the world as a beach ball. The Mercator Projection is the equivalent of cutting open the ball at each pole and stretching the skin to form a cylinder. Now slice down the cylinder and you have the map.</p>
<div id="attachment_363" class="wp-caption aligncenter" style="width: 510px"><a href="http://flashlabs.files.wordpress.com/2011/03/mercator_map_500.jpg"><img src="http://flashlabs.files.wordpress.com/2011/03/mercator_map_500.jpg?w=655" alt="" title="Mercator Map"   class="size-full wp-image-363" /></a><p class="wp-caption-text">The first Mercator projected map. 1569.</p></div>
<p>All map projections distort the shape or size of the Earth&#8217;s (or for that matter any other planet&#8217;s) surface. The Mercator Projection exaggerates areas far from the equator. Greenland seems as large as Africa, but is in fact 1/14 of the size, Antartica appears to be the largest continent but is in fact only 5th in terms of area.</p>
<p>Despite the obvious distortions, the Mercator Projection makes a great interactive map. Thanks to the conformality it can be zoomed nearly seamlessly.</p>
<p>So here we have a system that converts a 3D scene, the real world, onto a 2D plane, the map. This system can just as easily convert the 2D back to 3D. It is a coordinate system that requires two positional parameters and one constant: the planet radius.</p>
<p>The positional parameters are latitude and longitude. As developers we are used to standard coordinates x and y. Across then up. Horizontal then vertical. With latitude and longitude we have to think differently. Latitude is vertical and longitude is across. Up then across. Latitudes run from pole to pole, while longitudes run around the planet.</p>
<p>There are 180 degrees of latitude from the South Pole to the North pole, and 360 degrees around the planet. Imagine yourself sat at the centre of the Earth with a laser pointer. Point at the Equator then you are at 0 degrees latitude, at the South Pole -90 degrees and at the North Pole 90 degrees. Now point at the Equator again you can turn 180 degrees around the equator to the right (-180 degrees longitude) and to the left (180 degrees longitude).</p>
<p>With these any point on the surface of the planet can be recorded or indeed any position on a map.</p>
<p>So we have a system for calculating a position on the surface of a sphere, a 3D coordinate, but how do we convert latitude, longitude and the planet&#8217;s radius into a 3D x,y,z coordinate?</p>
<p><code></p>
<blockquote><p>
public static function convertLatLonTo3DPos(lat:Number, lon:Number, radius:Number):Vector3D<br />
	{<br />
		var v3d:Vector3D = new Vector3D();</p>
<p>		//Convert Lat Lon Degrees to Radians<br />
		var latRadians:Number = lat * TO_RADIANS;<br />
		var lonRadians:Number = lon * TO_RADIANS;</p>
<p>		v3d.x = radius * Math.cos(lonRadians) * Math.sin(latRadians);<br />
		v3d.z = radius * Math.sin(lonRadians) * Math.sin(latRadians);<br />
		v3d.y = -radius * Math.cos(latRadians);</p>
<p>		return v3d<br />
	}
</p></blockquote>
<p></code></p>
<p>Here the latitude and longitude are converted into radians ( TO_RADIANS:Number = Math.PI / 180 ). Then the trigonomic functions are applied to the planet radius to return a vector3D x,y and z.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/flashlabs.wordpress.com/360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/flashlabs.wordpress.com/360/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/flashlabs.wordpress.com/360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/flashlabs.wordpress.com/360/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/flashlabs.wordpress.com/360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/flashlabs.wordpress.com/360/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/flashlabs.wordpress.com/360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/flashlabs.wordpress.com/360/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/flashlabs.wordpress.com/360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/flashlabs.wordpress.com/360/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/flashlabs.wordpress.com/360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/flashlabs.wordpress.com/360/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/flashlabs.wordpress.com/360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/flashlabs.wordpress.com/360/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=swingpants.com&#038;blog=5703708&#038;post=360&#038;subd=flashlabs&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://swingpants.com/2011/03/05/introduction-to-mercator-projections-latitude-and-longitude/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1cebf29489913586137c5bdad0414c88?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">swingpants</media:title>
		</media:content>

		<media:content url="http://flashlabs.files.wordpress.com/2011/03/mercator_himself.jpg" medium="image">
			<media:title type="html">Gerardus Mercator</media:title>
		</media:content>

		<media:content url="http://flashlabs.files.wordpress.com/2011/03/mercator_map_500.jpg" medium="image">
			<media:title type="html">Mercator Map</media:title>
		</media:content>
	</item>
	</channel>
</rss>
