Subscribe: // plus Elsewhere
Added By: Feedage Forager Feedage Grade B rated
Language: English
app  color  crunch  email  end  fever  game crunch  game  icon  open  protocol  retro game  retro  string  support  tiled  time 
Rate this Feed
Rate this feedRate this feedRate this feedRate this feedRate this feed
Rate this feed 1 starRate this feed 2 starRate this feed 3 starRate this feed 4 starRate this feed 5 star

Comments (0)

Feed Details and Statistics Feed Statistics
Preview: // plus Elsewhere // plus Elsewhere

Last Build Date: Fri, 30 Sep 2016 14:04:06 GMT

Copyright: Copyright 2001-2016 Shaun Inman

And Game Boy Makes Three

Fri, 05 Jun 2015 00:02:00 GMT

Life moves fast. We’d always talked about children. When we first started dating we talked about life in the suburbs, matching minivans, basement game rooms. I may have even playfully promised to be the one to actually give birth. (This was supposed to be the future, right?) This, before even the font dates.

Life happened. Mint, Fever, Retro Game Crunch, for me. A Masters, a Doctorate, and teaching, for her. We travelled. All over the US, Reykjavik, London, Tokyo, Sydney, Melbourne, Belfast, Dublin. I spoke. She spoke. When one of us got tired of talking, would rather be doing, the other picked up the slack.

I spent the better part of 2013 in Denver helping my mom beat breast cancer. The girl and I had done the long distance thing before. For years out of college, chasing each other up and down the East Coast, always one step ahead or one step behind. Just because you can do something doesn’t mean you want to do something.

Life was catching up with us. One of the things I learned in Denver was that I can care for someone—and I mean really support them—and not lose who I am. My brother and I were born almost a decade apart. I was an only child until I wasn’t. I don’t think I’ll ever fully kick the resulting selfishness but I’ve made some good progress. It was a hard year, but it was also one of, if not the, most productive years of my life.

So we talked. We’d been talking. For years. It’s not that either of us needed convincing. It’s just, you know, life. We got comfortable being us. It was always one big project into the next. Earlier this year, we decided it was now or never. Neither of us is old but we’re getting older. “Lowest of the high risk”, the doctor said. So we tried, prepared ourselves for having to try for a while, and it happened. Quickly. We are ecstatic.


Who You Gonna Protocol

Tue, 30 Sep 2014 16:03:00 GMT

While building a map-to-rooms generator for my next game I wanted to be able to open some Tiled JSON files from the browser. Just linking directly to the file with the file: protocol would open the JSON in the browser. And (as far as I know) Tiled doesn’t provide its own custom protocol for opening its files. (I’m not prepared to declare all JSON files on my system Tiled files so setting Tiled to the default application for JSON files so I can double-click them in the Finder isn’t an option.)

Here’s how I defined my own custom protocol to open files in Tiled from the browser using a simple AppleScript app. (I know right!)

Open up AppleScript Editor and paste the following into the editor window:

on get_config()
    return {"Tiled", "tiled"} -- app name, protocol
end get_config

on open location url_
    set config_ to get_config()
    set app_ to item 1 of config_
    set protocol_ to item 2 of config_

    set start_ to (get length of protocol_) + 2 -- : then next character
    set end_ to length of url_
    set file_ to (get characters start_ thru end_ of url_ as string)

        ignoring application responses -- prevents hangs
            tell application app_
                open file_
            end tell
        end ignoring
    on error errStr
        display alert "Failed to open " & file_ & ": " & errStr
    end try
end open location

Then save it as an Application (it doesn’t matter where since you never need to open it manually). Back in the editor window click the Bundle Contents icon and then select “Reveal in Finder” from the gear contextual menu.

You should see your new app’s Contents folder. Open up Info.plist in a plain text editor. Add the following:



To the end of the file, right before the final:

Save Info.plist. That’s it. Now clicking a link in the browser with the tiled: protocol will open the desired file in Tiled.

