Author Archives: textadventurescouk

Introducing Quest WebEditor – create text adventures online in your browser

I was hoping to announce the world’s very first online text adventure maker – but, dammit! Playfic got there first, by a matter of days. So, what I am announcing today may be the world’s second-ever online text adventure maker, but it is also rather different to Playfic as you will see.

The Quest WebEditor is the world’s first online visual text adventure maker. It is (almost) the entire desktop version of Quest, but transplanted into a web browser. So, now you can create a text adventure game, with no prior programming experience, and without downloading any software. You have access to the full range of Quest functionality, including multiple languages, the ability to use hyperlinks in your game (to make it easier to play without typing), and the ability to embed videos, pictures and sounds for a modern text game experience (personally I’m fairly tired of text adventures being thought of as “retro” all the time – there’s no need for them all to look like MS-DOS).

Let me take you on a tour!

First, you’ll need to log in to textadventures.co.uk. You’ll then be able to access the “Create” page, which looks like this:

01 create

Enter a name for your game (you can always change it later), and choose a language.

Hit the Create button, and your game will be created. This is what it looks like in the editor:

03 blank game

This is a similar layout to the desktop software, and the full range of functionality is available – including cut/copy/paste and undo/redo.

The Settings button lets you turn on Simple Mode – as in the desktop software, this hides away some of the functionality to make it easier to get started.

I’ve renamed the initial “room” to “lounge”, and I’ve clicked the “+ Room” button to add another location to the game, a kitchen. Now, with the lounge selected, I can add an exit to the kitchen from the Exits tab:

05 create exit

I can add an object by clicking the “+ Object” button. Here I’ve added a sofa, and entered a text description:

06 add object

I can try the game by clicking the Play button. It appears in a new tab, using the same “play online” interface as the published games on the site.

07 play game

I can interact with the game just like all Quest games. There’s no need to force your players to type commands – the hyperlinks allow you to make a game which can be played with a click of the mouse, or a touch of the screen:

Here’s the game output after looking at the sofa, and moving east into the kitchen.

09 game

The real power of Quest comes from scripts, which let you control anything in the game – move the player, change responses according to what the player has done before, set up puzzles, show pictures and more. Back in the editor, let’s change the description of the sofa so that it runs a script instead of just displaying text:

Now we can click the “Add new script” button to choose from various options. This is the Simple Mode list – there is a much bigger list if we turn this off:

11 add script

Let’s play a YouTube video when the player looks at sofa. I choose “Play YouTube video” from the “Add New Script” dialog, and then I can enter a video ID. I found a clip of a TV sofa advert:

And here’s what the game looks like if we run it now:

13 play youtube

So there you have it!

This is currently in private beta – email me if you’re very keen to test it. Otherwise, I will make it available as a public beta in a few weeks.

Game Based Learning – Interactive Fiction at LWF Free Festival

Learning Without Frontiers (LWF) is at London Olympia on Wednesday 26th and Thursday 27th January, and alongside the (expensive) main conference there is a free festival, featuring a variety of sessions on digital learning.

On Thursday from 10.30 – 12.00, iO are hosting a session on Game Based Learning at Salon Bourdieu (S2):

This session will cover three different areas of the use of games in learning and most importantly games creation in creating learning opportunities for students. The session will draw on practical experiences that have already taken place in schools, refer and develop thinking based on newly released research outcomes, and give delegates solid starting points for them to take away and develop in their schools or organisations.

As part of this, myself, Kristian Still and Tom Cole will be talking about Interactive Fiction and Quest.

This session will explore how classroom practitioners have enabled their students to start writing, creating and engaging with Interactive Fiction games. The speakers will examine how disengaged readers are now reading and even better engaged in writing games. Examples of how IF is being used in other subject areas such as Science are being explored and developed.

Register for the festival – it’s free.

More details are in the full schedule (annoyingly there seems to be no way to link to a particular session, so scroll down to Game Based Learning at 10.30 on Thursday. Also for some reason the programme has me down as “Alex Ward”).

Hope to see you there!

Gamebook mode ("Choose Your Own Adventure") in Quest 5.2

