Wednesday, 27 January 2016

Menus 5 and Basic Help Menu 4 for Inform 7, and Robot Retrievers

After I learned that my Menus 4 extension had an accidental extra colon in it which prevented it working straight away in Inform 7 6M62 (6M62 got more rigorous about stuff like that) I took the opportunity to get to work on the next version.

I've just released Menus version 5, which requires Inform 6M62 and is now the public library version. In response to suggestions by Alice Grove, it sports a couple of small but fundamental changes that make it more user-friendly and flexible.

Before I get to those, do you want to see what you can do with this extension? Or, are you one of those weirdos who enjoys interacting with game elements for games that don't actually exist? If you thought 'yes!' to either of these questions, then play the extension's example project Robot Retrievers of the Year 3000 online at my website. It's all help and no game:

http://wadeclarke.com/ifdemos/robot_retrievers/

And now to describe the changes wrought in Menus version 5:

  • The primary change is that the top level menu table no longer has to use the hardcoded name 'the table of help contents'. You can call it anything you want and point the extension to it by setting the mn_master_table variable. This adds naming flexibility and also location flexibility; some people like to build the primary table in their source, some like to edit the extension itself. (To make a pre-Menus 5 Menus project work with the new system, only a single line needs to be added to your code – the instructions are in the extension docs.)
  • The other significant change is that the vanilla extension now compiles straight out of the box. If you just 'Include Menus by Wade Clarke', your project compiles even if you haven't built or edited any menus yet. Previously you had to create at least the top level menu or compilation would be blocked, which was inconvenient and potentially confusing.

To go with Menus 5, I've also released Basic Help Menu version 4. The content's the same as before, just compatibility-tweaked up to the 6M62/Menus 5 pairing.

Get one or both extensions from the public library:
  • If you're using Mac OS X, the extensions are available from the public library section in the Inform 7 application. With your internet turned on, click the Extensions tab at the lower right of your window, then the Public Library tab in the top right corner. The extensions are in section 11.2 - 'Out of World Actions and Effects' - 'Helping and Hinting'.)

Sunday, 17 January 2016

1-Carolyn Vaneseltine interview 2-Open Apple podcast & drive noises 3-Apple Time Warp podcast 4-Inform 7 doings

This is one of those Cadbury Roses blog posts with an assortment of topics.


1. Carolyn Vaneseltine interview

I listened to and enjoyed the new interview with IF author and Sibyl Moon blogger Carolyn Vaneseltine on Ken Gagne's Polygamer podcast. The conversation 'ranged across Twine, Inform, and Choice of Games, how to develop games without knowing how to program, the difference between “game design” and “game development”, and the upcoming Global Game Jam (Jan 29–31...)'.

The Game Jam talk caused me to think back on my two experiences of Global Game Jam to date, in 2011 and 2012.

If you're someone who's interested in going to Global Game Jam and would like to know (even) more about what it might be like, or you're someone who likes stories about hothouse game development, or you're someone who likes stories about hothouse game development written by ME in particular, you might enjoy these two accounts of my times at Global Game Jam:

2011 Global Game Jam, Sydney, Powerhouse Museum

2012 Global Game Jam, Sydney, Rosehill Gardens Racecourse


2. Open Apple podcast & drive noises

As a dyed in the wool Apple II head, I listen to the Open Apple podcast every month. It's about Apple II stuff, and the majority of it is about Apple II stuff that's happening today, because people are still producing software and hardware for Apple IIs. Those vacant hardware card slots Steve Wozniak built into the computer just keep paying off.

My 1990 Apple IIGS computer was completely re-energised last month when I bought a CFFA 3000 card for it. This card goes in one of the slots and adds a USB / solid-state storage facility to this 8/16-bit computer. And you don't have to limit yourself to any one kind of storage. You can use any modern computer to copy any kind of disk image onto a USB – 5.25-inch floppy images, 3.5-inch floppy images, hard drive images, images using any operating system the computer can handle – and you can boot up any of these images from a menu. This card, apart from being an enormous convenience, lets you pretty much eliminate the biggest point of failure for these older computers from your system: the moving parts disk drives and the decaying magnetic floppy media that go in them.

