Angry Birds in 30 minutes at Update 2011

The angry exorcist and ghost graphics by Jonathan Clapham

Yesterday was Aral Balkan‘s Update conference as part of the Brighton Digital Festival. I don’t think I’ve ever been to a conference where organiser sings a song to open the event! (with a full live band I should add!)

It was a really fantastic and enjoyable conference with a great mixture of different presentations, panels and musical interludes. Although I found Aral’s musical number a little cringeworthy (sorry Aral!), I admire the guy – and why can’t he have a little fun at his own conference? 🙂

Anna Debenham kicking arse at Update, photo by Jeremy Keith

I presented a session about Corona; a mobile development platform for iOS and Android that is really good at making games and simple toys. In my session I built an Angry Birds clone – “The Irritable Exorcists” with graphics made by my nephew Jonathan.

I love Corona – like any simple accessible platform, it has limitations, but if it can do what you need, you can produce excellent results very very quickly indeed. It’s very good at moving bitmaps around (with GPU acceleration) and has Box2D built in, so it’s perfect for an Angry Birds type game.

UPDATE – video now online.

I know the session was recorded – I’m not sure what Aral will do with it. But you can download the code and assets here. You’ll also need the Corona SDK to try it for yourself.

It’s naturally pretty rough around the edges. Click and drag the exorcist back to play the game. Oh and you need to run it in the iPad simulator. (Select iPad from the drop down of devices when you open the folder).

Smooth JS animation on iOS – tutorial on

Two tutorials in two weeks!? I know, it’s crazy but I’m getting through a bit of a backlog here 🙂

I’ve now posted a guide to making super smooth running games within the browser on iOS. You can wrap it up in PhoneGap and publish to the AppStore if you want!

It’s based around the fact that if you move HTML elements around using 3D CSS transforms, they will then be rendered using the GPU. It’s so much faster than canvas, and with this game I have a full 60fps on an iPad 1.

Create an iPad optimised game on

HTML5/JavaScript platform game optimised for iPad

HTML5 canvas! Hailed as a competitor to Flash, so much so that Apple is using it as an excuse not to allow the plug-in on iOS. But what everyone overlooks is that canvas is horribly slow and pretty much unusable on these devices. Is it even possible to create a Flash-like in-browser gaming experience on iPads and iPhones?

To answer that question I ran a JavaScript hack day for the finest programming minds at Plug-in Media where we had a single day to make a retro platform game : Infector!


Play it for yourself here.

Continue reading “HTML5/JavaScript platform game optimised for iPad”

HTML and Flash – the aftermath’s aftermath

I’ve had a very exciting few days as a result of my recent HTML/Flash post. Clearly there is still much to discuss on this subject! I had over 140 comments in the end, although at least half were probably from me. 🙂 I was so delighted that there were many eloquently expressed viewpoints and a measured and reasonable discussion.

I’ve attempted to summarise the conversation as best I can, but it was huge – some comments were even longer than the original blog post! But let’s start with those of you who are way ahead of me…

Continue reading “HTML and Flash – the aftermath’s aftermath”

What the Flux!? The future of Flash at FOTB

What the flux?

What the flux?

I’ve been working hard on my upcoming talk at Flash on the Beach over the last few weeks, it’s actually one of the most difficult talks I’ve ever given. Trying to unravel all the trials and tribulations in our industry to come up with a some reasonable and helpful conclusions is surprisingly difficult!

As you may know, I’ve been learning and learning and learning. Unity3D, HTML5, JavaScript, iOS, and on the Flash side, AIR Android, multi-user technology, mic input and more.

This is because I love learning, but as a side effect, it really helps me to appreciate the benefits and disadvantages of one platform over another. This has been invaluable when it comes to understanding where Flash fits into the technology landscape.

In the Flash community we have a tendency to be insular, especially when our beloved technology gets such a bad rap in the press. But why is that? In order to find out what Flash looks like from the outside, I interviewed (on camera) 3 open web experts, Andy Budd, Jeremy Keith and Remy Sharp. If you’ve even got half an eye on the web community at large you may have heard of these people!

Andy Budd, Jeremy Keith and Remy Sharp

They were extremely honest and frank on their thoughts on Flash and its relevance in today’s web. Trust me, you need to hear what they’re saying.

Branden Hall, Brendan Dawes, and Jer Thorp

But it wouldn’t be very balanced research unless I spoke to respected members of the Flash community. I also interviewed Jer Thorp, Brendan Dawes and Branden Hall about the changes in Flash over the last few years, and how the emerging new tech has affected their work.

