frosty.tumblr.com

home archive rss

Thursday, October 20, 2011

Codify

I love the iPad. It’s casual, immediate, and more intimate than a laptop ever will be. There are wonderful apps available for most activities you could want to do on an iPad: reading, writing, drawing, listening, watching, playing; the list goes on. Much of the time when I want to perform some task (or just relax), I will now reach for my iPad instead of my laptop if possible. However, until now I have been unable to use the iPad for one of my favourite pasttimes: programming1.

Enter Codify. Codify is a new iPad app that lets you create simple games, prototypes and simulations directly on an iPad. You write code in the Lua language using a fantastic code editor (more on that later), with an API that’s very similar to Processing. You can then run that code straight away; play your game, experiment with your prototype, tweak your simulation. It’s fast, easy, impressive, and fun.

Codify's project selection screen

Running and debugging

When running your game, you can specify parameters (for example, a character’s speed or size) which show up as sliders in a debugging pane on the left hand side of the screen. You can then tweak those parameters as you play, and observe in real time the effect they have on the game. It’s very neat. You can also watch variables and print information out to a console. Games themselves run very smoothly (unless you write them badly, of course!) and look great. You can pause, resume, or reset your game state whenever you like. You can also flip back to your code with just one tap.

Running a project in Codify

Help and examples

The app comes with a whole heap of examples, from the basics of using the provided graphics functions to clones of games like Doodle Jump, Snake, and Pong (the latter I wrote myself). The code editor also comes with a nicely presented documentation viewer which provides excellent help on graphics functions, the Lua language itself, parameters, multitouch, sounds, using the iPad’s accelerometer, and more.

To see some of the Codify examples in action, check out the following YouTube videos:

The code editor

The code editor has clearly had a lot of thought and polish put into it. It has a lot of things you’d expect from an editor: syntax highlighting, line numbers, multiple files (with tabs to switch between them), and a function browser. But it also has a slew of features designed to ease the task of programming on a touchscreen device:

  • For methods that take a colour as a parameter (RGBA values, for example (255, 150, 99, 255)), you can simply tap on the parameter and a colour wheel appears in a popover allowing you to choose a colour with touch alone.
  • You can tap and hold on any number and slide your finger from left to right (or vice versa) to increment / decrement the number without typing.
  • A row of custom keys above the onscreen keyboard provides shortcuts for common tasks: tabbing, access to documentation, inserting symbols / punctuation, and more.
  • Codify includes support for displaying sprites (images) and comes bundled with a number of high quality sprite packs from Lost Garden. Similarly to selecting colour parameters, you can tap a sprite parameter and select your sprite from a nice popover without the need for any typing.

Selecting a colour in the Codify code editor

Check out my Flickr photo set for a couple more photos showing the Codify interface. I’ve also put together a quick YouTube video showing some of its functionality in action (embedded at the bottom of this post).

The Lua language was deliberately chosen for Codify because it has a rather ‘wordy’ syntax, which fits nicely with the iPad’s onscreen keyboard. It means less switching to the ‘symbols’ keyboard, and less frustration for the user. The Lua runtime is also extremely light, which helps keep things snappy.

An introduction to programming? - a brief aside

I think that Codify could shine as a tool for teaching programming. I’ve long lamented the apparent increase in difficulty for kids (and adults alike, I guess) to get started with programming these days. I began coding on a BBC B in BASIC. Back then, you turned your computer on and you were presented with a flashing prompt, into which you could just start typing your code. Commercial games weren’t too advanced, so it was entirely possible you could get at least close to making the sorts of things you played yourself.

These days, where do you start? If you have a Mac or Linux machine, chances are you have something like Ruby or Python built in, so that’s fairly easy to get going with. If you’re on Windows, you’re left to install something yourself. You’ll also likely have to install some kind of text editor and work out how to use a command prompt (not a bad thing to do at all, of course, but it’s another barrier to entry). And then you’ll have to find some kind of games or graphics libraries and learn how those work. And then you might be able to have a go at learning a language and making a simple game. It’s a lot to get through and a lot of opportunities for a newcomer to lose their enthusiasm.

We’re now finally starting to see some potential solutions emerging on the web. For example, Processing.js (a JavaScript port of Processing) and Sketchpad.cc (which lets you just start coding with Processing.js in your browser). Codify is very much like these solutions, but built specifically for iPad and a touch interface. From now on, somebody who wants to get started with simple programming and games may just be able to search the App Store for ‘programming’, install Codify, and have a go; perhaps starting off modifying some of the examples and observing the effects their changes have in real time. It may not be as easy to a newcomer as I’m imagining, but it sure seems a lot simpler to me than what we’ve had in recent years.