I’ve started work on Quest 5.2, aiming for a release in the Spring. One of the first new features I’ve implemented begins to take Quest away from “pure” text adventures to open up another type of interactive storytelling – gamebooks, also known as Choose Your Own Adventure (CYOA).

The gamebook mode is fundamentally a simple alternative Core library, built on the Quest platform. This means that you can create games using Quest’s visual editor, include graphics, upload your game to be played online in a web browser, and have your game converted into an app – everything that a “full” Quest game supports, with the difference that it is much simpler to create and play a gamebook, as players are only given a limited set of choices.

To create a gamebook, the “New Game” dialog has been updated with a new “Game type” option:

The Editor for Gamebooks is simple – each game comprises a number of pages. Each page has some descriptive text, and links to other pages.

Pages automatically default to names Page1, Page2 etc., but you can call a page any name you like.

This is what a new gamebook (as shown in the Editor above) looks like when you play it:

That’s all there is to it – pretty simple stuff really, at least for this first version. There is definitely potential for adding functionality in the future – because gamebooks are not fundamentally any different from ordinary Quest games, the full power of Quest’s scripting engine is available. This means that different behaviour could be triggered based on the player’s previous choices, random elements could be added, YouTube or Vimeo videos embedded, and a whole lot more.

Hopefully this new mode will open up interactive stories to a wider audience – if a full text adventure is too much work, a gamebook is one way of creating an interactive story where you really can focus much more on the writing than the implementation.

Gamebook mode is part of Quest 5.2, which is currently in development. I’m aiming to release this around Spring, although there will be a beta version before then. If you want to try it out right now, you will need to build the code yourself.

Quest 5.1 now available

Quest 5.1 is now available.