eg. room

Changing the app and protocol are easy. Just change the app name and protocol strings in both the get_config() function in the AppleScript and in the nodes in Info.plist.


Sat, 06 Sep 2014 21:50:00 GMT

This old Foo Fighters song is in Drop-D tuning. Only, my low E-string barely stays in tune past the 7th fret when tuned normally. So how to reproduce that lovely drone without four finger chords that span five frets (ouch)? Drop the G-string down to F# and play with mostly open chords. Like so:

    Verse           Bridge         Chorus
    D/F# B/F# G/D                  B5 G5 D  A
e  ---------------|--------------|------------
b  -2----2----3---|-2-3-5-7-8----|-0--3--3--2-
F# -0----0----3---|-3-3-7-8-8--7-|-0--1--3--3-
D  -0-------------|-0-0-0-0-0--7-|----0--0----
A  ------2--------|------------0-|-2--------0-
E  -----------3---|--------------|----3-------

A couple hours and 8 tracks in GarageBand later (rhythm, lead, vocals, and falsetto, all doubled) I had this: Everlong.

Play Kero Blaster on a Mac

Sun, 25 May 2014 17:23:00 GMT

After thoroughly enjoying Kero Blaster on iOS (despite the on-screen buttons) I was curious about its free, PC-only prequel, Pink Hour. So I did some research and figured out a way to play it on the Mac without resorting to Bootcamp or a full Windows VM. This was tested on OS X Mavericks 10.9.3 on a 15” retina MacBook Pro.


Here we go!

Optional, preliminary step: Create a new standard User account (in System Preferences under Users & Groups). I just called mine “PC”. You might call it “Games”. The name doesn’t matter. None of this software should be harmful, I just didn’t want to clutter up my own User account.

First, download XQuartz (X11) and run the installer. Then download PlayOnMac and copy into your Applications folder. Launch PlayOnMac and go through the one-time Wizard which will download and install some Microsoft fonts. Finally, download the free Pink Hour or buy Kero Blaster from Playism. Unzip and launch the exe.

The PlayOnMac Wizard for automatic installation will appear. It will ask for the name of the application you are launching. It will appear to hang on installation but the game should launch in X11. I was able to use a PS4 controller connected over USB without any configuration or third-party tools.

In X11, go into its Preferences and check “Full-screen mode” under the Output tab. The game window will dissappear. Press command+option+a to toggle fullscreen mode. I haven’t been able to get either game to go “Fullscreen” in its Screen Size settings without crashing but found it playable at “Screen size x2”.

The next time you launch the game, the PlayOnMac Wizard will detect the old settings and offer to use them. Click Yes and you should be able to continue from your last auto-save. Rad.

PHP Color Replacement

Sat, 24 May 2014 15:29:00 GMT

I’ve received a few emails asking how I do the color replacement for the Remind web clip icon. It’s implemented two ways, the preview is performed client-side, but the web clip itself must be composed server-side. Both start with a single white image with transparency where the color will appear.


The preview is pretty simple. You can view source on the Remind form page and check the updateSample() function. It just takes the value of the color input, filters out any non-hexadecimal characters, and sets the background-color of the icon.

The web clip is almost as simple. The color is passed to a PHP script that creates a new image the same size as the icon, floods it with the color, then “stamps” it with the original icon.png. This is what icon.php looks like:

(color.php uses $_REQUEST because my form handler receives the color value in the $_POST data but icon.php receives it via a query string so it shows up in $_GET. $_REQUEST just contains the contents of both.)

And you can request a colored icon like so:




That’s all there is to it.


Mon, 19 May 2014 03:26:00 GMT

Saturday night Mr. Diesel Sweeties tweeted about wishing he could add a shortcut to his home screen that would compose a new email to a predefined address in a single click. You know, a shortcut for those emails you send yourself in the middle of the night.

Turns out mailto: links don’t work in Safari bookmarks. You could create a bookmark with url that contains a meta refresh or http header to redirect but you’d still have to launch Safari.