Wrap up

Codify was created by Simeon Nasilowski of Two Lives Left and will be launching on the App Store on Wednesday 26th October for £5.49 ($7.99), which I think is great value for everything it offers. It’s a high quality package that finally lets you code on the iPad, and it does so with style. I highly recommend checking it out if you enjoy programming or think you’d like to give it a go. I’d be really interested in seeing what you create with it!

I’ve also posted a video to YouTube showing some of Codify’s features in action:


  1. Okay, so there are one or two existing iPad coding apps. However, these a) don’t seem to be as well designed, and b) mainly only seem to let you produce text-based console output. Codify is intended for fast graphical prototyping, and seems to be streets ahead of the competition. 

Sunday, June 26, 2011

Superbrothers: Sword & Sworcery EP

Superbrothers: Sword & Sworcery EP logo

Superbrothers: Sword & Sworcery EP is an experience. It’s an audiovisual treat and, in my opinion, a wonderful example of games as art. I don’t think it would be too bold to describe S:S&S EP as iOS’s Shadow of the Colossus 1.

Superbrothers: Sword & Sworcery EP screenshot

S&S EP references elements of geek culture and video games of the past to create a unique experience that still manages to feel comfortably familiar at the same time. You play a lone warrior, out to destroy the Megatome (a book of unimaginable power) along with the ancient evil that haunts the legendary mountain of Mingi Taw. The Legend of Zelda series and Shadow of the Colossus stand out as two of the biggest influences, or at least two games against which it is easy to draw parallels. Like Zelda, S&S: EP’s mute lead character’s ultimate goal involves collecting three sacred triangles that together form the ‘Trigon Trifecta’. Like Colossus, there are references to mysterious in-game mythology, fights with ancient creatures (leaving the player feeling morally conflicted), and a main character who gets weaker as they continue their quest. The game features beautiful pixel art graphics, and an outstanding original score. It’s clear that a lot of love was poured into this game.

Speaking of the score: the soundtrack is fantastic, and an integral part of the game. It’s available to download from Bandcamp or iTunes and has even been released on vinyl. It’s one of the best game soundtracks I’ve ever heard; kind of a mix between folk and chiptunes and lots more besides. You can listen to most of it for free on Bandcamp, so give it a spin. However, I think it sounds all the better once you’ve experienced it in-game. Some of the pieces are perfectly written and timed to coincide with sections of the game, and so I think you get something extra out of them once you’ve experienced their corresponding visual accompaniments. The game’s main antagonist, the Deathless Spectre, evokes an actual feeling of panic whenever it materializes onscreen which I think is in no small part due to the music that coincides its appearance. Sword & Sworcery EP really deserves to be played wearing headphones.

Superbrothers: Sword & Sworcery EP screenshot

In fact, the whole game deserves your full attention when you play, as you’ll get far more out of it. The story unfolds in multiple chapters, like the acts of a play, even down to a triumphant musical cue and the literal closing of curtains when you finish an act. The story’s narrator appears at the end of an act to sum up what you’ve achieved and what is yet to come. The first act is rather short - something of an introduction to the rest of the game - and the narrator actually tells you to take a break once it’s over. It’s a nice way to spread the game out over multiple sittings and it frames the story really well. The presentation values are top notch, and whilst it may sound hyperbolic I do think S&S EP really is more of an experience than a traditional game.

As a touchscreen-controlled game designed for iOS devices, S:S&S EP succeeds brilliantly. It doesn’t attempt to crowbar ‘traditional’ controls into somewhere they don’t fit (no onscreen d-pads) instead you simply either touch and hold or double-tap wherever you want your character to move. You can also pinch to zoom and pan around the screen. It works wonderfully and feels effortless. The majority of the game takes place in landscape orientation, but for sword fights you must rotate the device into portrait to take out your sword and shield. This reveals two thumb buttons at the bottom of the screen: one for your sword, and one for your shield. It couldn’t get much simpler. It’s nice to see a developer who understands the strengths and weaknesses of a touch-based control system.

Superbrothers: Sword & Sworcery EP screenshot

Sword & Sworcery is without a doubt one of the best games on iOS. But more than that, it is one of my favourite games of all time. Unlike a lot of iOS titles, it’s not a throwaway arcade experience but an adventure that will stick with you long after you finish playing. It draws you in to its little world through beautiful pixel graphics, a stunning soundtrack, a believable world and characters, and slick presentation throughout. I highly recommend it. It’s available now on the iOS App Store as either a universal version for iPad & iPhone, or as a slightly cheaper iPhone-only version.


  1. Widely regarded as a work of art, and incredible experience, a masterpiece, etc. See Metacritic for reviews. 

