Monthly Archives: September 2011

Using Quest to create text adventures for iPhone, iPad, Android

You can already use Quest to create text adventure games for desktop PCs and web browsers. But the big area of growth for games (and indeed software of all types) in recent years has been smartphones, and I’m pleased to report that I am making good progress in bringing Quest games to the iPhone. The way it works is a tool which I am developing to convert Quest games into pure Javascript. By taking the output of this tool and combining it with PhoneGap, it is possible to create native applications for iPhone, iPad, Android, Blackberry and more, which we can then submit to the App Stores. So far, I’ve created an iPhone UI which uses a combination of HTML and the NativeControls PhoneGap plugin for added iPhone-native slickness (there is still some way to go before pure HTML UIs are really good enough). I’m pretty happy with the results – by using Quest’s existing hyperlink support to cut down on the amount of typing required, I think I have come up with a design which makes text adventures work nicely on a mobile phone. First, here’s a screenshot showing the start of an example game. Objects and exits have hyperlinks, and there is a clearly marked textbox for typing in commands. There are tabs at the bottom of the screen for Inventory, Objects, Exits and “More”. IMG_1007 Tapping a hyperlink brings up a standard style iPhone menu. In this screenshot, we’ve just tapped the “glovebox” object link, and we see the display verbs: IMG_1008 If we tap “open”, the “open glovebox” command is inserted, complete with another hyperlink to make it easier to perform further actions on the same object. IMG_1009 Tapping the gun in the output above again gives a pop-up menu. It’s a different set of options this time- in a Quest game, each object can have its own set of “display verbs”, and I think it is especially important for the mobile phone version of a game that each object has relevant display verbs. IMG_1010 If we tap “take”, we’re now carrying the gun. If we switch to the Inventory tab, we can now see it listed. IMG_1011 If we tap the gun in the inventory, we again get a list of verbs. This time it’s Quest’s “inventory verbs” that are used, so we get a different list of relevant actions now that we’re carrying the gun. IMG_1015 The Objects tab is laid out in a similar fashion to the Inventory tab, and shows the objects in the current location. IMG_1012 The compass tab shows the familiar Quest compass, with available exits highlighted. You can tap an exit to move in that direction. You could also simply tap the exit’s hyperlink on the Game tab. IMG_1013 Images are resized to fit the screen. In this example, looking at the car triggers a script to show a picture and print a message. IMG_1014

[Car picture by skrotmumrik, CC licence]

So far, this only works on iPhone, but an obvious next step is to make the UI work nicely for iPad too – which is the perfect excuse for me to go out and buy one! Because I’m using PhoneGap, it will be straightforward to create similar apps for Android too – although the UI would need to be developed for that platform. PhoneGap also supports Blackberry, WebOS, Symbian and soon Windows Phone, so it would be possible to bring Quest games to those platforms too – although it makes more sense to focus on iOS and Android as the main ones. Let’s make it happen If we’re going to find new audiences for text adventure games, we need to make them easy to find, install, and play. Right now, App Stores are a great way of making that happen. I believe they also provide a realistic opportunity to make money from text adventure games – for the first time in years. Think of how many people are happy to buy games for their smartphone, who may never purchase software for their desktop PC. With a few tweaks to the conventional parser-based interface, I hope I’ve shown that text adventures can work well on a mobile phone. I think they’re a great fit for mobile gaming – you can play a text adventure game at your own pace, for a few minutes at a time, whenever it suits you.

Educating the next generation of software developers

[Cross-posted from my Gamasutra blog]

We are going to need vastly more programmers over the coming decades. Where are they going to come from? How can we get children started programming at an early age? I have some ideas.

With the proliferation of app stores – first on the iPhone, then Android, Mac OS X and soon Windows – it’s easier than ever for people to download games and other types of software. On the web, too, increasing access to broadband and mobile internet around the world means that developers of web apps and games have vast potential audiences, as it’s now entirely normal for most people to have web access whenever and wherever they are.

This is a huge opportunity for software developers. With more people using more software more often, one thing is clear – we are going to need a lot of programmers. The potential market is already absolutely enormous. Just imagine how big it’s going to get over the coming years – and how valuable programming skills will be.

But it is already very difficult to find good developers. HR departments and recruitment agents rarely have much of a clue about the skills required for the jobs they’re trying to fill, so they’re pretty ineffective filters – which means plenty of people who can barely program are still able to get interviews. I’ve had candidates stare pretty blankly at me when I’ve asked them reasonably basic questions – yet amazingly, in many companies, these people still get hired. There are more jobs than qualified developers out there – at least, that is my experience in London anyway, and we’re in a recession.

Making Developers

So, there is already a developer shortage, and it’s only going to get worse. How can we fill the developer gap?

To answer that, we need to know what makes someone become a developer. Many people, myself included, got started on the home computers of the 1980’s – the C64s and Acorn Electrons of the time often booted up straight into a BASIC command prompt. Programming was something that pretty much all computer users did to some extent, and it was relatively easy to get started, as the computers and languages were simple. One boy in his bedroom could create software that was of a similar quality to that which could be bought for 99p on a cassette tape down at the local newsagent. Those were the days.

Fast forward to today, and we’ve lost that. The vast majority of computer users will never go anywhere near anything resembling a programming language, so they won’t even poke around out of curiosity. Even if they wanted to, it is much harder to get started now. Where do you begin? You started up an Electron and you were presented with a very simple screen that threw you straight into programming, and there was even a book in the box called “Start Programming with the Acorn Electron”. You almost couldn’t stop yourself from programming on one of those. But today, how can you get started on a PC? You can download Visual Studio Express for free – but check out what Microsoft thinks is a friendly introduction. Just go to that page and ask yourself what somebody who has never attempted programming before is likely to make of it.


