Author Archives: textadventurescouk

POV support – multiple player objects in Quest 5.3

Quest 5.3 adds support for a game to use multiple player objects. The game is still a single-player game, but you can now switch between different characters at any time.

This means you can now create a game where the player can explore from different points of view, or perhaps simply choose a pre-defined character when starting the game.

Previous versions of Quest simply had one object called “player”, which stored the player’s location, inventory, and any other attributes. As of Quest 5.3, any object can “be” the player, and it is easy to switch between them at any time using the new ChangePOV function (available on the script editor as “Change player object”).

So you could change the POV after asking a question in the game start script, in response to a command, or maybe after successfully solving a puzzle.

Each player object gets its own inventory and attributes. This includes status attributes, so each player could have their own health or stats, and these will be updated on-screen as the player switches between characters. For status attributes which apply across the entire game (perhaps “score” for example), you can still set these on the “game” object itself and they will be displayed whichever object is the player.

Objects can behave differently depending on whether they are the player or not. For example, if you have two player objects “Dave” and “Bob” in a game, and it is possible for them to be together in the same room at the same time, you will want different responses for “look at dave” and “look at bob” depending on whether the player is currently Dave or Bob.

To handle this, options that were previously only available for the single “player” object are now available for all objects. The object’s Options tab has a new “Player” section. If “Can be a player” is selected, new options appear where you can set an override “look at” description to display when this object is the player.

This new feature is part of Quest 5.3, which will hopefully be in beta around the end of October. In the meantime, you can download the nightly build from CodePlex.

Thanks to Phillip Zolla for sponsoring this work. If you’ve got an idea for a feature you’d really like to see in the next version of Quest, please consider sponsoring it as a way of making it happen – contact me for more details.

New free version of Visual Studio edits Quest source code

Microsoft have released Visual Studio Express 2012 for Windows Desktop. This is the first time there has been a free version of Visual Studio which is capable of editing mixed-language .sln files.

This means you can now open and edit the source code for the desktop version of Quest without having to use a paid-for version of Visual Studio.

Download VS Express 2012 for Windows Desktop

Download Quest source code

More information on contributing to the Quest open source project

When you open the .sln file in VS Express, it will complain that it can’t open the Setup, WebPlayer and WebEditor projects. You can safely ignore these messages, as they are not required to build and run the main Quest project.

If you have any questions about the code, please visit the Developer Forum. Happy hacking!

"The Things That Go Bump In The Night" now available for Windows Phone

Just a quick note to say that in addition to iOS and Android, Quest games can now be turned into apps for Windows Phone devices too.

The first app “The Things That Go Bump In The Night” is now live on the Windows Phone Marketplace.

Interested in creating your own text adventure app? Any Quest game can be converted into a smartphone app – more details on the Apps page, or please get in touch!

Available on the App Store

androidmarket

windowsphone

Automatic mapping in Quest 5.3

A text adventure generally involves moving around the game world by following compass directions – north, south, east, and west, with the occasional use of up and down, or in and out. Many players like to map out a game as they play using pencil and paper, but I expect the majority of players try to keep a map in their heads, and probably get lost more often than they would care to admit.

I’ve often been asked about adding a map as a Quest feature, but I had been put off from doing so by questions about how this should work exactly. For example, even if all exits are consistent (so that going west and then east takes you back to the same room), some rooms may be different sizes than others – this means that if the player starts in room A and goes north, west (along a long corridor), south and east, they will not arrive back in room A. And if you have many exits from a room, how do you ensure rooms don’t overlap?

I have now come up with a solution, and it’s the automatic grid-based map. This is a feature I have developed for Quest 5.3 (soon to be in beta, and already available as a nightly build if you’re feeling brave). The work was generously sponsored by Phillip Zolla who was the original inspiration for the idea.

The map is automatically laid out on a grid, in much the same way as you might manually draw a map on graph paper. The only data a game author needs to provide are the dimensions of the room (defaulting to 1×1) and the “length” of the exits (defaulting to 1). Laying out the map then occurs automatically as the player moves through the game. And because the author only needs to input dimensions and lengths, this was very easy to implement in the Quest Editor – which was important as I didn’t have the time to implement a nice graphical click and drag map editor which would work in both the Windows and web browser versions.

Here’s an example map with three rooms:

Room A is 3×3, B is 6×2 and C is 3×5. All exits have length 1. The yellow dot represents the current player location.

The map is drawn using Paper.js so is rendered the same whether the game is run on the desktop or in the browser, and should also be adaptable when games are converted into smartphone apps.

There are various options for changing room fill colour and borders, which lets you create some neat effects. For example, in a castle in a meadow surrounded by a moat with a bridge (you may have to use your imagination a little)…

By setting exit length to zero, rooms appear side by side. By setting borders correctly, you can show multiple rooms as one long path or corridor for example.

Up and down are handled using layers. In the example below, the player has moved up and the map for the levels below is shown faded out.

You can also click and drag to move the map around, and zoom in and out with the scrollwheel (and it should be straightforward to add touchscreen support too).

I expect to release a beta version of Quest 5.3 around the end of September.

Upcoming text adventure competitions

If you want to expand the audience for your text adventure game, and have the chance of winning something unusual (or maybe even some money), consider entering it into a competition – of which there are a few coming up.

The IFComp is now in its 18th year. People have already donated prizes which range from a $100 Amazon gift certificate to a box of Belgian chocolates and a remote tarot reading. (I would expect even more to be donated over the next few months – check out last year’s list). Sign up by 1st September, and ensure you submit your entry by 29th September. This is a great way of getting feedback on your game too, as there are usually a lot of detailed reviews posted of the IFComp games.

There is also a competition called Herbtslaub for German language games. Quest fully supports creating games in German, so why not give it a go if it’s a language you speak – prizes so far are a Matchbox car (for all participants) and a 7″ vinyl single, which already sounds more exciting than the couple of books that were on offer last year.

You should be able to enter these competitions by submitting the .quest file that is generated when you use the Publish tool in Quest. You don’t have to publish your game on textadventures.co.uk if that would break competition rules – if you want your game to be playable online without having its own review page on this website, contact me and I’ll upload your game to a separate area of the website and send you a link.

Let me know about any other text adventure/interactive fiction competitions and I’ll link to them from this blog. Good luck!

Quest at Games Britannia

MagnaI had the great pleasure on Tuesday of leading two workshops on Quest at Games Britannia, the schools videogame festival held at the impressive Magna Science Adventure Centre – a former steelworks in Rotherham.

Each workshop lasted two hours and there were about 15 children in each, with a range of ages maybe from about 8 to 15. Out of 30 children in total, only 3 had ever even heard of text adventure games before.

To get them familiar with how a text adventure works, I got them to spend the first 20 minutes playing Escape from Byron Bay. At first the groups were very quiet as they read the introduction to the game and started trying things out, but things quickly became more animated as the children started asking each other for help and shouting out as they solved puzzles. It almost seemed a shame to stop them before they completed the game, but time was tight and I wanted to get them started on creating their own!

Quest workshopEach student had their own laptop – some using the desktop version of Quest and some using the web version. I gave the students a quick overview of how Quest works – how to add rooms and objects to a game, add exits, set object descriptions, and allow objects to be takeable. This only took a few minutes to demonstrate and was enough to get the children started on mapping their own small game worlds.

I certainly didn’t need to help anybody choose what to write – the creativity of the children was amazing. They were bursting with ideas, and quickly set about creating their rooms and objects.

I then gave a quick demonstration of scripting – showing how to display pictures, and how to add a small puzzle (using an “if” script to allow an object to be picked up only if the player has already taken another object).

After that, I let the children carry on building their games, answering questions that came up – sometimes giving quick demonstrations to the whole group when topics came up such as containers, or adding verbs. I was impressed at how much ground we covered in the space of a two-hour session, especially given where we had started, from zero knowledge even about the existence of text adventure games in the first place.

Quest workshopIt was also really useful for me to see more children using Quest for the first time – a free usability testing session! I’ve definitely gained some new ideas about things I can improve. One attendee even managed to consistently reproduce a bug in the desktop version of the editor which I hadn’t seen before.

The feedback from the sessions was really positive, and I hugely enjoyed them too. I would be happy to run a similar session again, so please do contact me if this is something you’d be interested in (or if you’d like more information on running a similar session yourself).

I’d also like to extend huge thanks and congratulations to the organisers of Games Britannia, who have worked incredibly hard with limited resources to put together an amazing event – truly inspirational. Also thanks to Andy Stratton (who was running his own Quest workshop on Wednesday) for helping the workshop run smoothly.

Quest in italiano

Thanks to Francesco Cordella and Luca Salvicchi, you can now create Quest games in Italian.

This is now live on the web version of Quest, and will be added to the next release of the desktop version.

This brings the total number of supported languages to seven:

  • English
  • French
  • German
  • Spanish
  • Dutch
  • Italian
  • Esperanto

It is great to see Quest making non-English text adventures possible – and it’s nice to see the first non-English games being published on the site. Recent additions include:

I look forward to seeing even more – as well as bringing text adventures to audiences who may not speak English, I believe this kind of game could be a great resource for teaching foreign languages too.

It would be wonderful to have even more translations – Welsh, Russian, Chinese would be very interesting additions. How do you create a translation? It’s as simple as editing a text file. The page Translating Quest on the wiki has details, and I’m happy to help with any questions you may have.

Arrivederci…

Quest 5.2 is out now

Quest 5.2 has now been released, and you can grab it from the download page or use it online.

For full details of what’s new in this version, see the Quest 5.2 Beta announcement. The only things changed since the beta are:

  • a few bug fixes
  • exit links now immediately move the player (unless they have more than one verb) – thanks to James Gregory for suggesting and implementing this
  • the Editor will now not save invalid expressions (with mismatching brackets or quotes) to prevent a problem where this would cause the game file to become unloadable

Quest 5.2 Beta is now available

Quest 5.2 Beta is now available. You can download the Windows version, or you can use it in your web browser.

The main focus for this release was adding that second option – Quest 5.1 was Windows-only, and the main new feature of Quest 5.2 is that it is now available everywhere.

But I, and a couple of contributors, did find some time to add some other new features to Quest too:

Gamebook mode. This lets you create “Choose Your Own Adventure”-style games in Quest, in addition to text adventure games. There is more information in the announcement blog post. I’ve added a couple of small features since that post – you can now easily add YouTube videos into a gamebook, and you can also incorporate links to external websites.

Two-object verbs. It’s now much easier to set up commands like “hit nail with hammer” or “light candle with match”, using two-object verbs.

Inventory and container limits (contributed by Pertex). The concept of a “limited container” has been extended, so you can now limit by volume of objects as well as number. For example, a bag might be able to hold 20 apples but only one bowling ball, and it’s now easy to set that up. When an object is a limited container, you can specify the maximum volume that a container can hold. For objects that you might put inside a limited container, on the Inventory tab you can specify their volume.

These limits have also been extended to the player’s inventory. Select the player object, and you can specify the maximum number of items that are allowed in the inventory, as well as the maximum volume.

Multiple switch case expressions (contributed by James Gregory). When using the “switch” script command, you can now specify multiple cases separated by commas.

Customisable room descriptions. On the game editor, Options tab, you can now specify the order of elements in the generated room description. So you can now move the exits list after the description, for example.

Health and score. It’s now easier to have health and/or score on-screen, as you can now simply turn these on from the game options without having to set up the status attributes yourself.

There are new script commands for increasing and decreasing health and score. Also, when health is enabled, the object options tab has a new “Health” section which lets you specify that an object can be eaten. If the object can be eaten, it can add or subtract health points from the player.

First time scripts. It’s now easier to run a script just once, the first time something happens – such as the first time the player speaks to a character, uses an object, etc. Previously you would have to create flags for this, but you can now simply add a “First time” script command which handles it all for you.

Easier introduction scripts. There was a change to how “wait for a keypress” (and other functions such as asking the player a question) worked in Quest 5.1, which made it difficult to insert a pause before moving the player to a room. This made it difficult to create introductory text in a game, as the player would be moved to the start room before they had pressed a key. This has now been addressed in Quest 5.2, as the core library uses a new “on ready” script command to move the player into the start room only after any waits etc. have been completed.

Hide/show objects. Previously, if you wanted an object to appear mid-game, you would have to move it from another room – maybe a dummy room used for the sole purpose of containing objects that aren’t “there” at the start of the game. In Quest 5.2, you can now hide and show objects – in a similar way to how this worked in Quest 4.x and earlier. There are new script commands for making an object visible or invisible, and there is a new checkbox on the object setup tab so you can make an object hidden at the start of the game.

Other new things:

  • When playing a game, game output is saved, so that when you re-load it later, you can see all the text that was there before
  • When you double-click an .aslx file in Explorer, Quest opens in Editor mode (.quest files still launch the game)
  • The ListExclude function can now exclude multiple items (contributed by James Gregory)
  • When playing a game online, as long as your browser window stays open, your game session should no longer time out
  • When play-testing a game from the Editor, you can now exit back from the Player into the Editor by hitting the Escape key (feature generously sponsored by Thomas Hines)
  • Better handling of JavaScript errors in desktop Player – now prints error messages in-line with the game output instead of pop-up windows
  • New Esperanto translation and updated Spanish translation, both contributed by Francisco Orta
  • New word-wrap option in the Code View
  • Reduced memory usage
  • More helpful error messages when the wrong number of parameters are passed to a function
  • Warn before exiting Quest if files are still downloading in the game browser, and added “Delete downloaded file” to context menu
  • and of course various bug fixes!

Please try out the beta and let me know what you think. Download Quest 5.2 Beta for Windows or try it in your web browser.

Many thanks to those who have contributed to this release – Pertex, James Gregory and Francisco Orta. If you’re interested in contributing, please take a look at the Developer page and Developer forum.