A price to pay for cutting out the real disk drive is that you no longer get to hear what the drive is doing. The drive sounds on the Apple II are particularly audible and organic. You can tell what the I/O is doing by listening to the kinds of grinds and clicks the drive is making. Particular games make particular sequences of sounds while loading, or at particular points during play, that basically become part of the aesthetic of the game on this platform.

(As an aside, here's a link to Antoine Vignau's Youtube channel 'Cracking Senses', which aims to pass on Apple II software-cracking lore and techniques. In these videos, he boots up various copy-protected Apple II disks in a drive with the top off so that you can see which head movements go with which sounds. A lot of copy protection schemes are identifiable by their drive sound signature.)

The thing I most miss when playing adventure games that I originally played on the Apple II on newer platforms is the contribution of the disk drive sounds. Major accomplishments in the Sierra Online or Infocom games were often accompanied by a pause for some heavy loading from the drive, perhaps with eccentric chugging sounds.

In emulation, this part of the Apple II experience is kept alive by the Virtual II emulator. Virtual II contains samples of all the different head and spin movements made by the 5.25-inch drive, and it strings them together in response to the movement of a virtual head to output the same sounds a real drive would make when interacting with a particular disk.


3. Apple Time Warp podcast

Another Apple II podcast I listen to is Apple Time Warp. I'd say that I listen to it regularly except that there have only been two episodes so far, and there were two years between them. But I have listened to both episodes.

This podcast is co-hosted by John Romero and features him talking to 80's Apple II game programmers about their games, tech tricks and memories of the software industry.


4. Inform 7 doings

In my Inform 7 doings, I produced the first example game for my WIP CYOA extension over Christmas. Predictably, it immediately revealed dozens of bugs and shortcomings in the system. So I've been attending to all those, and perhaps soon I will be able to move on to the easier examples.

After those are done I intend to make a full project using the extension. In matters of minor irony, this project will require almost none of the bells and whistles the extension makes available. But that's sort of forgetting that the meat and potatoes features of the extension are significant ones. The project will be friendly to all of desktop, website, iOS and screen reader play out of the box.

Sunday, 27 December 2015

Dreaming of a white fish Inform XMAS

It was Jean Baudrillard who postulated that we'd all end up speaking in ironic quotes in the hyperreality he also postulated. I think he also coined the phrase 'hyperirony', but Google isn't confirming that point right now, and the ace essay I wrote about this during my degree is both twenty years old and not located in the house in which I'm typing this post on an iPad+bluetooth keyboard combo.

I'm weary in life of being spoken to in ironic quotes I don't understand, but of course when I do it to others (minus the 'not understanding' part) I expect I'm doing it well. I choose source material judiciously, not from obscure hipster cartoons screening on pay TV in another country, for instance.

Often I choose to quote The Simpsons, as they have covered almost everything, and usually done it better and funnier than others. So, my general XMAS message is:

"Have a – nice Christmas!
Have a – nice Christmas!
Have a – nice Christmas!
Non-Christian friend"

PS I am irreligious.

---

In Inform-dom, we have been gifted a new version of Inform. It's 6M62:

http://www.intfiction.org/forum/viewtopic.php?f=7&t=19449

I like these letters, 6M62. They look bold and ground-touching. Not like my least favourite letters of late, '6L02', who looked veritably frail and consumptive.

---

In my own Inform-dom, I am well advanced in progress on my CYOA extension. There's still lots to do, though. More coding, making examples, some testing. But the work goes on. This is no vaporware.

Occasionally I speculate on the 'you need an interpreter' paradigm of most parser-based games that grew out of the modern community. Sometimes it feels like it just shifted the obligation to update software so that it keeps working from one group of people to another. That's a simplistic summation, but in the current situation, I don't think I ever worked out if anyone has a particular idea about where the emphases of compatibility should be. The core idea that the games are just words and that users should be able to control the appearance of the words is a good one, except for the million exceptions including graphics, sounds, and various UIs that authors want to use. And being an author and not being able to control stuff can be maddening. So even when the onus is left on the interpreter to be kept up to date (and not your game), from an author's perspective, you may end up with multiple versions of your game where one thing is broken in each one depending on where/how the user plays it, or where it never looks the way you'd really like it to.