One of these is easier to get started with than the other

In Schools

If it weren’t for that Electron, I doubt I would be a software developer now. I remember the IT lessons I had at school in the mid 1990’s, pre mass adoption of the web, and it was all about using Word and Excel. Very uninspiring. It doesn’t sound like much has changed since then, apart from a rebrand of the subject as “ICT” – they’re still not teaching programming.

Google’s Eric Schmidt criticised this state of affairs recently:

Schmidt said the country that invented the computer was “throwing away your great computer heritage” by failing to teach programming in schools. “I was flabbergasted to learn that today computer science isn’t even taught as standard in UK schools,” he said. “Your IT curriculum focuses on teaching how to use software, but gives no insight into how it’s made.”

Recently though, it seems the tide is beginning to change, and people are waking up to what has surely been obvious for years now – we need to get kids programming again, and we need to act now.

There are plans to pilot a programming GCSE and A-Level, but I think programming concepts could be taught even earlier. I started when I was 8 years old, and there must be plenty of kids out there who have the aptitude for it and could do the same thing. We just need to make programming accessible and appealing.

Simplified Languages

There are some simplified languages, such as Scratch and Microsoft’s SmallBasic. I think there are more creative ways to introduce programming into the curriculum though, and I think the software I have been working on, Quest, has a role to play here. Quest is designed to revive the text adventure, and I think it also has a wide variety of potential uses for education, one of which is as a way of introducing the fundamentals of programming.

Quest presents a visual editor so it doesn’t have off-putting syntax and crazy punctuation all over the place – all programming script commands are displayed in plain English. There’s no need to remember what to type, because the possible script commands can be selected from a searchable list. You can create a very simple game without using any script commands at all, so the programming side of things can be introduced gradually. Underneath is a fully featured, powerful programming language – it has all the fundamental concepts that you would expect, such as variables, functions, loops, expressions and objects.

Because it’s not a “pure” programming tool I think it could even be sneaked into other areas of the curriculum – for example, in an English creative writing lesson, pupils creating a text adventure game would be exposed to a few programming concepts, and it wouldn’t even hurt a bit.

Quest Script Editor

By playing each other’s creations over the web or a school network, that will encourage competition between pupils as to who can make the best game. From the evidence I’ve seen so far, creating games with Quest is something that school children can really get excited about – some year 7’s (11-12 year olds) were so keen they were even skipping breaks to continue working on their games.

So if you’re a teacher or parent and want to introduce your children to programming, why not give Quest a try. It is free and open source.

I still have more work to do on Quest to make it even more education-friendly. I’m currently working on version 5.1, and one of my plans is to have a “simple mode” in the Editor, to hide the more advanced features which could be distracting. I hope that this will make it even more suitable for children of primary school age. There is also work to do developing course materials for teachers and pupils – Kristian Still, an assistant head teacher in Southampton, is currently developing a Moodle course for Quest.

I’m very keen to hear from teachers who may be thinking about using Quest in the classroom, so please get in touch if you have any questions or feedback.

Improvements to

As well as making Quest a great system to create text adventure games, I want to make a great place to host them. It started out as the very basic “Quest Games Archive” many years ago, and has had various improvements since then – “play online” support and the addition of categories, for example.

It is already probably the most popular internet destination for people who are looking to play text adventure games – it’s usually in the first two search results on Google for “text adventures”, and with the “play online” feature just a click away for every game, I think it’s a pretty good place to upload your game if you want people to play it.

However there is still some way to go to make the site work really well for both players and authors, so I’m planning to make some more enhancements over the next few months.

Here are a few that I’ve implemented over the last few days:


I’ve been logging “download” and “play” counts for a few months now, and these are now visible on the site. The “Top 10” section on the front page now gives you three different top 10s – you can see the top rated games as before, but you can now also see “most played” and “most downloaded”. The “most downloaded” chart includes both downloads from the website and downloads from within Quest 5.0.

When you click on a game page, you can see the download and play counts under the description.

Right now the most popular game is The Things That Go Bump In The Night, by Tim Hamilton – with 9428 online plays and 1297 downloads since 7th Feb (when I started logging), that’s not a bad reach for a text adventure, I think. It also shows how popular online play is compared to downloading games – it is now the reality that most players want something they can get started with quickly, and they’re not going to waste time downloading an interpreter first.


You can now modify a game listing after you’ve uploaded it. So if you want to update the description, or upload a new bug-fix version, you can now do so by going to your game page and clicking “Edit this game” at the top. You must be logged in of course!

Categories and Languages

Games are assigned a category only after they’ve been checked by a moderator. This ensures that only games of a reasonable quality are given a category – a lot of uploads are quick test games or are incomplete, so these get assigned to the Sandpit category instead. However, as a game author you probably know best what category you would like it to be in, so you can now specify one when you upload, and you can also suggest a new category if none of the existing ones fit.

You can also now specify a language. This isn’t really used anywhere at the moment, as currently all games on the site (with only one exception) are in English, but when we have enough non-English games I will implement language filtering so players will see only the languages they’re interested in.


This is just the beginning of improving the site – there are a few more things on my list still to come:

  • an area on the site for libraries
  • support for “cover art”
  • private games
I’m grateful for any feedback! Any suggestions for making the site better are more than welcome.