Thursday, 17 May 2018

Keyboard shortcuts in Adventuron Editor

It has come to my attention that I have not properly drew attention to the keyboard shortcuts that make editing in Adventuron's editor fast and easy. So here they are.

Adventuron Actions

Adventuron actions trigger adventuron specific events .

  • Control + Spacebar = Context Sensitive Autocompletion Options.
  • Control + S = Save document (to local storage) + refresh game window. NOTE : Currently Adventuron's web UI does not support saving more than one document at a time locally.

Text Navigation Actions

Text navigation options allow game authors to navigate around the document using the keyboard.

  • Page Up = Move up by one screen worth of text
  • Page Down = Move down by one screen worth of text
  • Home = Move to beginning of start of text on current line
  • Home then Home = Move to absolute beginning of current line (before column 1)
  • End = Move to end of current line
  • End then End = Move to end of text on current line
  • Tab = (not after autocompletion has been selected) Insert three spaces into a document. (After autocompletion has been selected) move to next demarcated block of text to be edited.

Text Selection Shortcuts

Text selection allows game authors to select blocks of text without using the mouse (or touch).

  • Control + A = Select all text in document
  • Control + Home = Go to beginning of document
  • Control + End = Go to end of document
  • Shift + (Up or Down or Left or Right or Page Up or Page Down Or Control + Page Up or Control + Page Down or Control + Start or Control + End) ... select additional text between current cursor position and new location - as per descriptions above.

Text Mutation Options

  • Del = Delete character to right of cursor, or delete SELECTED TEXT.
  • Backspace = Delete character to left of cursor, or delete SELECTED TEXT.

Text Actions

  • Control + F = Find text in document
  • Control + F then Control + F = Replace text in document.

NOTE : This list is Windows-centric. Please replace "Control" with "Command" on OSX.

Friday, 11 May 2018

Adventuron 0.5.7 released - Fixes for Chrome 66

Adventuron 0.5.7 has been released with fixes for the new audio blocking features of Chrome 66

See Article:

A Google Chrome update breaks the audio in numerous web-based games

Unfortunately, in adventures exported (via HTML5 export) with 0.5.6 or earlier engine, any Adventuron adventures using a BEEP command will hang on Chrome (66 or greater).

This happens because Google appears to have broke web standards in it's implementation of blocking audio on autoplay media.

Google's heart was in the right place, but it just broke thousands if not hundreds of thousands of web based games, many of which were and are absolutely standards compliant.

Adventuron sequences game events using callbacks, so a sequence of commands is structured as a chain. You can think of this as a game of pass-the-parcel, with each task that Adventuron executes, being aware of the person they will pass control to next.

Tasks such as "set the value of a variable", "create a game object - such as a lamp or a shovel", "make a beep sound", "clear the screen", "display an image", etc.

With Chrome 66, the audio playback policy changes created an issue when playing a beep instigated a non-handled error that meant the next command in the callback sequence was not being executed, therefore the person at the end of the chain that is responsible for re-displaying the prompt, never performs their task.

This lead to a hang of any games that used a BEEP command (on the Chrome 66 or above browser).

The fix for 0.5.7 was threefold:

  1. To create the JavaScript AudioContext ONLY when the first beep is played. This is usually after the first user interaction (touch, mouse click, or keyboard press). It's possible that games that start with a beep will still hang (I haven't fully tested it yet), but this should be a fix for 99% of scenarios, which is better than nothing for now. It'll be 100% in the next release, just thought it was better to get this out there.
  2. To call AudioContext.resume() prior to any any beep. This is near-zero cost (in the grand scheme of things).
  3. Strengthen exception handling in the audio playback - this should hopefully mitigate bugs that might occur on games that start with beeps before user interaction.

Future fixes (not in this release):

  1. Detect when games start with beeps before user interaction, and force a "Click to start game button" to appear first.

Entity Disambiguation Demo

Adventuron features engine-level adjective support, and entity disambiguation. A short demo of this feature is show in the video below.

Friday, 20 April 2018

Packaging your Adventuron game inside a HTML file

The IDE for the 0.5.2 release of Adventuron added a feature called "Save HTML5 Game".

This feature allows a gamefile to be saved in a HTML wrapper, alongside the game engine, and all required assets.

In the future, this may not save 100% of all assets (as ambient sound and active sound effects are due to be supported in the future), but everything else, and all current supported features are embedded.

The HTML5 wrapped Adventuron engine can be used for non-commercial text adventure games free of charge. So far, Adventuron's HTML5 UI is not ideally optimized for mobile clients due to vertical space annoyances in the OSs, like this Chrome issue is still not fixed after 1 year. I'm going to make a larger post about this someday, but it still does work on mobile clients, albeit, a bit scrunched up.

Anyway ..

The first batch of games released in this format can be found here.

I look forward to seeing more games distributed in this format.

Thursday, 19 April 2018

The Adventuron One

It's late here, and this is the first (late) post in this new blog, which will deal (exclusively) in posts relating to the Adventuron system.

The Adventuron One

Adventuron has been around for a while now and so far, I have only one regular user of Adventuron. But what a user ! No less than John Wilson, of Zenobi fame.

John (@RochBalrog) has been busy tolerating my updates, and porting his QUILLed games to the new engine. John is an absolute gentleman and I'm very happy to have lightly nudged him out of retirement in order to play with my toy, even just a little bit.

John's Adventuron Ports


So far, sadly, there have been no real new games released for Adventuron since new years eve 2017, when I wrote this article on Medium.

I feel there are a number of factors that explains this.

There are an astonishingly small number of people still playing "text adventure" games out there in the world, and even fewer developers of new "text adventure" games (hereon referred to as TA games).

Those that want to develop these types of games seem to be motivated by the technical challenge of putting it together, or motivated by the fun constraints of a true 'retro' platform. They are far more likely to use THE QUILL or PAW than to use Adventuron. Which is valid. Adventuron is a faux-retro platform.

For example, this is running on Adventuron inside a browser:

Motivation In A World Without Users

I am motivated to build something that will be a means of creating more retro-styled and anachronistic text adventures in the wild. I wanted to provide tools to make this possible, but I also wanted to bring back the aesthetic of SCOTT ADAMS games, THE QUILL and PAW and (to a lesser extent) GAC.

Systems like Inform 7 and other adventure game toolkits are way way more advanced with their parsers / game engines, but they seem to be less concerned with how the game feels when you interact with it. In my view it's all about the typography, the screen layout, and the bitmap / vector graphics - as well as the parser delay.

Adventuron encourages authors to create games with the soul of bitmap fonts and low resolution abstract graphics, whilst being tied to neither of those aesthetics.

I'm also motivated by innovations in UI. Adventuron ultimately should be able to be used without a keyboard. Not yet mind you, but the plan is there, as are good touch controls. By building games around an evolving engine, new features can be added to older games without changing a single line of code. Click to navigate is the first of these features.

Adventuron is a side-project, and a useful proof of concept for my language development and editor creation technology, but if I can inspire others to create something that would not exist if not for good tools, then that's a happy side effect of a necessary demo.

I feel my motivation for continuing to work on Adventuron over the years will remain. If I build it, they will build on it. Just not yet.

Keyboard shortcuts in Adventuron Editor

It has come to my attention that I have not properly drew attention to the keyboard shortcuts that make editing in Adventuron's editor ...