So I built a mini-app, Remind. Enter your email address, hit Create then add it to your Home Screen. You can optionally enter a default subject and customize the color of the icon (in case you have a few addresses you want quick access to).

That’s it. When you tap an instance of Remind it opens up Mail, creates a new message with the predefined email address and optional default subject, and you’re ready to go.

(image) Offloading my logo design to Helvetica Neue. Flip it, clip it, ship it.

How’s it work? I don’t store your email address (or subject) on my server. When you hit Create, the email and subject are composed into a url. The color (but not your email or subject) is posted to that url. When that url recieves post data, it displays instructions to Add to Home Screen. When it doesn’t receive post data (like when you open the shortcut), it simply redirects to a mailto: link with the email address and subject pulled from the url itself. It even works offline (of course, the email will sit in your Outbox until the next time you’re online).

Anyway, just a quick little Sunday afternoon project that I thought others might find useful too. Check it out!

Update Looks like @jbradforddillon beat Remind to the punch by almost 2 years with MailNote. Plus it’s open source so you can host your own. You know what they say, “Great minds should have searched Github first.”

Indieverse Interview

Thu, 17 Apr 2014 13:15:00 GMT

A little over a week ago I sat down with Rubén Lozano and Indieverse to talk about how I got into game development, my lack of process, and my favorite food.

Lessn + SIDB

Fri, 31 Jan 2014 02:43:00 GMT

While we were busy making six games in six months *cough*, PHP 5.5 was released and the mysql_* family of functions were officially deprecated. Deprecation is the last stop before complete removal from the language, so after the retina-fication of Fever my next priority was transitioning to a more modern MySQL API (or two).

I looked at how I was using MySQL across all my sites and web apps, took into consideration the original server requirements for each, and then create a lightweight database library, SIDB (included in Lessn 1.1).

Lessn is the simplest of my web apps (that uses MySQL; Unplayed just uses flat Markdown files), so it’s the first to get the new database library. Next up is Fever, with Mint facing a much more difficult transition (because of the bare mysql_* calls through its own and third-party Pepper’s source).

Download the latest version of Lessn, follow the installation (or update) instructions in the included README.txt, and let me know if you run into any database issues!

Update By request, Lessn is now on Github.

Automatic Conditional Retina Images

Fri, 24 Jan 2014 03:06:00 GMT

Shared this on Twitter over a year ago (!), forgot about it, then needed it recently and had no idea where I had posted it. JavaScript + mod_rewrite = @2x. For posterity.

Fix Mavericks’ Power Button

Fri, 24 Jan 2014 03:02:00 GMT

In Mavericks, it seems like merely brushing the power button is enough to put a MacBook to sleep. This fix restores the pre-Mavericks behavior, presenting the Sleep/Restart/Shut Down dialog instead. And here’s how to get it to run on startup.

The Designologue Archive

Thu, 05 Dec 2013 05:40:00 GMT

Version 4.0 will probably never materialize. I’m okay with that now. But there was no sense in letting all the work I did on it go to waste. So tonight I ripped out all the participation functionality and launched it as a more modern archive. Here’s every image I ever designologued.

The Cancel Hanger

Sat, 19 Oct 2013 16:57:00 GMT

Are you about to start a new show on Netflix, Hulu, or Amazon? Heard great things only to find out it was canceled? Did the writers know it was coming and have enough time to conclude the story on their terms or did it all end on a cliffhanger? The Cancel Hanger hopes to have the (spoiler-free) answer.

The Pilot

A couple weeks ago I tweeted:

Is there a site that you can enter the name of a tv show and find out if it was cancelled on a cliffhanger? If not, there should be.

Turns out there wasn’t. That night I bought the domain name and slept on the idea. Two days later I had a few hours to myself to see if I could build a working proof of concept.

The Cliffhanger

Spoilers: I did. It was ugly but it worked. Searches hit the Cancel Hanger database first, if a match isn’t found, it searches TVRage. It will also do a background TVRage search if the search terms aren’t an exact match for an existing show.