But that’s not all! I want to hear what you think too! Please fill in my questionnaire if you want your own opinions to be added to the mix. [UPDATE : Survey now closed with over 300 respondents – thank you!]

I’ll be presenting these video interviews, alongside some key web articles and tweets, and adding a sprinkling of my own thoughts at my Flash on the Beach session. It’s certainly been an eye-opening year for me, and I hope you’ll find it as interesting as I have.

Kittens. On a conveyorbelt. On an iPhone.

Kitten Conveyorbelt

Kitten Conveyorbelt

As part of my ongoing research into many different technologies, I’ve finished my very first iPhone app, written in Objective C, The Kitten Conveyorbelt!

Kitten Conveyorbelt

As with any personal project I tried to keep the scope down to something that was actually possible to complete within the time I had available. So, I came up with the idea of Kittens. On a conveyorbelt. Passing along in front of your eyes, to help cheer you up. I even wrote a cheesy elevator music song and recorded it with my wife Jenny.

Oh, and they meow when you stroke them. Now I kinda think it’s so ridiculous it’s funny. And I really hope you get the joke too.

Kitten Conveyorbelt

Learning curve

Despite an excellent head start from Aral’s excellent training course, there was still quite a learning curve. It’s probably one of the harder technologies to master. The lower level and incredibly ugly Objective C syntax, manual memory management, and just getting used to how all the various elements work together.

Graphical programming

The other thing I noticed after having worked in various multi-media authoring systems (Flash, Director etc) for so long is how tricky it is to implement simple animated effects. Something that is a simple matter of basic timeline animation in Flash becomes a fairly lengthy process of exporting bitmaps and animating them in code. This is an area I’m very interested in exploring further in the future. (The conveyor belt graphics and weird cat heart thing were designed by my talented nephew, Jonathan).

But I have to say I enjoyed the development process. It’s kinda nice to get a bit lower level for once. And I really like iOS devices. We can learn an awful lot from the tactile and intuitive user interface.

Personal projects

It took me longer than I expected to make this simple app, probably about a month, on and off. Another reason why it’s essential to keep your personal projects limited in scope. But I have to admit a certain confidence crisis half way through this project, where I couldn’t believe how much time I was spending on something that was so clearly an insane idea!

App Store submission

The worst part of this whole process was the App Store submission, which was just hugely convoluted and obfuscated, which is really surprising considering how user friendly Apple products are. And I suddenly got extremely panicked after my friend Paul Neave had his app denied for “limited functionality”.

How much more limited can you get in functionality than kittens on a conveyorbelt? Thankfully though, Apple put it through late last night. Yay!

Kitten Conveyorbelt

The future of Kitten Conveyorbelt

I have big plans for this app. More functionality, more customisation, “screen saver” mode, iPad version, ability to put your own photos on a conveyorbelt, choose various versions of the kitten song or even your own music library… but this all depends how well this one does.

My next experiments with the iPhone will be more graphical tests. I’m currently looking at Cocos2D, Unity3D, and also just testing out how performance CoreGraphics is.

And as you can probably see from my blog lately, I’m also looking at AIR for Android. So don’t worry. There’ll be Kittens on Android soon 🙂

But check out Kitten Conveyorbelt on the App Store – I’d love to know what you think!

I’ll be talking more about this and my other explorations into different technology at my upcoming Flash on the Beach session, What the Flux!?.

And I know some of you don’t like Apple. And some of you don’t like Flash. But please try to be normal in the comments, OK? Thanks!

iPhone AppStore submission gotchas

I’ve just had a couple of issues submitting my new iPhone app to the AppStore. I have to say, it’s quite a convoluted process. In xCode’s organiser window you have a couple of very handy big buttons to validate and submit the app, which sounds perfect!

Except that these buttons do absolutely nothing, and give you no feedback to tell you that they’ve done nothing unless you’ve already set up the app in iTunesConnect. I’ve also heard that Validate Application also does nothing if your app is in fact valid. Is that true? No confirmation message? I found more information here on the .net Developers’ Journal.

So I set up the app on iTunes connect but I got the app ID wrong (ly.seb.myappname rather than ly.seb.MyAppName – capitals count apparently!). So I thought it’d be easier to delete the app from iTunes connect and start over than it would be to rename the app ID in xCode.

Big mistake.

Although I’ve deleted the app it won’t let me re-submit as it says there’s already an app with the same name. The one that I’ve deleted. So it’s not really deleted, it’s kinda there in the ether somewhere.

Which means that I can re-upload my app unless I change the name. Which I don’t really want to do!

Needless to say I’ve emailed support to let them know and hopefully they’ll help me fix it. But I thought I’d post this up so you can avoid this in future.