Ectoplasm, a Game Made in 24 hours (ish)

Ectoplasm, a Game Made in 24 hours (ish)

Just before leaving Playdemic we had a company-wide ship-it-day. If you haven’t done one of these before they are great and work very similar to game jams like Ludum Dare. Basically you have 24 hours to create something related to the company then you have to present it.

I decided to team up with Laura Whyte a rather excellent artist colleague I have have worked with for years. I knew I wanted to make a quick mobile game using Adobe AIR and Richard Lord’s Ash framework but I didn’t really have any idea of what game specifically I wanted to make. She had the brilliant idea of making a clone of the classic “helicopter” game that you control with your voice.

So that’s what we made. Check out a video of my playing it below:

You will have to excuse the fact I do sound a little like a drunk owl at some points in there.

By the end of the 8-hour day we pretty much had a working game. Since then I have spent a few more evenings here and there tidying up the source code and fixing a few bugs and submitting a build to Apple and Google. In total I would say that 24-hours is a fair time frame for the development of the game.

As previously mentioned we developed the game using Adobe AIR and Ash. The reason being was that I had previously experimented with cross-platform game development with Mr Nibbles which was coded in Haxe and NME and I was keen to see how AIR would compare.

Im pleased to say it held up very well. Where I had a little difficulty was with the Ash Framework. Its a great framework however its still rather new and there aren’t many examples out there for how to do certain parts of the game development such as menus and event handling. For this reason I have decided to open source the game so that others can have a look at how I went about constructing parts of the game in Ash.

Ectoplasm source: https://github.com/mikecann/Ectoplasm

I plan on refining the source as I have discussions with others on the Ash Mailing List about how best to go about implementing some of the features, so I suspect that source code may change over the coming weeks.

Because the game is cross-platform that means that it will be accessible on the Apple App Store and Google Play store as soon as it gets approved, for now however you can play the web version over at: http://mikecann.co.uk/projects/ectoplasm/

You may want to toggle your microphone settings (or disable the microphone entirely ;))

PostToTumblr v3.18 – Fixed Tumblr oauth change

head

 

Just a quick update to say I have now fixed the authentication issue my PostToTumblr that quite a few people contacted me about.

What was going on was that Tumblr appear to have changed the format of the data they return from a token request which was causing a library that PostToTumblr relies on to fail.

Before PostToTumblr can post content on a users behalf it first must get an “access token”. This token is given to PostToTumblr as part of the authentication flow.

When PostToTumblr first starts up it checks to see if it still has a valid token (they can expire over time and other various reasons). If it doesnt it must go through the authentication flow. Firstly it redirects the user to the grant permission dialog:

screenshot_02

When the user clicks allow Tumblr then returns an “oauth token” and an “oauth verifier” to PostToTumblr, which it can then use to get an “access token” which is used to do the posting.

The problem that this update fixed was that the “oauth verifier” that was returned from Tumblr changed:

screenshot_03

You see at the end of the query string there is now a “#_=_” well this was causing havoc with the URL parameter parsing code in the Google oauth library I was using.

My solution is quick and dirty, just strip out the “#_=_” from the url while parsing:

// MIKE HACK!!	  
if(param.indexOf('oauth_verifier=')!=-1) 
{
	param = param.replace('oauth_verifier=','');
	param = param.replace('#_=_','');		  
	decoded['oauth_verifier'] = ChromeExOAuth.fromRfc3986(param);
}
else
{	  	  
	var keyval = param.split("=");
	if (keyval.length == 2) {
		var key = ChromeExOAuth.fromRfc3986(keyval[0]);
		var val = ChromeExOAuth.fromRfc3986(keyval[1]);
		decoded[key] = val;
	}
}

Well I hope this helps anyone else that may encounter this issue too!

Goodbye Playdemic

head

Wow doesn’t time fly.

Over 8 years ago I was a short nerdy student trying desperately to find a way into the games industry for my industrial placement year at university. I was about ready to give up hope when a certain “Starboy” (probably) fed up of my winging offered me a position at his company Rockpool Games.

Cannyshammy – feel free to drop me an email, my company is based in Manchester and there is a strong possibility of us taking on an intern.
alex.rigby@rockpoolgames.com
EDIT: Just seen you’re looking to go abroad, guess Manchester is a little too close then eh?

(source: http://www.gamedev.net/topic/297068-breaking-into-the-games-industry-is-impossible/page-2#entry2882806)

Little did either of us know the long winding path that would unfold from that moment.

Fast forward 5 years. After their success with Rockpool Paul and Alex approached me with a new cunning plan. They were going to start a games company to make these new-fangled social games that Zynga were redefining the games industry with.

Join an exciting new company making cutting edge games with Starboy? How could I refuse

Needless to to say the next 3 years were quite a journey. There were ups, there were downs, there were laughs, there were cry’s there was even the occasional thigh-rub (still not sure how I didn’t get fired for those).

Like all journeys however, they must some day come to an end. I decided that the majority of the world has yet to experience the emotional cocktail of disgust, fear and slight arousal induced by the thigh-rub. So before I reach “that age” I was going to take some time and bring this unique joy to the wider world.

So whats next? Well I have two months of preparation before I embark on an epic 7 month journey through Central and South America, but ill save the details on that for a separate post.