Fiction is a Three-Edged Sword

Fiction, interactive fiction and narrative

Make It Good, better

5 Comments

I’ve started work on a renovation of Make It Good. Not a rewrite (before anyone reminds me that it took nine years first time around), and I’m not moving it over to Inform 7 (that would be a rewrite).

Instead, I’m doing what I should have done five years ago when it was only half-made, and I’m porting it over to Glulx.

When I started Make It Good, I’m not sure Glulx was even around, and if it was, I certainly didn’t understand it. In those days, the only way to find out about it was to read Andrew’s original spec documents – which to me, then, were very much Magic from Before the Dawn of Time.

I remember trying to move The Mulldoon Legacy over to Glulx because I’d run out of space before I finished it, and got as far as crashing the compiler by trying to use abbreviations before I gave up.

A few years later I successfully made a Glulx version of my old Novel Mode extension for Inform 6 (as used in My Angel), and I managed that mostly using the two great sources of Glulx information: Adam Cadre’s Gull and Marnie Parker’s Glulx for Dunces. (I’m linking to these again because they’re still the most useful sources for Glulx coding information, and by putting them up here I’ll be able to find them more quickly when, in a few weeks time, I really need them to work out how to make text bold.)

After that, I gave up. Glulx took longer to write, was almost impossible to debug (when it crashed, it would say “Fatal Error” and nothing else), and it was painfully slo…w.

Robner House demo screenshot

Robner House demo screenshot

But times have changed. Glulx is looking increasingly like the format of choice of IF moving forwards. It’s fast, suddenly. It’s playable online. And best of all, Erik Temple has done a ton of work making incredible, slick visual effects for it in Inform 7. When I first saw the Robner House demo I was immediately struck how much value this would add for a game like Make It Good in particular.

My usual reaction to a new feature-set like this would be to try and leverage it by making something new. But it occurs to me that, as a community, we have a tonne of great content (and a tonne more that could be great with just a little more development). What we haven’t really done is deliver great experiences. And maybe, finally, we’re getting to a point where we can start doing this.

I’ve written a little before about the possibilities of Vorple, Juhana Leinonen’s system for using javascript to make the game-output dynamic, and I’ve also written a lot about Undum, which does a host of things to make its output pretty to look at. People outside the community will, I think, begin to take notice, as e-books draw them into the computerised-text space. But people also expect a certain level of finesse.

So, maybe it’s time to start experimenting with look and feel, and the best way to do that is using content that you’re confident with. Hence, Make It Good, the Glulx version.

First goal: get it to compile. It was written before the biplatform library, and I’ve also hacked up a lot of backend to suit my needs. So far, I’ve merged the two biggest I6 library files. I need to write a new status line routine and fix the parsing routines in the conversation system, but the rest of the changes should be minor.

Once that’s done, I can start trying things. Here’s a quick brain-dump of ideas:

  • An interactive map, like the one shown above
  • The in-game crossword, rendered as a photograph, onto which the player’s answers are written using a font-set of sprite files
  • A cast of characters screen, with pictures of each person that the player can click on for a thumbnail description
  • An expandable / collapsible inventory window, preferably with icons for each object rather than a simple list
  • Interactive Parsing
  • A expandable / collapsible notebook window, tracking major things you’ve found or discovered

All this would be a lot easier in I7, of course, where I could use Glimmr and Flexible Windows directly. But anything that’s possible in one has to be possible in the other, right?

Advertisements

Author: joningold

Jon Ingold is a writer and games designer from Cambridge, UK. He is co-founder of inkle, a company specialising in interactive narrative for mobile devices. He has written prose, plays, short films as well as interactive fiction, both in hypertext and parser-based systems. His short stories have appeared in Interzone magazine and his IF works have won competitions and awards.

5 thoughts on “Make It Good, better

  1. Sounds great. You might want to check out GWindows for an I6 analogue to Flexible Windows and Glimmr. In addition to window management, GWindows offers a module called GREX that seems to offer a number of the Glimmr features, including sprite-like display of images and “fonts” that render in graphics windows. I think GREX is tagged as experimental, and I have no idea what state it’s in, but even if it’s not quite ready to roll, it ought to be better than starting from scratch.

    Good luck!

    • Ah! I remember GWindows, now, and you’re right, that might save me a tonne of work. Thanks! (I was just remembering how the main point of FW was all that business with reloading and undoing and windows collapsing from existence… I can do without going through all that again!)

      Cheers!

  2. Sounds awesome! Loved the Robner demo also.
    –Zack

  3. Excited about this – “Make it Good” is to me one of the finest IF games, ever.

    • Thanks! Though right now, Make It Good is one of the least-functional Glulx games ever, in that it crashes before it manages to even display the window…

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s