That sounds a bit dispiriting, an effect enhanced by me writing it in a dispiriting fashion. But it's not like this is a new situation. Plus, this is XMAS! So get confident, stupid! The reason I vexed on these points a little here is as a prelude to pointing out how I'm going in almost the opposite direction of my traditional design impulses (which are author-biased and pro specificsim) in my choice-based extension. It harkens back to the 'the game is just the words' idea. The author links the word(s) to a choice or, uh, link, but the player can receive these any way they want. If you (THE PLAYER) want hyperlinks for your touch device or for clicking on with a mouse, you can have them. If you want letters of keys you could press, you can have them. You can also have both. So the approach is intended as a bit fire-and-forget for the author. Stop programming interfaces and just put your content in, and expect it to work on desktops, mobiles and in screen readers.

Now, one of the eternal vetters of ideas at intfiction.org, Peter Piers, said 'What if the author wants to override something? eg block hyperlinks, or keypresses, or whatever.' Certainly it remains that there are ways to do this, but as work on this extension has continued, I've realised which basket it's throwing its eggs into more forcefully, and that is the 'let the player control the interface' basket. The controls are simple and plugged into the game by the extension, so it's an extremely far cry from having to hack Gargoyle's template to force it to print in your particular favoured shade of ectoplasm green :(

So! This extension has a design emphasis about how it's going to do things. I think it's a good one for this project.

Wednesday, 9 December 2015

ANDROMEDA 1983

Marco Innocenti has just released ANDROMEDA 1983, an 80s'n'8-bit-styled fun-emphasising remake of his first Andromeda game, Andromeda Awakening from IFComp 2011. It's as if Andromeda Awakening had been released in 1983 for the Commodore 64, Apple II and ZX Spectrum as an adventure game with graphics and music. I produced the looping SID chippy soundtrack for the game.


1983 ain't heavy. As Marco said on intficiton.org,

"DISCLAIMER: this is not REALLY intended as a REAL GAME. It's 50% a joke and 50% nostalgia. You, Constant Readers, will tell me where do you fall. It's pretty short, it won't kill your time too much...

PS: Don't expect anything easy or polite to the player. What's actually there, trying and helping the player, was made by the Inform people and it's still there because it was too much struggle to remove. Honestly, it is a feeling I wanted to replicate, and that feeling had no synonyms, most of the time."

As a fan of the original game, I got an extra kick out of 1983, but play-wise it can stand on its own. It obviously wasn't worth trying to reproduce all the complexities of the original game in this format, so it's become a new, simpler game using some of the same basic story, locations and ingredients.

As a grizzled Apple II and Commodore 64 veteran, what really bowled me over when Marco first showed me this were the graphics. It's a very specific aesthetic he's recreated incorporating both the colour palette of the Commodore 64 and some of the pixel-dithering tricks used to produce textures on the considerably less colourful Apple II screen – as if the game's creators had indeed tried to port the game's graphics as consistently as they could across these different 8-bit machines.


Saturday, 5 December 2015

Inform 7 news: Wade Clarke's new Menus and Basic Help Menu now available in the public library

After much file-wrangling by the Inform extensions file-wrangler, Mark Musante, for which I am grateful, two new versions of extensions of mine have debuted in the Inform 7 public library this week. They are Menus version 4 and Basic Help Menu version 3.

  • If you're using Mac OS X, the extensions are available from the public library section in the Inform 7 application. With your internet turned on, click the Extensions tab at the lower right of your window, then the Public Library tab in the top right corner. The extensions are in section 11.2 - 'Out of World Actions and Effects' - 'Helping and Hinting'.)

About Menus 4

As previously advertised, my Menus is a significant update of Emily Short's old/classic Menus with a lot of additional features which make it more modern and flexible. I consider the most important of these to be:

  1. Single keypress operation – no need to scroll a cursor about, and
  2. Has a screen reader mode for screen reader-compatibility

These features alone make a menu system powered by this extension far more accessible to anyone playing on a mobile device or using a screen reader. In this light, I strongly recommend that folks wanting to add menus to any new Inform 6L38 project build it with my Menus extension rather than the old Menus.

By the way, I should point out I'm not obliviously shaving skin off Emily Short's nose. I discussed the state of the menus extensions with both her and Inform code maestro Dannii Willis, and we've all been looking at ways forward. My Menus extension doesn't have exactly the same API (Application-Programming Interface) as Emily's, so it's for the sake of compatibility with old projects that the old Menus remains in the public library rather than being replaced by mine. Also, Dannii has plans to revamp Emily's extension in such a way that it will have some of the features of mine but will also retain Emily's API for backwards compatibility. If that comes about, that may be the extension which replaces Emily's in the library.

Basically, my extension is ready to go now, addresses some accessibility issues, has some cool and powerful extra features and has already been through three iterations of polishing and bug-removal.

If you're wondering why I changed the API in my extension, I had to to support some more of its advanced features, like the book mode with automatic pagination.

About Basic Help Menu 3

This extension is the equivalent of Emily's old Basic Help Menu, just recoded for compatibility with my own Menus and with the help information updated to reflect the times in which we live. It adds a Basic Help Menu to your project which contains some how-to-play parser IF info.

Friday, 23 October 2015

IFComp 2015 review: Taghairm by Chandler Groover

All the mini-reviews of the Twine game Taghairm have been like this: 'Taghairm – it's the game for people who don't like cats!'

Well, I hadn't played Taghairm yet, I hadn't even met it, but I was starting to develop a manic pissed-off response to this repeated consumer advice. Don't tell me I can't enter into some fiction, presumably about maiming cats, just because I like cats!

After the teenaged part of my brain stuck its middle finger up at all those reviews, I went off to play Taghairm.

An all-spoiler review follows, and incidentally, it contains no user help about what a 'Taghairm' even is. I'm guessing enough other reviewers will have covered that by now.

Monday, 19 October 2015

Work in progress: CYOA Framework for Glulx

I've broken off my IFComp game-reviewing streak to take advantage of time and motivation opportunities to work on a new extension for Inform 7. It's called 'CYOA Framework for Glulx' and its goal is to help folks produce hyperlink/keypress-driven CYOAs in Inform. I want the results to be author and player-friendly, flexible and easy to publish online.

By coming off the back of Inform the extension also supports a lot of cool things that aren't always handled well by other CYOA producing systems: Proper UNDO, transcripting, game-saving (by named files with a save dialogue, or by a single-keypress quicksave slot; the author can decide which) and, if you want it, the full world model. But I'm also putting in a switch so you can turn the world model OFF. This way you can just connect nodes of prose to each other with choices if that's what you need.

With previously available tools, it's been difficult to stop Inform 7 running everything through its 'press RETURN' parser. As an author, that's exactly the thing I don't want it doing when I'm trying to collect and react to discrete keypresses or clicked choices. My way to get around this in the past worked okay, but was super-hacky, and certainly couldn't support the world model, genuine UNDOs, genuine time management or non-manually managed game saves. I should point out I have nothing against super-hackiness per se if it gets the job done for an individual, but if you're making a tool for other people to use, super-hackiness is neither portable nor user-friendly.

The background on why I'm making this extension now:

Before knuckling down to work on my planned big parser game set in the Andromeda universe (click this for my blog post about that) I felt I wanted to get another smaller IF out. I decided it would be a CYOA, because even a small parser IF takes me ages.

As I discussed my super-hack approach to making an Inform 7 CYOA over on intfiction.org, Andrew Plotkin mentioned that he'd made an experimental extension called 'Unified Glulx Input' which might be able to help with this project. I tried it and it really did. Then climbingstars chimed in with some extra UNDO help I needed.

After programming away at my extension for the past week, I've just shared a minor tech demo of the work in progress on intfiction. I have a thread open to get feedback on it (the first post has links to the demo). I'll report back on future progress with the extension in this blog.

* I've only released one thing with my previous super-hacky method, an Apple II CYOA game I ported to Inform 7 and put inside Leadlight Gamma as an easter egg. What's interesting about that one is that it also fakes some BASIC line numbers. Each node is identified by its original BASIC program line number from Applesoft.