It took another week or so of piecemeal tweaks to the search logic to get it where it is. Previously successful search terms are stored to speed up subsequent searches. Results are sorted by premiere date. It tries to be smart about shows from the same series like Star Trek, Law & Order, or Doctor Who.

TVRage can tell us if a show is ongoing or ended but when a show is canceled it doesn’t make a distinction between concluded or cliffhung. That’s where you come in! Whenever TVRage thinks a show was canceled (I’m almost positive The Sopranos and Lost were not canceled) you can sign in with Twitter and vote for concluded or cliffhung. And if you don’t know, there’s a handy Ask on Twitter link in case your friends and followers might.

The design is super bare-bones. I didn’t want users waiting for (relatively) huge JavaScript, CSS, or web font files to download for the answer to what is essentially a binary question: concluded or cliffhung?

The Finale

About a week ago I tweeted:

Built a thing piecemeal with stolen moments here & there. Now I want to release it but I just don’t have the time to support it right now :\

While that’s still mostly true, Retro Game Crunch released the complete version of Brains & Hearts on Thursday, so if this site blows up and takes down my entire server (unlikely but…) I should have a little bit of time over the next week to do something about it.

So check it out. And, if The Cancel Hanger doesn’t know if a show was concluded or cliffhung, don’t be shy about sharing the link on Twitter to get some answers!


Mon, 29 Apr 2013 18:27:00 GMT

First things first, Mint and Fever 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 retiring Reader. Just after New Year’s, following its successful Kickstarter, Retro Game Crunch started work.

At the beginning of April I bought a one-way ticket to Denver to help take care of my mom as she struggles through chemo. After my mother’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.

If you encounter a problem that renders a recently (within 60 days) purchased copy of Mint or Fever unusable and you absolutely cannot wait for support, please email me your PayPal Transaction ID at and I’ll happily refund your purchase. (Do not use this address for support.)

Update My mother has completed chemo and her surgery is scheduled (then delayed and rescheduled for the end of August). After the surgery she has about two months of almost daily radiation. Retro Game Crunch is ongoing and I am now months behind on support. I still don’t offer support on Twitter. I continue to appreciate your patience and am still happy to provide a refund if necessary.

Update 2 (October 16) Mom started radiation—then fractured her wrist falling off a step ladder. Oof. Retro Game Crunch releases its second to last game tomorrow. My support inbox is currently determined to reach the upper bounds of the integer type Apple used for its unread count. Inbox 0 (by way of overflow), here I come!


Thu, 14 Mar 2013 04:54:00 GMT

So Google is sunsetting Reader. Lots of people are recommending Fever.

If you’re considering switching to Fever, here’s a few things you need to know:

  1. I am working on Retro Game Crunch full-time (okay, overtime) for at least the first six months of 2013. My Mint and Fever support inboxes were already backed up before today’s announcement.
  2. Fever will always be self-hosted.
  3. Fever was not designed to match Reader feature-for-feature. It is opinionated software. It is not meant to archive feed content.
  4. Fever is not supported on non-iOS mobile devices. As one guy designing, developing and supporting multiple apps you have to pick your battles.
  5. Fever has not been updated with Retina graphics yet. Good thing there’s great native Fever clients like Sunstroke and Reeder.
  6. Finally, I do not offer support on Twitter. Please use the contact form (and keep in mind the first point above).

iOS Sticky :hover Fix

Tue, 05 Mar 2013 18:41:00 GMT

Tweeted this a while back but every once in a while someone asks for this link so, for posterity!

Retro Game Crunch: Primer

Fri, 07 Dec 2012 01:15:00 GMT

Less than a week to go on the Kickstarter! One of the things we’ve been doing to draw attention to the dev journal aspect of the project is this Primer series. So far I’ve covered tools, getting started with Flixel, loading Tiled levels, basic player controls and camera, collectibles, and threats.