Saturday, May 29, 2010

iPad Initial Impressions

So, last night I got to play with an iPad for a couple of hours (thanks @davea!) and thought I’d post some of my initial impressions. Obviously these are my thoughts, your mileage may vary.

  • It’s smaller than you probably think it is
  • It’s exactly as big as you thought it was if you were sad enough to make an actual-size cardboard model of it months ago
  • The screen is gorgeous. Really bright, the colours just jump out at you, and the viewing angles are unreal. Photos look brilliant on it, but you see a slight lack of resolution in text when you’re zoomed some way out of a web page.
  • That said, because the screen is a piece of glass, it seemed as though glare could definitely be an issue depending on where you’re sat. I was trying to read Winnie-the-Pooh, and I could just see my face reflected in the screen because I was in the wrong position.
  • It feels really nice in your hand. It’s a good weight (although lighter would be nicer) and it feels reassuringly solid.
  • It’s fast. I’d read all the reviews saying how quick it was, but I didn’t expect it to be quite that quick. Everything just feels so slick and fluid, and I think this is a very big part of why I found it so nice to use.
  • Web browsing and Google maps are just brilliant. Again, there was a lot of hyperbole about how browsing the web on this thing is a totally new experience and you have to try it to understand it - and whilst that’s a little OTT, I kind of get where they’re coming from. It feels very different (in a good way) from anything I’ve used before. For casual web surfing, lay back on the sofa or in a comfy chair, and for actually reading web pages, I think it’ll be brilliant.
  • The Instapaper app was probably the nicest reading experience I came across while trying out the iPad. With the default font settings, it’s totally gorgeous. I could spend hours and hours working my way through my Instapaper reading list on this thing.
  • Reading PDFs is also a pretty great experience. It’s so nice to be able to flick through a PDF, and hold it like a book. A vastly better experience than reading them on a laptop or on my Sony Reader (which is far too slow for PDFs, and they don’t work well with that screen size).
  • Photos look great, and the slideshows work really well. The iPad would make a brilliant digital photo frame whilst not in use.
  • The keyboard surprised me by being much more usable than I was expecting. Portrait mode’s a little cramped, but landscape seems nearly full size. Straight away, I was typing very quickly with very few mistakes. I could see myself inputting a lot of text without the need for an external keyboard. NaNoWriMo 2010, perhaps?
  • It seems a very social device. Sure, we were all interested in trying it out and so it got passed around a lot - but it’s just so easy to spin it round or hold it up to show other people something cool. Or to load up an app and hand it over to someone to play with. It’s very unlike a laptop in that respect.
  • The ‘just a big iPod Touch’ comment that people have made is total crap. iPhone OS on a device this size is a very different experience. The extra screen space adds a lot. Web browsing in particular feels completely different to browsing on an iPhone.
  • My iPhone now seems very small, cramped, and slow.

I liked it, and can’t wait to get one. I think my primary use would be reading - Instapaper, websites, feeds, and PDFs. And I think I would use it a lot for all of those things. In fact, other than coding and managing my photos, I could see it replacing my laptop for a lot of things I do with my computer - namely, using the web, email, etc. And for me, that’d be a good thing - I hate being stuck behind a laptop when all I want to do is read. It’d be a nice distinction, because laptop would be for getting something done (coding, etc), and iPad would be for leisure. The iPad would also come in very hand whilst coding, for reference books, etc.

Tuesday, April 6, 2010

By the end of the day, I was convinced. Human-computer interaction has found a sweet spot on the iPad. It’s all the power of desktop computing, plus the valuable constraints of mobile devices, minus the limitations of both. It just makes sense. Use one for a couple hours and your desktop or laptop will seem clumsy, arbitrary, and bewildering. It is, simply, how (most) computing should be.
Alex Payne — The Moderate’s Position on iPad Openness

Friday, March 12, 2010

Apple has been headed this way for years, slowly chipping away at the user’s passive acceptance of this rule. Dashboard widgets grew into iPhone apps, which will grow into iPad apps, and finally, this way of designing will start eating away at the world of desktop apps.

One day soon, any Mac hardware that has “File” and “Edit” menus at the top will be considered “Power Users Only” territory.

PodCamp Nashville 2010 Presentation

A presentation entitled “Is the iPad just a big iPhone?”, discussing a few of the UI issues surrounding designing for the iPad.

Monday, March 8, 2010