Further systems in the CYOA spectrum

A couple of days ago, I received from Ian Millington an email that may interest people who have been playing around with alternatives to parsing.

I really enjoyed the long-form post on Parsing and alternative types of IF. It reminded me that I had an almost complete hybrid CYOA / IF system on my hard-drive. So I dusted it out and made it open source and put it online.

A trivial (two state) example is at: http://idm.me.uk/undum/tutorial.html (no loading progress bar yet, so wait until the images load).

And the code is available from: http://github.com/idmillington/undum

The code requires a modern (non-IE) browser. The key point is that it is implemented in Javascript, so there’s no need to fake the ability to do proper processing. You can auto-generate text from state, create random events, timing, etc. The kinds of things you can do with any full IF language.

Although the dedicated documentation is pretty scant, the source code is very thoroughly commented (e.g.

I haven’t played with it very much yet, but I do admire the pretty presentation style in the tutorial. It appears to share some features of the Choice Of… games, such as tracking of stats and branching/rejoining story paths. What it does differently: all text from previous attempts is retained, rather than clearing the screen, so what you get is a continuous narrative. The typography is attractive, and images can be included as embellishments.

Those interested in this space should check it out.

Edited to add: the code and examples are now available from undum.com instead.

12 thoughts on “Further systems in the CYOA spectrum”

  1. Wow, this is a much nicer presentation than the Choice of Games one, and seems to be equally as featured.

    It even looks not too terrible on my Android phone, though there is some strange behavior when you zoom and the side boxes do not scroll with the screen reliably. Landscape is a must it seems as the narrow portrait orientation shrinks the text such that it’s barely legible.

    Given the way it retains the text in an novel-like format, there should be an option to export your progress to pdf. Though I suppose you could just copy/paste or save the page.

    Very neat.

  2. Good feature ideas Tempest. Yes, mobile support is one of the things I’d like to do. I need to rethink the non-scrolling blocks to do that, have them pop-out for example.

    The PDF export would also be neat, and not hard to do, but it would require a server. So far one of my goals has been to have this work 100% client-side, so anyone with a $5 hosting account can set up their own game.

    Unlike ChoiceScript, I’m not planning on making money out of this, so development speed might be slow. But on the other hand anyone can hack around with the code and add features.

    1. Development is slower than I’d like on ChoiceScript, too. :-)

      I must say, the visual design is absolutely gorgeous. Did you do all of the design/artwork yourself?

  3. This is neat! I’ve been thinking lately about what it would take to implement a reasonably complete engine/system for Myst-style adventure games in pure (modern, shiny, clean) JS, and this is very encouraging.

  4. Riv, I’m interested in HTML5 interfaces for games, from a professional POV. If you have or have access to Myst style visuals, I’d be happy to work with you on the code. It shouldn’t be difficult. The visuals, however, are the limiting factor with that kind of content.

    1. Well, I’m mostly a programmer and a bit of an artist at this point–this project idea would basically be a way for me to help out people in Myst fandom who are mostly artists with a bit of technical know-how/willingness to learn. Thinking back to when I was in their shoes, since I was into making 3D stuff before I switched over to programming. Someday I’d like to get back into making good-looking 3D worlds again, but I’m not really there yet :)

      You’re definitely right that the visuals are the bottleneck for actually making games, but they’re not a bottleneck for me right now when I’m still at a “what is a reasonable way to organize things, what libraries make sense to incorporate, how will another person author a new project, what do I hide behind how much abstraction, how much can I make automate-able?” sort of stage. I do have some *extremely* ugly renders of a “green plane with some cubes and cylinders on it” world that I made in Blender that I’m using for now to test stuff: http://purpleshiny.com/rivenwanderer/testproject/1/3.html (shows how far I still have to go–I’ve really only just begun poking around at this idea). If you want to develop a free-for-others-to-play-with engine and graphics of that level of sophistication would actually be useful you, I’d be happy to help :)

  5. Pretty slick. Probably could use some spacing or visual indicator to separate the newest text from the scrollback though.

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 )

Facebook photo

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

Connecting to %s

%d bloggers like this: