Camen Design

c share + remix mystery 199.2 KB

This is an abandoned project, now made publicly available and free for anybody to use, adapt and share.

A New Kind of Text Adventure

Text adventures (“interactive fiction”, or “IF” to some) are still based on the original 1970’s concept. Graphical adventure games split off and became their own thing (point-and-click adventures), but the text-adventure of 2011 is still pretty much Adventure (the first text-adventure), but on new hardware. This is okay, but we’re still stuck in that ’70s implementation mindset that was shaped specifically around the restrictions and programming style of the computers in that time.

I am working on a novel, presented using a new, elegant, web-based format that ditches the 1970’s look-and-feel and limitations.

There exists two main problems with current Adventure-like interactive fiction that make it unsuitable for the book I want to write. Firstly, not enough text, and secondly, out-of-place navigation.

Most text adventures accept that they are room based and that you move around a lot and so keep the descriptions brief. This places more focus on issuing commands than being absorbed in the story. I wish to write a story first, a game second. My book will read just like a book, but the player will initiate each new paragraph. How long and how detailed a chapter is will be up to the player, but the end result will still be a readable chapter; not a string of commands.

The cardinal navigation used in Adventure-likes is inelegant and frankly horrible for the purposes of my story. I don’t tell people in my dining room to “go east” to get to the sitting room. You go from one location to another via relative and known portals such as doors, ladders, paths, gates &c. This is how books tell the story.

I started first by looking at Inform (and had considered Quest too), but even these most modern tools are still using the same Adventure mindset and after spending hours trying to learn Inform’s syntax I realised the whole shebang was completely over-engineered. I could spend forever learning one language to get the editor to understand my intentions, for it to compile into another language (z-machine), that would be interpreted by another language (Parchment) and still leave me with a 70’s game design that I couldn’t fundamentally change.

I decided to write in what I know best: HTML. HTML would give me the formatting I wanted, universal access for players (no software to install) and the raw writing language that wouldn’t have to be written in one dialect in order to be converted into another one.

I also decided not to write a system for writing text-adventures. PHP is already a programming language for implementing a text-adventure. Most people don’t seem to realise this concept, and instead write a PHP program to generically read and interpret data that’s been written using another tool they usually had to write as well. If I did this, I would be spending an eternity developing a system and never actually getting around to writing the content! The game’s logic is therefore actual PHP commands. Ifs are ifs, with no virtual-machine between the two. This lets me write any logic I want, in a simple scripting language and inline the story text in the same HTML as will be rendered by the browser. Blissfully elegant and content-focused.

What Kind of Story Is It?

The story is a new and original Sherlock Holmes mystery, inspired by the Conan Doyle works. Exact details have not yet been pinned down. It is important to understand that this is a novel first, and a game second. Whilst the goal of most (if not all) text-adventures is simply to issue the right commands in order to win, the goal of this game will be to experience the story, the same as reading any book. The level of detail revealed will be up to the player’s curiosity and ingineuity.

Front cover of the text-adventure book “The Mystery of the Missing Detective”

This fundamental and refreshing difference is best demonstrated rather than explained.
That said, before you see this, bear in mind that this is a very, very raw prototype.

  1. The “engine” that powers this is about 150 lines of PHP / HTML, everything else is story text and logic

  2. Many reactions are not programmed yet, and there’s no response for incorrect actions (“I can’t let you do that Dave”)

  3. I haven’t added an inventory yet, which will be necessary to complete the demo room fully

  4. As a prototype it lacks the depth. The rooms and objects provided are examples, and don’t fully explore the prosaic exploration possible. For example, I would imagine that the player would read a few pages of introductory story in Chapter 1 before they even get to the command prompt

Regardless, enjoy!

This is an abandoned project, now made publicly available and free for anybody to use, adapt and share.