The new version of Quest features the following improvements below (mostly copied from the beta announcement, so apologies if this is all familiar!)

  • Enhanced Game Browser. You can now see star ratings, and read reviews and comments, directly within Quest. You also have more control – from the Options window, you can change the download folder, and enable or disable the Sandpit and Adult categories. Also, the Adult category option can be “locked out” with a registry setting (see “Configuring Quest” on the wiki for details) – handy if you’re rolling out Quest on a school network for example.
  • Simple Mode. Hides Quest’s more advanced functionality in the Editor – great for beginners, or for using Quest with younger children. The Editor becomes stripped right down to the basics – only rooms and objects are displayed in the tree, without the distracting “clutter” of functions, walkthroughs and so on. The Script Editor is cut down so only the most important script commands are displayed when adding a command. But full power is only ever a click away – you can toggle Simple Mode on or off at any time from the Tools menu.
  • Walkthrough Enhancements. You can now include walkthroughs in published .quest files, and the new walkthrough assertions feature allows you to create automated tests. See Walkthrough Assertions on the wiki for details.
  • Loops. There is a new “while” loop, and a new step parameter for “for”.
  • Use/Give. These have been moved to their own tab in the object editor, which is now more flexible. There are now separate lists for “Use (other object) on this” and “Use this on (other object)”, so you can set up a “use A on B” relationship from either A or B.
  • Hyperlinks. You can now customise the look of hyperlink menus – change the menu fonts and colours, and turn link underlining on or off. It’s now easier to create custom hyperlinks – the new ObjectLink function makes it easier to create an object hyperlink, and the new CommandLink function lets you create a hyperlink that will run any command.
  • Metadata. From the game editor, you can now enter a description and choose a category. There is a new game ID which will be used to uniquely identify a game. This will make it possible to upload a game to textadventures.co.uk without having to re-enter descriptions etc. on the web upload form.
  • Better error reporting. Error messages are now more detailed, so if your game won’t load you should have a better idea why. If Quest crashes, you can now submit an error report online.
  • Comments in the Editor. Script comments (lines beginning with “//”) are no longer stripped away when you open an ASLX file in the Editor – comments are now viewable in the Script Editor, and you can add and edit them.
  • Videos now automatically start.
  • You can now turn off sounds from the Options window.

Full upgrade notes are available on the wiki.

Download Quest 5.1

"Play online" now works on mobile browsers

All games on textadventures.co.uk can now be played online via iPhone, iPad and Android browsers, and on desktop browsers the player has a fresh new look.

Although the main website isn’t particularly mobile-optimised (just yet!), if you click the “Play online” link for a game and are using a mobile browser, you’ll see the new mobile-friendly version of the player.

Mobile WebPlayer

The inventory, compass etc. are moved off onto separate screens, which you can access by tapping the “+” button next to the input box.

Mobile WebPlayer Location tab

This means the experience of playing a game via a mobile web browser is similar to what you get with a stand-alone Quest game app. So that’s (currently) 356 games which are now playable through a mobile web browser – plenty of choice for gaming on the move, as long as you have an internet connection.

If you log in first, you can save your progress as you go along by tapping the “Save” button on the “More” tab. The game is then saved under your account, which means if you later log in from a desktop machine, you can resume your game from there.

Mobile browser games support pictures, which are resized to fit the size of the screen. You can also use hyperlinks for those games which have them (although most of the games currently on the site were written for older versions of Quest which didn’t support hyperlinks). You can use the Inventory and Location panes to give you quick access to objects without typing. Also, games written for Quest 4.x and later support abbreviations, so you can type “x mon” instead of “look at security monitors” for example.

The mobile player will automatically adjust to the resolution of your device, so it works nicely on tablets too.

The desktop browser player now also has a fresher look:

Desktop WebPlayer

I hope you enjoy the experience of playing text adventures on your smartphone – don’t forget about the stand-alone smartphone apps as well, allowing you to play on your phone even without an internet connection. I hope to release more games as apps in the near future, and if you’re interested in having your game converted into an app, please get in touch.

Quest 5.1 Beta

Quest 5.1 Beta is now available. This is the beta test version of the next release of Quest, which features the following improvements:

  • Enhanced Game Browser. You can now see star ratings, and read reviews and comments, directly within Quest. You also have more control – from the Options window, you can change the download folder, and enable or disable the Sandpit and Adult categories. Also, the Adult category option can be “locked out” with a registry setting – handy if you’re rolling out Quest on a school network for example.
  • Simple Mode. Hides Quest’s more advanced functionality in the Editor – great for beginners, or for using Quest with younger children. The Editor becomes stripped right down to the basics – only rooms and objects are displayed in the tree, without the distracting “clutter” of functions, walkthroughs and so on. The Script Editor is cut down so only the most important script commands are displayed when adding a command. But full power is only ever a click away – you can toggle Simple Mode on or off at any time from the Tools menu.
  • Walkthrough Enhancements. You can now include walkthroughs in published .quest files, and the new walkthrough assertions feature allows you to create automated tests. Enter “assert:” followed by an expression at any point in a walkthrough, and that expression will be evaluated. The walkthrough will terminate if the expression evaluates to false.
  • Loops. There is a new “while” loop, and a new step parameter for “for”.
  • Use/Give. These have been moved to their own tab in the object editor, which is now more flexible. There are now separate lists for “Use (other object) on this” and “Use this on (other object)”, so you can set up a “use A on B” relationship from either A or B.
  • Hyperlinks. You can now customise the look of hyperlink menus – change the menu fonts and colours, and turn link underlining on or off. It’s now easier to create custom hyperlinks – the new ObjectLink function makes it easier to create an object hyperlink, and the new CommandLink function lets you create a hyperlink that will run any command.
  • Metadata. From the game editor, you can now enter a description and choose a category. There is a new game ID which will be used to uniquely identify a game. This will make it possible to upload a game to textadventures.co.uk without having to re-enter descriptions etc. on the web upload form.
  • Better error reporting. Error messages are now more detailed, so if your game won’t load you should have a better idea why. If Quest crashes, you can now submit an error report online.
  • You can now turn off sounds from the Options window.

Download Quest 5.1 Beta

"The Things That Go Bump In The Night" now available for iOS and Android

The Things That Go Bump In The Night is now available for iOS (iPhone, iPod Touch, iPad) and Android devices.

In this game, written by Tim Hamilton, you are a security guard settling down to a quiet night shift, when things start to go wrong. You must make your way around the compound, solving puzzles and dispatching mysterious beasts.

Available on the App Store

androidmarket

This is the first Quest game to appear for smartphones, and I believe it is the first text adventure to be specifically designed for a pocket-sized touch screen – you can play the entire game without typing, instead using the hyperlinks and tabs to navigate and interact with the game world.

bump-300x194

You can find out more about how the game was made in my earlier blog post. The game is fairly difficult – if you get stuck, check out the comments on the original textadventures.co.uk game page for some tips! Also check out the Twitter hashtag #ttgbitn.

More games will be released soon. Maybe you’d like to write one? Any game written for Quest 5 can now be converted into an app, so if you’re interested, please get in touch!

"Play Online" now supports saving

Playing Quest games online is far more popular than downloading for offline play – it doesn’t require any downloads, and it works on all platforms. But the offline player (requiring a download of the Windows-only Quest software) provides a better experience in a number of ways – most notably, until now it has been the only way of saving your progress in a game so you can come back to it later.

Well, I’ve now updated “Play Online” (a.k.a WebPlayer) so that you can save your game, if you’re logged in. When playing, there is a new “Save” button in the top right of the page.

To restore your saved game later, log in and then go back to the game page. You’ll see two “play online” links:

So, now you can play games on any device, save them and come back later – even on a different device. Play at work during your lunch hour, then finish the game when you get home.

Please let me know if you have any questions or feedback about the new feature.

"The Things That Go Bump In The Night" coming to iPhone and Android

The first Quest-powered smartphone app will be released soon. It is an updated version of Tim Hamilton’s The Things That Go Bump In The Night, currently one of the top-rated games on textadventures.co.uk, and will be available for both iPhone/iPod Touch and Android devices.

bump-300x194

This is the first time that a Quest game has been converted into a native application. As I’ve explained in a previous blog post, the way it works is by using a tool which I’ve built to convert Quest games into pure Javascript. Using Phonegap, this HTML/JS is then wrapped into a cross-platform app.

That’s the theory, but it has taken a bit longer than I initially expected to get this first app ready for release, for reasons which I’ll go into below. The good news is that subsequent conversions should now be much quicker and easier.

Two Conversions

The first step was actually a pre-conversion – the app converter works with games written for Quest 5, but Tim’s game was written for Quest 4, which is effectively a completely different system (although sharing some of the same design). So the first thing to do was convert a Quest 4 game into a Quest 5 game.

I wrote a converter application which converts most of a game correctly, although there were still a few manual tweaks to do – even some Quest 4 bugs to emulate! What really helped was to have a complete walkthrough for the game – Quest 4 has a “transcript” feature which is similar to Quest 5’s walkthrough feature. This meant I could have Quest 4 and 5 automatically play the game through to completion, and compare the output, fixing things as I went along.

I then sent Tim the converted Quest 5 game, and he made a few more tweaks and corrections. He also adapted the game to make better use of hyperlinks – something which is really important for the smartphone version of the game. Tim’s enhancements mean it is possible to play the game through in its entirety, without having to type anything.

By the way, now that I have an internal Quest 4 to Quest 5 conversion tool, please get in touch if you have an old game you’d like to convert. The conversion isn’t perfect (which is why this won’t become part of Quest itself), but it can get you most of the way.

Re-engineering Quest

The next step was to convert Tim’s enhanced Q5 version of the game to Javascript, using the converter which I announced back in September. I’d thought the converter was 90% done, but as is the case with so much in the software world, the last 10% took far longer than the first 90%.

The main difficulty has been threading. Javascript is single-threaded, which means you can’t pause a running thread while you wait for some user input. This meant I needed to re-work all of Quest’s functions for displaying menus, waiting for keypresses, asking questions etc. The result of this is new asynchronous versions of various functions, which are implemented in Quest 5.1 and used by the Core Library, as the old synchronous versions of the functions cannot be converted to Javascript.

Being unable to block the thread to display a menu meant that I had to rewrite the parser, as this often needs to display menus to resolve the typed-in object names. I drew myself the diagram below and almost descended into insanity in the process:

So, that was annoying, but it’s actually a better design for the future (especially when playing a game via the web, as the server will no longer need to keep a thread hanging around if it’s waiting for the user to respond to a menu).

Eventually I had a pure HTML/JS version of the game which could be played in any web browser. I implemented the walkthrough feature to verify the game was working correctly, and again I sent it to Tim so he could check for any “off-walkthrough” problems.

Performance

Now the game was working in HTML/JS, it was straightforward to wrap it in Phonegap and create a functioning app. Even here there were unexpected problems – although the app ran at a respectable speed on my iPhone 4, when I ran it on my old iPhone 3G I was horrified to find that it would sometimes take 10 seconds to respond to a command. The fix was again some re-engineering of Quest 5 and the Core Library, this time adding the ability to cache regular expressions, and improving the performance of the scope functions.

Saving

The desktop/web version of Quest 5 saves games by writing out the entire game state. The JS app version takes a different approach, saving a delta instead – only changed attributes are saved to local storage. This is quicker, requires much less local storage, and also means that the app can be safely updated without breaking existing games. The delta is automatically saved after each turn. Again I found some performance issues here, so it took a bit of time to get this right. With a Phonegap app on the iPhone, you get no warning if your app is going to be terminated, so I had to make saving robust enough that it wouldn’t break things horribly if the game started saving but never finished (instead, there are effectively two save slots that are used alternately, so the worst that can happen is you lose one turn).

Android

By now I had the game working pretty well on iOS, and sent it to a few beta testers using TestFlight, which I highly recommend as it takes much of the pain out of ad-hoc distribution on the iPhone. I thought it would be a good idea to get it working on Android too, and I was pretty pleased when only two days after I took delivery of the cheap but surprisingly capable Samsung Galaxy Ace, I had a version that worked on that too.

The Android version looks pretty similar to the iOS version. There is no NativeControls plugin for Android, and Android doesn’t “do” iOS-style tabs at the bottom of the screen anyway, but it didn’t take long to create a native menu which can be used to switch between screens instead. When tapping an object link, I had to create a Javascript menu to display the verbs, but that was only a small amount of work too, made relatively easily using a jQuery UI dialog.

I was pleased with the overall Android development experience – it seems so much more developer-friendly than iOS. The documentation is laid out in a way that a mortal can understand, and it’s so much easier to send a build to beta testers – just email an APK file. Much more pleasant than dealing with certificates and distribution profiles on iOS.

Ready

So it is now ready – the first Quest-powered iOS and Android app, which is also my own first app for these platforms. The iOS version has been submitted to Apple, and I’ll submit the Android version as soon as it’s approved, so both versions will be available on the same day – watch this space!

Quest in Education – "Changing the Game" conference

I’ll be at the “Changing the Game” conference in Birmingham this Thursday (17th November), which is all about getting students learning through playing and creating games. Kristian Still will be presenting a session on his school’s experiences with using Interactive Fiction and Quest, and then it’s my turn – I’ll be presenting a quick overview of Quest, showing how quick and easy it is to get started. Do say hello if you’re there!

Even the Prime Minister David Cameron is now saying that the UK needs to do more to teach programming in schools, so it seems like a good time to reiterate my commitment to making Quest a great platform for teaching the fundamentals of programming.

It is already being used in a few schools for a variety of age groups and subjects – not just ICT, but also in English where text adventures can be a part of creative writing. It can also be used for teaching Modern Foreign Languages (MFL) – it currently has language libraries for English, French, German, Spanish and Dutch.

Pupils can get started using Quest’s visual editor with no programming experience, but along the way they will be exposed to various programming concepts, such as variables, functions, loops, expressions, objects, etc. The underlying Quest scripting language is pretty powerful, so it can be used for quite a large range of ages and abilities.

I’ve created a new Education category on this blog, where you can find my previous posts which go into more detail.

I’ve also set up a new Education forum, so teachers can come together to share their ideas and experiences of Quest in the classroom.