<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>ShaunInman.com</title>
<link>http://www.shauninman.com/</link>
<description></description>
<copyright>Copyright 2001-2013 Shaun Inman</copyright>
<generator>Shaun Inman&#8217;s Bookend</generator>
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
<lastBuildDate>Fri, 24 May 2013 05:56:27 GMT</lastBuildDate>

<item>
	<title>Slack</title>
	<description><![CDATA[<p>First things first, <a href="http://haveamint.com/">Mint</a> and <a href="http://feedafever.com/">Fever</a> are both still being developed and supported. A couple months ago my mother was diagnosed with cancer. Around the same time, Google announced it would be <a href="http://www.wired.com/gadgetlab/2013/03/r-i-p-google-reader/">retiring Reader</a>. Just after New Year&#8217;s, following its successful Kickstarter, <a href="http://retrogamecrunch.com/">Retro Game Crunch</a> started work.</p>

<p>At the beginning of April I bought a <a href="https://twitter.com/shauninman/status/320206966628704256">one-way ticket</a> to Denver to help take care of my mom as she struggles through chemo. After my mother&#8217;s well being, my first priority is Retro Game Crunch. I am responding to Mint and Fever support requests in the order they are received as quickly as I can. I am currently weeks behind. I do not offer support on Twitter. I appreciate your patience.</p>

<p>If you encounter a problem that renders a recently purchased copy of Mint or Fever unusable and you absolutely cannot wait for support, please email me your PayPal Transaction ID at <a href="mailto:refunds@shauninman.com">refunds@shauninman.com</a> and I&#8217;ll happily refund your purchase. (Do <em>not</em> use this address for support.)</p>]]></description>
	<link>http://shauninman.com/feeder/?FeederAction=clicked&amp;feed=Complete&amp;seed=http%3A%2F%2Fwww.shauninman.com%2Farchive%2F2013%2F04%2F29%2Fslack&amp;seed_title=Slack</link>
	<guid isPermaLink="false">1577@http://www.shauninman.com/</guid>
	<category>Personal</category><category>Mint</category><category>Fever</category>
	<pubDate>Mon, 29 Apr 2013 18:27:00 GMT</pubDate>
</item>
<item>
	<title>Fire!</title>
	<description><![CDATA[<p>So Google is <a href="http://www.wired.com/gadgetlab/2013/03/r-i-p-google-reader/">sunsetting Reader</a>. Lots of people are <a href="https://twitter.com/search?q=feedafever">recommending Fever</a>.</p>

<p>If you&#8217;re considering switching to <a href="http://feedafever.com/">Fever</a>, here&#8217;s a few things you need to know:</p>

<ol>
<li>I am working on <a href="http://retrogamecrunch.com/about/">Retro Game Crunch</a> full-time (okay, overtime) for at least the first six months of 2013. My <a href="http://haveamint.com/">Mint</a> and <a href="http://feedafever.com/">Fever</a> support inboxes were already backed up before today&#8217;s announcement.</li>
<li>Fever will always be self-hosted.</li>
<li>Fever was not designed to match Reader feature-for-feature. It is opinionated software. It is not meant to archive feed content.</li>
<li>Fever is not supported on non-iOS mobile devices. As one guy designing, developing and supporting multiple apps you have to pick your battles.</li>
<li>Fever has not been updated with Retina graphics yet. Good thing there&#8217;s great native Fever clients like <a href="https://goneeast.com/sunstroke/">Sunstroke</a> and <a href="http://reederapp.com/iphone/">Reeder</a>.</li>
<li>Finally, I do not offer support on Twitter. Please use the <a href="http://feedafever.com/contact">contact form</a> (and keep in mind the first point above).</li>
</ol>]]></description>
	<link>http://shauninman.com/feeder/?FeederAction=clicked&amp;feed=Complete&amp;seed=http%3A%2F%2Fwww.shauninman.com%2Farchive%2F2013%2F03%2F14%2Ffire&amp;seed_title=Fire%21</link>
	<guid isPermaLink="false">1576@http://www.shauninman.com/</guid>
	<category>Fever</category>
	<pubDate>Thu, 14 Mar 2013 04:54:00 GMT</pubDate>
</item>
<item>
	<title>Crunchstart</title>
	<description><![CDATA[<p>Six games in six months. I&#8217;m doing a <a href="http://www.kickstarter.com/projects/shauninman/retro-game-crunch-six-games-in-six-months">Kickstarter</a>. Six games in six months. I&#8217;m teaming up with <a href="http://rustymoyher.com/">Rusty Moyher</a> and <a href="http://8bitmatt.com/">Matt Grimm</a>. Six games. In six months. We&#8217;re calling the project <a href="http://retrogamecrunch.com/">Retro Game Crunch</a>. </p>

<p>Can you guess what we want to do?</p>

<p><a href="http://www.kickstarter.com/projects/shauninman/retro-game-crunch-six-games-in-six-months"><img src="/assets/images/back-rgc-on-ks-500.png" alt="Back Retro Game Crunch on Kickstarter" title="" /></a></p>

<p>I&#8217;m no stranger to game jams. See <a href="http://shauninman.com/ludumdare/breathingroom/levels/">Breathing Room</a>, <a href="http://shauninman.com/ludumdare/millinaut/">Millinaut</a>, and <a href="http://shauninman.com/7dfps/vonneguts/">Vonneguts &amp; Glory</a>. Even <a href="http://shauninman.com/lastrocket/escape/">Flip&#8217;s Escape</a> was essentially the product of a jam. <a href="/archive/2011/05/02/breathing_room_postmortem">After</a> <a href="/archive/2011/08/22/data_entry_sentry_postmortem">each</a> <a href="/archive/2011/12/21/sinkhole_postmortem">one</a> I <a href="/archive/2012/04/24/millinaut_postmortem">go</a> <a href="/archive/2012/09/16/super_clew_land_postmortem">on</a> about how creatively rejuvenating the experience is. </p>

<p>The <a href="/archive/2012/09/16/super_clew_land_postmortem">most recent</a> Ludum Dare was no different. Except it was completely different. When it was over Matt, Rusty, and I had enjoyed working together and what we had created together so much that we didn&#8217;t want to let it go. &#8220;Wouldn&#8217;t it be cool,&#8221; we thought, &#8220;if we could do this all the time?&#8221; What if we could crunch on a game idea, free of preconceptions and expectations, for three days, then spend the next thirty polishing the hell out of it? So that&#8217;s what we did:</p>

<iframe src="http://player.vimeo.com/video/53185929?byline=0&portrait=0&badge=0" width="500" height="281" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>

<p>Super Clew Land Complete was just a proof of concept but it totally worked! Starting in January we want to make six games in six months following the same formula. We hope you want that too. Check out <a href="http://www.kickstarter.com/projects/shauninman/retro-game-crunch-six-games-in-six-months">our Kickstarter</a> and lend your support. If you pick the $25 reward level or higher you get the complete version of Super Clew Land as soon as the Kickstarter is funded!</p>]]></description>
	<link>http://shauninman.com/feeder/?FeederAction=clicked&amp;feed=Complete&amp;seed=http%3A%2F%2Fwww.shauninman.com%2Farchive%2F2012%2F11%2F12%2Fcrunchstart&amp;seed_title=Crunchstart</link>
	<guid isPermaLink="false">1573@http://www.shauninman.com/</guid>
	<category>Collaborations</category><category>Event</category><category>Gaming</category>
	<pubDate>Mon, 12 Nov 2012 16:48:00 GMT</pubDate>
</item>
<item>
	<title>Super Clew Land Postmortem</title>
	<description><![CDATA[<p>It&#8217;s been about three weeks since <a href="http://rustymoyher.com">Rusty Moyher</a>, <a href="http://8bitmatt.com">Matt Grimm</a>, and I created <a href="/ludumdare/superclewland/">Super Clew Land</a> for my <a href="/archive/2011/05/02/breathing_room_postmortem">fifth</a> <a href="/archive/2011/08/22/data_entry_sentry_postmortem">Ludum</a> <a href="/archive/2011/12/21/sinkhole_postmortem">Dare</a> (and <a href="/archive/2012/04/24/millinaut_postmortem">second</a> jam). About a week before the 24th Ludum Dare, Rusty direct messaged me on Twitter asking if I wanted to jam. </p>

<p>I remember being hesitant at first. I had just released <a href="/lastrocket/#flips-escape">Flip&#8217;s Escape</a>. I was eager to try out Matt Rix&#8217;s <a href="http://struct.ca/futile/">Futile</a> <em>and</em> create some new pixel art. Rusty is a kindred spirit, doing all the art, programming and music for his games so I wasn&#8217;t sure how we&#8217;d split the responsibilities. I needed to sleep on it. The week that followed was crazy and it wasn&#8217;t until the day of Ludum Dare that we actually confirmed our collaboration. About an hour before the theme was announced I suggested we pull in Matt who did an amazing job with the <a href="http://8bitmatt.bandcamp.com/album/flips-escape-original-sound-version">music</a> and sound effects on Flip&#8217;s Escape and another iOS game I&#8217;ve been working on (not to mention his own past Ludum Dare game <a href="http://8bitmatt.com/itty-8bitty-postmortem">itty-8bitty</a>).</p>

<p>Rusty and I spent a few hours shooting ideas back and forth (and down) based on the theme Evolution. We hit on what would become our final idea pretty early in the discussion but decided against it before coming round full circle hours later. Our first idea was a split screen platformer where a single input source controlled two characters who had to navigate a level (starting on opposite sides) to find each other and combine to complete the level. The second idea was a musical platformer. Music would evolve based on player actions. Gravity would be impacted by how on-beat the player&#8217;s input was. The most interesting idea played with the interaction between the macro (platformer) and micro (puzzle). The original design called for a Metroidvania with a Zelda-in-a-box overlay but was simplified for our (and our eventual players&#8217;) sanity.</p>

<p>Before going to bed around 3am that first Friday night I designed four primary forms of our protagonist and named him <a href="http://en.wiktionary.org/wiki/clew">Clew</a>. During the 72 hour period I drew over a hundred frames of 8-bit animation, most of them for Clew. </p>

<p style="line-height: 36px; width:480px;">
    <img src="/assets/images/scl/01-clew-slug-idle.gif" alt="01 Clew Slug Idle">
    <img src="/assets/images/scl/01-clew-slug-walk.gif" alt="01 Clew Slug Walk">
    <img src="/assets/images/scl/01-clew-slug-recoil.gif" alt="01 Clew Slug Recoil">
    <img src="/assets/images/scl/01-clew-slug-die.gif" alt="01 Clew Slug Die">
    <img src="/assets/images/scl/clew-evolve-legs.gif" alt="Evolve Legs">
    <br>
    <img src="/assets/images/scl/02-clew-legs-idle.gif" alt="02 Clew Legs Idle">
    <img src="/assets/images/scl/02-clew-legs-walk.gif" alt="02 Clew Legs Walk">
    <img src="/assets/images/scl/03-clew-legs-recoil.gif" alt="03 Clew Legs Recoil">
    <img src="/assets/images/scl/03-clew-legs-die.gif" alt="03 Clew Legs Die">
    <img src="/assets/images/scl/03-clew-legs-jump.gif" alt="03 Clew Legs Jump">
    <img src="/assets/images/scl/clew-evolve-tail.gif" alt="Clew Evolve Tail">
    <br>
    <img src="/assets/images/scl/04-clew-tail-idle.gif" alt="04 Clew Tail Idle">
    <img src="/assets/images/scl/04-clew-tail-walk.gif" alt="04 Clew Tail Walk">
    <img src="/assets/images/scl/04-clew-tail-recoil.gif" alt="04 Clew Tail Recoil">
    <img src="/assets/images/scl/04-clew-tail-die.gif" alt="04 Clew Tail Die">
    <img src="/assets/images/scl/05-clew-tail-jump.gif" alt="05 Clew Tail Jump">
    <img src="/assets/images/scl/06-clew-tail-swim.gif" alt="06 Clew Tail Swim">
    <img src="/assets/images/scl/06-clew-tail-swim-up.gif" alt="06 Clew Tail Swim Up">
    <img src="/assets/images/scl/06-clew-tail-swim-down.gif" alt="06 Clew Tail Swim Down">
    <img src="/assets/images/scl/clew-evolve-horn.gif" alt="Clew Evolve Horn">
    <br>
    <img src="/assets/images/scl/07-clew-horn-idle.gif" alt="07 Clew Horn Idle">
    <img src="/assets/images/scl/07-clew-horn-walk.gif" alt="07 Clew Horn Walk">
    <img src="/assets/images/scl/07-clew-horn-recoil.gif" alt="07 Clew Horn Recoil">
    <img src="/assets/images/scl/07-clew-horn-die.gif" alt="07 Clew Horn Die">
    <img src="/assets/images/scl/08-clew-horn-jump.gif" alt="08 Clew Horn Jump">
    <img src="/assets/images/scl/09-clew-horn-swim.gif" alt="09 Clew Horn Swim">
    <img src="/assets/images/scl/09-clew-horn-swim-up.gif" alt="09 Clew Horn Swim Up">
    <img src="/assets/images/scl/09-clew-horn-swim-down.gif" alt="09 Clew Horn Swim Down">
    <img src="/assets/images/scl/09-clew-horn-ram.gif" alt="09 Clew Horn Ram">
    <img src="/assets/images/scl/09-clew-horn-ram-up.gif" alt="09 Clew Horn Ram Up">
    <img src="/assets/images/scl/09-clew-horn-ram-down.gif" alt="09 Clew Horn Ram Down">
    <img src="/assets/images/scl/clew-evolve-wing.gif" alt="Clew Evolve Wing">
    <br>
    <img src="/assets/images/scl/10-clew-wings-idle.gif" alt="10 Clew Wings Idle">
    <img src="/assets/images/scl/10-clew-wings-walk.gif" alt="10 Clew Wings Walk">
    <img src="/assets/images/scl/10-clew-wings-recoil.gif" alt="10 Clew Wings Recoil">
    <img src="/assets/images/scl/10-clew-wings-die.gif" alt="10 Clew Wings Die">
    <img src="/assets/images/scl/11-clew-wings-jump.gif" alt="11 Clew Wings Jump">
    <img src="/assets/images/scl/12-clew-wings-swim.gif" alt="12 Clew Wings Swim">
    <img src="/assets/images/scl/12-clew-wings-swim-up.gif" alt="12 Clew Wings Swim Up">
    <img src="/assets/images/scl/12-clew-wings-swim-down.gif" alt="12 Clew Wings Swim Down">
    <img src="/assets/images/scl/10-clew-wings-ram.gif" alt="09 Clew Wings Ram">
    <img src="/assets/images/scl/10-clew-wings-ram-up.gif" alt="09 Clew Wings Ram Up">
    <img src="/assets/images/scl/10-clew-wings-ram-down.gif" alt="10 Clew Wings Ram Down">
    <img src="/assets/images/scl/13-clew-wings-flap.gif" alt="13 Clew Wings Flap">
    <br>
    <img src="/assets/images/scl/inchworm.gif" alt="Inchworm">
    <img src="/assets/images/scl/grasshopper.gif" alt="Grasshopper">
    <img src="/assets/images/scl/seahorse.gif" alt="Seahorse">
    <img src="/assets/images/scl/butterfly.gif" alt="Butterfly">
    <img src="/assets/images/scl/bananas.gif" alt="Bananas">
    <br>
    <img src="/assets/images/scl/molehole.gif" alt="Molehole">
    <img src="/assets/images/scl/walker-alt-2.gif" alt="Walker">
    <img src="/assets/images/scl/puffer-alt.gif" alt="Puffer">
    <img src="/assets/images/scl/streamer.gif" alt="Streamer">
    <img src="/assets/images/scl/spikes.gif" alt="Spikes">
</p>

<p>When I woke up Saturday morning Rusty had already implemented the core puzzle mechanic. By noon, I had designed some food for Clew and the evolution bar and stomach puzzle HUD. By 3pm, most of Clew&#8217;s main gameplay animation (running, jumping, swimming, and flying across the four forms) was done. The rest of Saturday was spent on food and enemy design and animation. Clew&#8217;s death, horn dashing, additional swimming directions, and transitional evolution animations were finished up on Sunday.</p>

<p>At some point I spent some time updating our Tiled map loading logic to support our three main layers, foreground, background, and water (a fourth spike layer was added later). Each layer uses its own tilemap and Flixel&#8217;s autotiling saves us from having to manually input the appropriate surface or non-surface tile. We hooked up my preferred duration-based jump mechanics pretty early on too. And Matt <a href="https://twitter.com/shauninman/status/239529614593122304">did not disappoint</a> on the music front.</p>

<p>I pulled an all-nighter Sunday and really ramped up the level design production. I had three main goals as I designed the world. Expose the player to paths they can&#8217;t immediately take (early water, gray blocks and even the final path to the left as soon as Clew reaches the surface). Airlock the player, forcing them to discover how to use their new ability without telling them explicitly. Create interesting opportunities to use each new ability as it becomes available. The &#8220;final&#8221; version of the map was done by 8pm, one hour before the deadline.</p>

<p><img src="/assets/images/scl/superclewland-map.png" alt="Super Clew Land Map"></p>

<p>At some point I implemented simple enemy behaviors (enemy paths are defined by their Entity&#8217;s width or height in Tiled). In the last hour I banged out a simple ending and in the last ten minutes a title screen.</p>

<p>Usually at this point I tell you how fulfilling and reenergizing Ludum Dare is and this postmortem is no different. Working with Rusty and Matt was an absolute blast. Such a blast that we&#8217;ve continued working on Super Clew Land together these past three weeks, tuning the game, expanding the map, and adding save flowers and more post-game content. We even have something cooking beyond this polished directors&#8217; cut of Super Clew Land. But&#8230;more on that later.</p>]]></description>
	<link>http://shauninman.com/feeder/?FeederAction=clicked&amp;feed=Complete&amp;seed=http%3A%2F%2Fwww.shauninman.com%2Farchive%2F2012%2F09%2F16%2Fsuper_clew_land_postmortem&amp;seed_title=Super+Clew+Land+Postmortem</link>
	<guid isPermaLink="false">1572@http://www.shauninman.com/</guid>
	<category>Collaborations</category><category>Design</category><category>Flash</category><category>Gaming</category>
	<pubDate>Sun, 16 Sep 2012 15:16:00 GMT</pubDate>
</item>
<item>
	<title>Break For It!</title>
	<description><![CDATA[<p><a href="http://itunes.apple.com/us/app/flips-escape/id546109449?ls=1&amp;mt=8" style="display: block; margin-left:-10px;"><img src="/assets/images/break-for-it.png" width="500" height="500" alt="Break for it!"></a></p>

<p>Three big-ish announcements to celebrate the one year anniversary of the release of The Last Rocket:</p>

<ol>
<li><a href="http://itunes.apple.com/us/app/flips-escape/id546109449?ls=1&amp;mt=8">Flip&#8217;s Escape</a>, an 8-bit endless runner for iPhone, iPad and iPod touch that picks up right where The Last Rocket left off, is available now! Kick-ass Capcom-esque <a href="http://8bitmatt.bandcamp.com/album/flips-escape-original-sound-version">soundtrack</a> courtesy of <a href="http://8bitmatt.com/">Matt Grimm</a>.</li>
<li><a href="http://itunes.apple.com/us/app/the-last-rocket/id429747672?ls=1&amp;mt=8">The Last Rocket</a> is a buck off! If you haven&#8217;t played The Last Rocket yet you can get it <em>and</em> Flip&#8217;s Escape for the price of the original game. Both <a href="http://www.edge-online.com/features/50-must-play-ios-games">Edge magazine</a> and <a href="http://toucharcade.com/2011/12/23/best-ios-games-2011-buyers-guide/">Touch Arcade</a> included The Last Rocket on their respective year end best of lists.</li>
<li>The Last Rocket is <a href="http://itunes.apple.com/us/app/the-last-rocket/id548951908?ls=1&amp;mt=12">now available on the Mac</a>! Play with your keyboard or use <a href="http://abstractable.net/enjoy/">Enjoy</a> to setup a USB gamepad. (Game Center support is planned for the first update.)</li>
</ol>

<p>Check out the new <a href="/lastrocket/">The Last Rocket + Flip&#8217;s Escape</a> duplex site for trailers and select reviews as they become available.</p>]]></description>
	<link>http://shauninman.com/feeder/?FeederAction=clicked&amp;feed=Complete&amp;seed=http%3A%2F%2Fwww.shauninman.com%2Farchive%2F2012%2F08%2F16%2Fbreak_for_it&amp;seed_title=Break+For+It%21</link>
	<guid isPermaLink="false">1570@http://www.shauninman.com/</guid>
	<category>Collaborations</category><category>Apple</category><category>Gaming</category><category>NSF</category>
	<pubDate>Thu, 16 Aug 2012 04:01:00 GMT</pubDate>
</item>
<item>
	<title>Day-O Retina Update</title>
	<description><![CDATA[<p><a href="/archive/2011/10/20/day_o_mac_menu_bar_clock">Day-O</a> has been updated to 1.1. This update includes a retina-ready menubar icon, better icon alignment when the date &amp; time format is left empty, and Day-O now restores focus to the previous app when dismissed.</p>

<p><a href="http://shauninman.com/assets/downloads/Day-O.zip">Download Day-O</a>.</p>]]></description>
	<link>http://shauninman.com/feeder/?FeederAction=clicked&amp;feed=Complete&amp;seed=http%3A%2F%2Fwww.shauninman.com%2Farchive%2F2012%2F06%2F22%2Fday_o_retina_update&amp;seed_title=Day-O+Retina+Update</link>
	<guid isPermaLink="false">1569@http://www.shauninman.com/</guid>
	<category>Apple</category>
	<pubDate>Fri, 22 Jun 2012 13:45:00 GMT</pubDate>
</item>
<item>
	<title>Millinaut Postmortem</title>
	<description><![CDATA[<p>This past weekend <a href="http://www.ludumdare.com">Ludum Dare</a> celebrated its tenth anniversary. Ten years of crazy people going it alone to create a game in 48 hours. Two years ago they expanded the event to allow teams to participate in a separate but concurrent 72 hour jam. This is my fourth Ludum Dare (<a href="/archive/2011/05/02/breathing_room_postmortem">1</a>, <a href="/archive/2011/08/22/data_entry_sentry_postmortem">2</a>, <a href="/archive/2011/12/21/sinkhole_postmortem">3</a>) but my first as a jam participant. I teamed up with <a href="http://mrgan.com/">Neven Mrgan</a> and <a href="http://alexogle.com/">Alex Ogle</a> to create <a href="/ludumdare/millinaut/">Millinaut</a>.</p>

<p><a href="/ludumdare/millinaut/"><img src="/assets/images/millinaut.png" alt="" title="" /></a></p>

<p>Neven was working from Portland and Alex and I from Chattanooga in the <a href="http://tubatomic.com">Tubatomic</a> offices. (Trivia: The Tub offices are above an event space that hosted <em>two</em> proms during this event.) We used <a href="http://db.tt/OYPKyTRx">Dropbox</a> to share files and Skype to bridge the two locations. (Did you know that on the iPad 3 video chat will drain the battery faster than USB can charge it? Neither did I.) We did very little preparation in advance of the theme annoucement. I made sure <a href="http://www.adobe.com/products/flash-builder.html">Flash Builder</a> still worked and figured out how to import <a href="http://www.mapeditor.org">Tiled</a> maps into <a href="http://flixel.org">Flixel</a>. </p>

<p>As Neven <a href="http://mrgan.tumblr.com/post/21695065510/millinaut">said</a>, &#8220;Flash, lol&#8221;. Why Flash instead of HTML5? My last two Ludum Dare games were HTML5 and the results were really lackluster. Zero to poor audio support, terrible mobile performance, and ugh, the choice between anti-aliasing or memory devouring in-canvas scaling. I&#8217;d rather create a good experience on one platform than a poor experience on many.</p>

<p>Like everyone else we got the theme &#8220;Tiny World&#8221; at 9 Eastern/6 Pacific on Friday night. While brainstorming we touched on Liliputians, Innerspace, and Alan Moore&#8217;s Voice of the Fire. We talked about the myriad things that can happen in small spaces, phonebooths, hotels, airplane cabins, and in our own heads. About small physical spaces observed over huge stretches of time. The idea of splitting yourself into smaller and smaller pieces and using the discarded pieces to progress. </p>

<p>An early narrative saw the player in a coma, wandering around inside his own head, piecing together the experiences that lead him to and eventually out of his current predicament. Was he a heroic fireman or a poisoned king? A victim of a drowning or a car accident? An astronaut knocked unconscious during reentry? We talked about additive level design where the entire game would play out in one room with each colected item filling in a narrative blank and adding more detail and new challenges to the game world. A player would control ego, super ego and id. The idea of an introspective totem pole eventually lead to the segmented gameplay mechanic.</p>

<p>While Neven pixelled the protagonist and Alex developed gameplay ideas and continued exploring narrative options I stumbled through <a href="http://pixelpracht.wordpress.com/2010/03/31/flash-tmx-parser/">loading tmx files</a>. Within a couple hours we had the core dropping heads and using them as platforms mechanic working and were able to build and test levels quickly. </p>

<p>Things get blurry here. Collision resolution with a segmented character was really difficult to implement. Adding in enemies and spikes only complicated things. The stack height affects environmental collisions but the damageable hitbox doesn&#8217;t actually change size. Changing the player&#8217;s height caused Flixel&#8217;s camera to shift suddenly or pushed the player into the ground and out the bottom of the level. Once we introduced enemies the idea of activating the heads, one moving up, the other falling was developed. So now the heads had different collision states. For a while you could ride the rocket up the screen (or the planet down) but that ability neutered the challenge of the vertical platforming.</p>

<p>While I continued to debug and add features, Neven and Alex both designed levels to explore the gameplay possibilities. Occasionally Neven would create some new characters or animation sequences. Alex performed the unenviable task of building up a library of sound effects and serving as a second pair of eyes and lobes diagnosing bugs in the game. Early Sunday morning I composed a background theme and slept for the first time since Thursday night (I slept 11 hours total during the event which spanned 72 hours plus the 12 hours before we got the theme).</p>

<p>The final 24 hours were focused on polishing what we already had. Inserting sound effects, composing background music and goal fanfare, fixing bugs, refining enemy and projectile interaction, creating more bugs, setting up autotiling and implementing the parallax starfield. Alex figured out how to get cutscenes created in the Flash IDE <a href="http://flashgamedojo.com/wiki/index.php?title=Cutscene_Template">into Flixel</a> and built those out. Neven trimmed the level fat. We had a bit of a scare at zero hour when the Flash Builder release build wouldn&#8217;t load our external levels so we ended up posting the debug build.</p>

<p>Ludum Dare is always a rewarding experience. You have a deadline and a direction and 48 (or 72) hours to see where they take you. At the end of the weekend you have something that didn&#8217;t exist before. It&#8217;s simultaneously exhausting and rejuvenating. You can <a href="http://tweetlibrary.com/shauninman/millinaut">relive our experience</a> and if you participated you can <a href="http://www.ludumdare.com/compo/ludum-dare-23/?action=preview&amp;uid=11930">rate our game</a>.</p>]]></description>
	<link>http://shauninman.com/feeder/?FeederAction=clicked&amp;feed=Complete&amp;seed=http%3A%2F%2Fwww.shauninman.com%2Farchive%2F2012%2F04%2F24%2Fmillinaut_postmortem&amp;seed_title=Millinaut+Postmortem</link>
	<guid isPermaLink="false">1567@http://www.shauninman.com/</guid>
	<category>Collaborations</category><category>Gaming</category>
	<pubDate>Tue, 24 Apr 2012 21:38:00 GMT</pubDate>
</item>
<item>
	<title>Aspect Ratios &amp; Camera Behavior</title>
	<description><![CDATA[<p>It&#8217;s no secret that I&#8217;m working on a new iOS game. (Nope, not <a href="/archive/2010/02/23/mimeo_and_the_kleptopus_king">Mimeo</a>, still don&#8217;t feel like I have the chops to pull that off. Yet.) While I haven&#8217;t said too much about it yet, like Mimeo, the new game is a 2d platformer targeting both the iPhone/iPod touch and the iPad. The different aspect ratios of the two device types present some unique challenges when designing levels. (Development is overlapping with a number of other projects/responsibilities so I&#8217;ve been lax in my <a href="/liftoff/">development diary</a> duties for this game. <em>*dusts off blog*</em>)</p>

<p>Levels come in four varieties: a single screen tall and wide (room), a single screen tall and multiple screens wide (corridor), a single screen wide and multiple screens tall (shaft), or multiple screens wide and tall (cavern). Like <a href="/lastrocket/">The Last Rocket</a> the new game has an 8-bit aesthetic so a screen on an iPad is 256x192 pixels and 240x160 on an iPhone (both scaled squarely to exact device resolution). </p>

<p><img src="/assets/images/aspect-screens.png" alt="" title="" /></p>

<p>Obviously, a single iPad screen won&#8217;t fit on an iPhone screen without the camera drifting vertically on corridors, horizontally on shafts, or both in rooms and caverns (vertical drift can be minimized with the use of a <a href="http://www.youtube.com/watch?v=nryuCql2k9A">trap</a>). The Last Rocket sidestepped the issue with single iPhone screen sized levels and a tile set that resolves to black so the unused area of the iPad screen is unnoticeable.</p>

<p>The solution I&#8217;ve decided on requires a slightly modified camera behavior and that some simple rules be observed when designing levels.</p>

<p>The camera still follows the trap (instead of the player character) but on the iPhone the camera is snapped to a special bounds rectangle&#8212;unless the player character moves beyond that rectangle. The bounds rectangle is four rows and two columns smaller than the level and offset by two rows and one column from origin.</p>

<p><img src="/assets/images/aspect-bounds.png" alt="" title="" /></p>

<p>Look familiar? On a single screen room, the relationship between the level and the bounds is the same as the relationship between the iPad and iPhone screens. So what happens when the player character moves beyond the bounds? The camera slides to its natural, unsnapped position using the player character&#8217;s current velocity (or a default value when stationary). </p>

<p><img src="/assets/images/aspect-structure.png" alt="" title="" /></p>

<p>The level design considerations are easier to explain. To ensure that an edge is always visible on screen at the edges of a level, the top and bottom three rows and two columns on the left and right must be solid (with obvious exceptions for the doors that connect levels). I also block out some persistent space for the player&#8217;s thumbs (but not on screen buttons!). More on that in another post.</p>]]></description>
	<link>http://shauninman.com/feeder/?FeederAction=clicked&amp;feed=Complete&amp;seed=http%3A%2F%2Fwww.shauninman.com%2Farchive%2F2012%2F04%2F04%2Flevel_design_aspect_ratios_camera_behavior&amp;seed_title=Aspect+Ratios+%26amp%3B+Camera+Behavior</link>
	<guid isPermaLink="false">1565@http://www.shauninman.com/</guid>
	<category>Design</category><category>Gaming</category>
	<pubDate>Wed, 04 Apr 2012 19:27:00 GMT</pubDate>
</item>
<item>
	<title>Polished MML Bundle</title>
	<description><![CDATA[<p>A couple of weeks ago <a href="http://8bitmatt.com/">Matt Grimm</a> emailed an update to my <a href="/archive/2010/02/13/an_mml_bundle_for_textmate">TextMate MML bundle</a>. The two big adds are multi-line comments and much improved error reporting. The full list of changes follows:</p>

<ul>
<li>Multi-line comments (syntax highlighting and keyboard shortcuts)  <code>cmd + opt + /</code></li>
<li>Quickly change language to mml (shows in the list of other languages that use this shortcut too)  <code>ctrl + shift + opt + m</code></li>
<li>Easier to read ruby in bundle scripts (string interpolation)</li>
<li>Better cleanup. In some cases .h files were still hanging around.</li>
<li>When compiling fails you&#8217;ll know! Shows in a textmate tooltip. (no more guessing if something worked)</li>
</ul>

<p>Thanks Matt!</p>

<p><a href="/assets/downloads/MML.zip">Download</a> the updated bundle.</p>]]></description>
	<link>http://shauninman.com/feeder/?FeederAction=clicked&amp;feed=Complete&amp;seed=http%3A%2F%2Fwww.shauninman.com%2Farchive%2F2012%2F03%2F21%2Fpolished_mml_bundle&amp;seed_title=Polished+MML+Bundle</link>
	<guid isPermaLink="false">1563@http://www.shauninman.com/</guid>
	<category>Collaborations</category><category>Music</category><category>NSF</category>
	<pubDate>Wed, 21 Mar 2012 18:07:00 GMT</pubDate>
</item>
<item>
	<title>Sprint by South West</title>
	<description><![CDATA[<h2 id="h2-or-almost-the-most-expensive-bus-ride">Or (Almost) The Most Expensive $1 Bus Ride</h2>

<p><img src="/assets/images/run.gif" alt="" title="" /></p>

<p><a href="http://www.jenseninman.com/blog/text/13461106/sxswi">Leslie</a> and I arrived in Austin yesterday for our <a href="http://www.shauninman.com/archive/2005/03/24/a_proposal_at_thirty_four_thousand_feet">seventh SXSW</a>. We use to take a taxi from the airport until we discovered the <a href="http://www.capmetro.org/riding/airport.asp">$1 Capital Metro bus</a> a few years go. This year I did something unbelievably stupid: I forgot my laptop bag on the bus.</p>

<p>We got off at 4th and Congress and walked about a block before I realized what I had done. I immediately broke into a sprint in the direction I thought the bus was headed (it was already out of sight). Hands on my head, muttering, &#8220;Oh fuck, oh fuck, oh fuck&#8221;, I clopped along in my flip-flops for about a block before whipping them off for more speed. I dashed down every cross street, trying to desperately to pull up my mental map of downtown Austin (you don&#8217;t so much navigate Austin at SXSW as you do flock).</p>

<p>As I reached the borders of that map I almost ran past the bus at a stop light. I manically banged on the bus door, hoping the driver would recognize me from exiting minutes earlier and not mistake me for some deranged, barefoot maniac (though he wouldn&#8217;t have been too far off). Fortunately my laptop bag was still aboard, having slid out of sight, under the seat I had occupied.</p>

<p>I am fortunate I was able to intercept the bus before it continued on its way. In the laptop bag was my laptop, my iPad, my DS Lite and a handful of games, our house keys, our sole car key and clicker, and my antibiotics for the obligatory South By Sinus Infection.</p>

<p>There are so many different ways this story could have ended. If we had taken a taxi I might have never seen the bag again. My barefoot sprint could have ended in stitches (there seems to be broken glass everywhere here), or worse, hit by a car or the very bus I was frantically searching for. If Leslie wasn&#8217;t with me I would have had to choose between abandoning my luggage or my livelihood (so long luggage!). I feel bad for all the quantum Shaun&#8217;s that made it this far only to suffer one of these other, less fortunate fates. Sorry guys.</p>

<p><a href="http://tweetlibrary.com/shauninman/sprintby">tl;dr</a></p>]]></description>
	<link>http://shauninman.com/feeder/?FeederAction=clicked&amp;feed=Complete&amp;seed=http%3A%2F%2Fwww.shauninman.com%2Farchive%2F2012%2F03%2F09%2Fsprint_by_south_west&amp;seed_title=Sprint+by+South+West</link>
	<guid isPermaLink="false">1562@http://www.shauninman.com/</guid>
	<category>Personal</category>
	<pubDate>Fri, 09 Mar 2012 13:44:00 GMT</pubDate>
</item>
<item>
	<title>Detox</title>
	<description><![CDATA[<p>This is an intervention. <a href="/assets/downloads/Detox.safariextz">Detox</a> is a tiny Safari extension that automatically expands shortened t.co links on the Twitter site (third-party desktop app users <del>are out of luck, sorry</del> should see the 1.1 update below). </p>

<p>Ever wonder why links you find via Twitter don&#8217;t show up in your browser history and aren&#8217;t suggested by autocomplete in the url bar? The t.co link shortener serves known browser user agents an HTML page containing a JavaScript or meta refresh redirect (instead of the standard <code>Location</code> header) so that Twitter can stake itself out as the referrer when coming from third-party clients. This confuses Safari.</p>

<p><a href="http://haveamint.com/">Stats are cool and all</a> but only when they don&#8217;t break the experience for your users. </p>

<p><a href="/assets/downloads/Detox.safariextz">Download Detox</a>.</p>

<p>(<a href="http://zackarycorbett.com/">Zackary Corbett</a> made a <a href="http://zyber17.com/detox/">Chrome version</a> too, which may or may not be necessary. Firefox and Opera also appear to be unaffected.)</p>

<h2 id="h2-detox-">Detox 1.1</h2>

<p>Now when you hit a t.co redirect page (from a native client or a direct message from Mail.app) the destination url is added to the document title making the destination url appear in your history and url autocomplete suggestions.</p>

<h2 id="h2-detox-">Detox 1.2</h2>

<p>Added <a href="https://gist.github.com/1792384">code</a> submitted by <a href="https://twitter.com/Orangenhain/status/168065964406079489">Orangenhain</a> that fixes a similar history-breaking problem on Google&#8217;s search results.</p>

<h2 id="h2-detox-">Detox 1.2.1</h2>

<p>Recently Twitter updated their link expansion <code>data</code> attributes. Previously the expanded url could be found in each link&#8217;s <code>data-expanded-url</code> attribute. A recent update duplicates the t.co url in <code>data-expanded-url</code> and puts the true url in <code>data-ultimate-url</code>.</p>

<h2 id="h2-detox-">Detox 1.2.2</h2>

<p>Digging deeper it appears that <code>data-ultimate-url</code> contains the terminal for twice (or more) shortened urls (eg. a t.co&#8217;d bit.ly pointing to the terminal google.com). Detox 1.2.2 Uses <code>data-ultimate-url</code> if available, falling back on the original <code>data-expanded-url</code>. <code>data-expanded-url</code> containing the t.co instead of the expanded url may have just been a temporary Twitter bug. I regret jumping to conclusions but with twice shortened urls the user never sees the intermediate url which is what ultimately lead to the confusion.</p>]]></description>
	<link>http://shauninman.com/feeder/?FeederAction=clicked&amp;feed=Complete&amp;seed=http%3A%2F%2Fwww.shauninman.com%2Farchive%2F2012%2F01%2F19%2Fdetox&amp;seed_title=Detox</link>
	<guid isPermaLink="false">1560@http://www.shauninman.com/</guid>
	<category>Apple</category><category>JavaScript</category>
	<pubDate>Thu, 19 Jan 2012 21:35:00 GMT</pubDate>
</item>
<item>
	<title>Stock</title>
	<description><![CDATA[<p>These things I produced in 2011:</p>

<ul>
<li><a href="/lastrocket/">The Last Rocket</a> Though not released until mid-August I started work on what I consider to be my first proper game in early January. The development of this game, more than anything else, shaped the past year. It was critically well received, responsible for a quarter of the year&#8217;s income, and even made <a href="https://twitter.com/matthewdkenyon/status/149484341154680833">Edge</a>, <a href="http://toucharcade.com/2011/12/23/best-ios-games-2011-buyers-guide/">Touch Arcade</a> and <a href="http://www.iphonealley.com/news/iphone-alleys-10-6-best-reviewed-games-of-2011">iPhone Alley</a>&#8217;s year end lists.</li>
<li><a href="/archive/2011/04/18/unplayed">Unplayed</a> I&#8217;d been privately maintaining a list of games I&#8217;ve played or want to play since getting a DS Lite in June of 2006. After briefly dabbling with a Tumblr to maintain the list I wrote this trifle of a web app.</li>
<li><a href="/archive/2011/05/02/breathing_room_postmortem">Breathing Room</a> My first Ludum Dare. Also, an early study from my thinking about level design.</li>
<li><a href="/archive/2011/07/25/cssfrag">CSSFrag</a> A Safari extension for targeting specific DOM elements by url. Passed the torch to <a href="http://karanlyons.com/pinpoint/">Pinpoint</a>.</li>
<li><a href="/archive/2011/06/02/reply_reach">Reply Reach</a>  &amp; <a href="/archive/2011/08/26/past_ats">Past @s</a> Two little JavaScript bookmarklets for use on Twitter.com.</li>
<li><a href="/archive/2011/08/22/data_entry_sentry_postmortem">Data Entry Sentry</a> My second Ludum Dare and my first attempts at a JavaScript/Canvas game. The genesis of the <a href="http://www.ludumdare.com/compo/2011/12/16/si2d-js/">JavaScript port</a> of the Objective-C framework I use for all of my iOS games, SI2d.</li>
<li><a href="/archive/2011/10/20/day_o_mac_menu_bar_clock">Day-O</a> A simple menubar calendar replacement for OS X.</li>
<li><a href="/archive/2011/12/05/chunks">Chunks</a> A native iOS port of my second Ludum Dare game, Data Entry Sentry. I didn&#8217;t promote this as much as I probably should have but a more vocal release might have set expectations too high for this modest little falling block game.</li>
<li><a href="/archive/2011/12/21/sinkhole_postmortem">Sinkhole</a> My third Ludum Dare. A tense little exploration game that I&#8217;m still actively developing. SI2d.js was updated significantly for this game. I even ported it from Canvas to DOM sprites to compare performance (pretty much head to head by the numbers but the Canvas version feels smoother in play and is easier to extend).</li>
<li><a href="/archive/2011/12/26/the_last_rocket_suite">The Last Rocket Suite</a> The <a href="/lastrocket/soundtrack.html">soundtrack</a> from The Last Rocket did pretty well too so I released this string quartet version of three themes from the game.</li>
</ul>

<p>In addition to these wholly new things, I also released a bunch of updates to <a href="http://haveamint.com/">Mint</a> and its <a href="http://haveamint.com/peppermill/">Pepper</a>, <a href="http://feedafever.com/">Fever</a>, <a href="http://shortwaveapp.com/">Shortwave</a>, <a href="/archive/lessn">Lessn</a> and <a href="/noisees/">NoiseES</a>. I&#8217;m also about a month or two into another all new 8-bit iOS game, inspired as much by Metroid and Super Mario Bros 2/Doki Doki Panic as it is by Studio Ghibli&#8217;s films. </p>

<p>All in all, a very productive year.</p>]]></description>
	<link>http://shauninman.com/feeder/?FeederAction=clicked&amp;feed=Complete&amp;seed=http%3A%2F%2Fwww.shauninman.com%2Farchive%2F2012%2F01%2F01%2Fstock_2011&amp;seed_title=Stock</link>
	<guid isPermaLink="false">1559@http://www.shauninman.com/</guid>
	<category>Apple</category><category>CSS</category><category>Design</category><category>Flash</category><category>JavaScript</category><category>Music</category><category>Personal</category><category>Mint</category><category>Gaming</category><category>Fever</category>
	<pubDate>Sun, 01 Jan 2012 19:39:00 GMT</pubDate>
</item>
<item>
	<title>Sinkhole Postmortem</title>
	<description><![CDATA[<p><img src="/assets/images/sinkhole-title.png" alt="" title="" /></p>

<p>This past weekend I participated in my third <a href="http://www.ludumdare.com/">Ludum Dare</a>. I created an HTML5 game called <a href="/ludumdare/alone/sinkhole/">Sinkhole</a> from scratch in 48 hours. It was an awesome experience and the game didn&#8217;t turn out half bad either. <a href="/archive/2011/08/22/data_entry_sentry_postmortem">Last time</a> I had just launched <a href="/lastrocket/">The Last Rocket</a>. This time I had just launched <a href="/chunks/">Chunks</a>, a native port of my previous Ludum Dare creation.</p>

<p>The theme this time around was <a href="http://www.ludumdare.com/compo/ludum-dare-22/">Alone</a>. Unlike the previous two Dares where I came up with three ideas and then slept on them before starting, this time I had an idea I was really excited about and after only half an hour set to work.</p>

<p>The first three lines of <a href="/ludumdare/alone/alone.txt">my notes</a> from that first night read:</p>

<ul>
<li>top-down</li>
<li>exploration by flashlight</li>
<li>something moving in the darkness</li>
</ul>

<p>I wanted there to be an urgency to the exploration. I wanted the antagonists, the stalkers, to be unseen. Let the players&#8217; imagination do the heavy lifting.</p>

<p>I also knew I didn&#8217;t want to have to worry about level design so after bootstrapping the <a href="http://www.ludumdare.com/compo/2011/12/16/si2d-js/">JavaScript framework</a> I cobbled together for the last Ludum Dare I started researching <a href="http://roguebasin.roguelikedevelopment.org/index.php?title=Cellular_Automata_Method_for_Generating_Random_Cave-Like_Levels">cellular automata</a> and <a href="http://devpro.it/javascript_id_137.html">pathfinding</a> so I could dynamically generate solvable maps to use. I managed to get the skeleton of a solution working (ported from C to JavaScript) before bed the first night.</p>

<p>While falling asleep I started imagining the stalkers&#8217; behavior. After a short delay a stalker appears and attempts to sneak up behind the player. Facing the stalker causes them to freeze. Shining a light on them causes them to flee. But every time one flees another, slightly faster, stalker spawns. The player solves their current problem at the cost of future safety. More impetus to find the exit quickly. </p>

<p>In addition to the unseen threat of the stalkers, the player&#8217;s defensive and discovery tool, light, is limited. The flashlight&#8217;s batteries drain in one minute. Matches burn out after 3 seconds. It takes time to load a new battery or strike a match. During that time visibility is nil. Or rather, you can see the stalkers approach but not the player or the walls of the level. Once the player runs out of light sources and their eyes adjust only slivers of walls are visible on the periphery of their limited cone of vision. The player must rely on these subtle hints and the minimap to find another battery or matchbook to buy them some more time to find the exit.</p>

<p>I eventually fell asleep.</p>

<p>I woke up to the realization that I had attempted (and abandoned) a very similar mechanic during my <a href="/archive/2011/05/02/breathing_room_postmortem">first Ludum Dare</a> (the original Chibi Pan &amp; Pup idea).</p>

<p>Shaking off the thought of repeat failure I quickly implemented a TileMap class in SI2d.js and a way to crop the viewport allowing the &#8220;camera&#8221; to follow the player as they moved across the map. I revisted the touch-based controls then created some rough graphic masks to start implementing the different sized beams of light that define the gameplay. Minimaps came quickly. Around this time I realized that the framerate wasn&#8217;t going to be acceptable on the iPad and implemented keyboard controls as well.</p>

<p>Power-ups, a compass to reveal the exit on the minimap, batteries and matchbooks to recharge your light supply slotted in pretty easily. Stalkers gave me a bit of trouble initially. They needed to spawn outside of the players cone of vision or else they would flee immediately.</p>

<p>The story arrived in the form of four tweets that became the prologue:</p>

<blockquote>
  <p>Tomo the Cartographer was on a routine survey mission in Central America when the earth opened up and swallowed him whole.</p>
  
  <p>Miraculously, he survived falling hundreds of feet and walked away with only a broken arm.</p>
  
  <p>Guide Tomo out of the sinkhole before he runs out of flashlight batteries or burns through all his matches.</p>
  
  <p>It will be a lonely climb back to the surface. At least, Tomo thinks he&#8217;s alone. He <em>hopes</em> he&#8217;s alone.</p>
</blockquote>

<p>Around midnight the second and final night I started on the artwork. Like all of my games to date I limited my palette to only colors the NES was <a href="http://en.wikipedia.org/wiki/File:NES_palette.png">capable of producing</a>. Tomo came together quickly, based largely on the Link sprite from the original Zelda (with a strong Mega Man influence). I used Mario from SMB3 as a referene when drawing his vine climbing animation. I had to redraw the power-ups and background tiles a few times but I eventually arrived at something I was happy with. I had a lot of fun creating the onomatopoeia bursts that represent the stalkers.</p>

<p>The remainder of the last day is a disjointed blur. Lots of revisions to stalker behavior. Persisting inventory between levels. In a remarkable moment of clarity I coded, from memory, in one go, an error-free JavaScript port of my Objective-C TextMap class. This allowed me to get some of Tomo&#8217;s internal dialog on-screen while playing.</p>

<p>The title screen graphic was a happy accident. While trying to draw grass hanging over the edge at the top of the sinkhole I accidentally turned off (or on) another layer producing the masked out, moss-clinging-to-the-sides effect you see in the finished artwork.</p>

<p>By the end of it all I couldn&#8217;t see straight, my own eyes were anti-aliasing the pixel art I had slaved over. But it was totally worth it. It&#8217;s creatively rejuvenating, knowing that you just created something, non-negligible, largely from scratch, in just 48 hours. If you participated in Ludum Dare, please play and rate <a href="http://www.ludumdare.com/compo/ludum-dare-22/?action=preview&amp;uid=4017">my entry</a> (I&#8217;d love any feedback you have as well)!</p>

<p>I&#8217;ve been continuing to develop the game in the days since submitting. Improving collision detection, softening cornering, improving keyboard responsiveness, adding <a href="https://wiki.mozilla.org/GamepadAPI">Gamepad API</a> support, refining power-up frequency and distribution, tuning stalker behavior. Maps no longer regenerate every time you die. The minimap remembers previously explored areas. Inventory reverts to its unique pre-level state rather than resetting completely. <a href="/ludumdare/alone/sinkhole/">Play the updated version of Sinkhole</a>. Who knows, maybe someday there will be an expanded native iOS version.</p>]]></description>
	<link>http://shauninman.com/feeder/?FeederAction=clicked&amp;feed=Complete&amp;seed=http%3A%2F%2Fwww.shauninman.com%2Farchive%2F2011%2F12%2F21%2Fsinkhole_postmortem&amp;seed_title=Sinkhole+Postmortem</link>
	<guid isPermaLink="false">1556@http://www.shauninman.com/</guid>
	<category>JavaScript</category><category>Gaming</category>
	<pubDate>Thu, 22 Dec 2011 03:46:00 GMT</pubDate>
</item>
<item>
	<title>Chunks</title>
	<description><![CDATA[<p><strong>Update</strong> Chunks is <a href="/chunks/">out now</a>! Grab the <a href="/chunks/chunks-osv.zip">four track OSV</a> while you&#8217;re at it.</p>

<p>Later tonight or early tomorrow I&#8217;ll have a new game in the App Store. (For real this time. Last week <a href="/horrorvacui2/">Horror Vacui 2</a> showed up on a number of App Store new release lists for no apparent reason despite being released over a year ago.) It&#8217;s a small game with more in common with Horror Vacui than <a href="/lastrocket/">The Last Rocket</a>. And it might look familiar.</p>

<p><a href="/chunks/"><img src="/assets/images/chunks.png" alt="Introducing the Chunks in Data Entry Sentry" title="" /></a></p>

<p><a href="/chunks/">Chunks</a> is a native iOS port of my most recent <a href="http://www.ludumdare.com/compo/about-ludum-dare/">Ludum Dare</a> game <em>Escape! Data Entry Sentry</em>. The core gameplay mechanic and most of the graphics were created over a <a href="/archive/2011/08/22/data_entry_sentry_postmortem">48 hour period</a> shortly after releasing The Last Rocket. While I&#8217;ve been working on a new, more ambitious 8-bit platformer for iOS (somewhere between The Last Rocket and the unreleased <a href="/archive/2010/02/23/mimeo_and_the_kleptopus_king">Mimeo and the Kleptopus King</a> in scale) I&#8217;ve also made time to rename and refine Chunks for a proper release.</p>

<p>In addition to some gameplay tweaks and instructional UI, I composed three new chiptunes, a short game over jingle plus a handful of sound effects. The themes were inspired by falling block giants Tetris and Dr. Mario (with a little The Guardian Legend thrown in for good measure). The tempo of the background music increases with the speed of the conveyor as you play. This change is imperceptible from level to level but after a while you really start to feel the frantic increase in momentum. Grab the <a href="/assets/music/nsfe/chunks.nsfe">NSFe</a> and give it a listen in <a href="/noisees/">NoiseES</a>.</p>

<p>Chunks is a universal app so you can play on your iPhone, iPod touch or iPad and includes Game Center leader boards for high score and highest level. It&#8217;s a small game with humble origins so it&#8217;s only a buck. <a href="/chunks/">Check it out tomorrow!</a></p>]]></description>
	<link>http://shauninman.com/feeder/?FeederAction=clicked&amp;feed=Complete&amp;seed=http%3A%2F%2Fwww.shauninman.com%2Farchive%2F2011%2F12%2F05%2Fchunks&amp;seed_title=Chunks</link>
	<guid isPermaLink="false">1554@http://www.shauninman.com/</guid>
	<category>Apple</category><category>Music</category><category>Gaming</category><category>NSF</category>
	<pubDate>Mon, 05 Dec 2011 16:47:00 GMT</pubDate>
</item>
<item>
	<title>Day-O</title>
	<description><![CDATA[<p><img src="/assets/images/day-o.png" alt="Day-O" title="" /></p>

<p><strong>Day-O</strong> is a simple menu bar clock replacement with a simple calendar for your Mac. It&#8217;s free, as-is (which means I&#8217;m not providing support, taking feature requests, addressing perceived inadequacies or releasing the source code). Here&#8217;s how it came to be:</p>

<p>My late upgrade to Lion was relatively painless. The only casualty was <a href="http://www.objectpark.net/mcc.html">MenuCalendarClock</a>. It somehow clobbers the Dictionary shortcut key command <em>and gesture</em> which I use daily (if not hourly). I thought I could live without MMC. I don&#8217;t use any calendar apps so I was just using the free version for the simple date icon and convenient fly-out calendar. I thought the system menu clock would suffice. Really, how frequently did I use the fly-out calendar?</p>

<p>Turns out, quite a bit. I tried a few replacements but couldn&#8217;t stand any of their date icons. MMC developer Objectpark seems to have gone quiet. Fortunately, as I <a href="https://twitter.com/shauninman/status/126767392633270272">quipped on Twitter</a>, I&#8217;ve &#8220;never met a wheel I didn&#8217;t want to reinvent.&#8221;</p>

<p>I was able to piece something together from <a href="http://undefinedvalue.com/2009/07/07/adding-custom-view-nsstatusitem">various</a> <a href="http://files.semaja2.net/NSStatusItem%20-%20ObjC.html">NSStatusItem</a> <a href="http://cocoatutorial.grapewave.com/2010/01/creating-a-status-bar-application/">tutorials</a>, the <a href="http://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSDatePicker_Class/Reference/Reference.html">NSDatePicker Class Reference</a>, <a href="http://stackoverflow.com/questions/5143117/how-can-i-reload-the-com-apple-systemuiserver-preferences-into-the-systemuiserve">Stack Overflow</a> <a href="http://stackoverflow.com/questions/1857603/lsuielement-behaves-inconsistently-with-activateignoringotherapps/7823173#7823173">answers</a> and <a href="https://github.com/carpeaqua/Shared-File-List-Example">GitHub repositories</a>. </p>

<p>I may or may not have had this <a href="http://www.youtube.com/watch?v=Euc9MMRtuSg">YouTube video</a> on repeat in the background the entire time.</p>

<p><a href="http://shauninman.com/assets/downloads/Day-O.zip">Download Day-O</a>.</p>]]></description>
	<link>http://shauninman.com/feeder/?FeederAction=clicked&amp;feed=Complete&amp;seed=http%3A%2F%2Fwww.shauninman.com%2Farchive%2F2011%2F10%2F20%2Fday_o_mac_menu_bar_clock&amp;seed_title=Day-O</link>
	<guid isPermaLink="false">1552@http://www.shauninman.com/</guid>
	<category>Apple</category>
	<pubDate>Thu, 20 Oct 2011 19:42:00 GMT</pubDate>
</item>
<item>
	<title>Past Ats</title>
	<description><![CDATA[<p>Have you ever had deja who? You know, when the name or avatar of someone who just mentioned you on Twitter looks familiar and unfamiliar at the same time? Have they tweeted you before?</p>

<p>Drag this <a href="javascript:(function(){var%20f=$.trim($('div.focused-stream-item%20a.tweet-screen-name').text());var%20t=$.trim($('#screen-name').text());$('#search-query').val('from:'+f+'%20to:'+t)[0].form.submit();})();" onclick="alert('Drag me to your bookmarks bar!'); return false;">Past @s</a> link to your bookmarks bar. Then the next time this happens select the tweet and click the bookmarklet to perform a quick Twitter search for recent tweets from this person to you.</p>

<p>Think that&#8217;s useful? You might also like my <a href="/archive/2011/06/02/reply_reach">Reply Reach</a> bookmarklet.</p>]]></description>
	<link>http://shauninman.com/feeder/?FeederAction=clicked&amp;feed=Complete&amp;seed=http%3A%2F%2Fwww.shauninman.com%2Farchive%2F2011%2F08%2F26%2Fpast_ats&amp;seed_title=Past+Ats</link>
	<guid isPermaLink="false">1549@http://www.shauninman.com/</guid>
	<category>JavaScript</category><category>Web</category>
	<pubDate>Fri, 26 Aug 2011 13:09:00 GMT</pubDate>
</item>
</channel>
</rss>