Avail

Apr 29, 2014 12:26

I like to tell people that though I'm not a programmer, I speak tech-geek fluently. This is true; I can follow most conversations about programming, and even contribute meaningfully from time to time, simply because I've been around so many programmers for so long. I've tried learning various programming languages over the years - I've dabbled in everything from C to JavaScript. I've played with Perl and Java and Inform and I could go on. And what I learned from those experiences was that yep, I am indeed not a programmer. Which is pretty ok, since I know a lot of programmers, so if I need a thing coded, I have plenty of options.

Todd and a lot of my Madison friends have been working on a really big project for years now - a new programming language called Avail. I've been involved rather peripherally in this, doing stuff like transcribing and editing notes when Todd was giving little classes on how to program in Avail, making sure everyone stayed fed when they were holed up for long design sessions, and, more recently, copyediting the website and contributing glossary pages and such.

But when Todd suggested that I take the silly little game I wrote for LiveJournal and port it to Avail so it could be included with the downloads as an example... well, I have to admit that I balked. I've been down this road before. I'm not a programmer. I just knew it was going to be a terrible hassle, I was going to mess up something, and I would wind up feeling like an idiot because part of the whole point of Avail is to make stuff like that easy. He only gave me half a page of instructions, for crying out loud!

I procrastinated on that thing for months.

And then I finally just sat down to get it done, thinking to myself that it was going to take ages, dreading the inevitable frustration... and there was none. It was dead simple.

The thing is, writing in Avail, I didn't feel like I was programming at all. Mostly because I wasn't. There's precious little logic in that game - it was originally written over a weekend in a dayquil haze, so it was meant to be much more "fun" than "challenging" - and I was doing the fun parts (to me) of writing the game: the actual writing. I mean, my code looked like this:

Squirrel Appeasement
is titled by "Fuzzy Nupkin Practices The High Art"
and is described by
"You hand over one of your mother's rings, passed on to you after her untimely demise.
The squirrel pushes it onto the base of its fluffy tail and preens for a moment
before turning its attention back to you.

\"Yes, this is very nice indeed. It will do.\" It hops inside. \"Bring me chalk, a
feather, and water in a silver basin, and I shall help you escape.\"

You scurry quickly to do the squirrel's bidding. Soon there is a magic circle drawn
on the tower floor. \"Step inside the circle, and I will finish the spell.\""

and has transitions
to Squirrel Zap
described by
"What could possibly go wrong?"
and
to Squirrel Suspicion
described by
"Hey wait, a spell-casting squirrel? This seems a little suspicious.";

The blackslashes are in front of any quotation marks that actually belong in the text. Otherwise, there's a lot of sort of arbitrary line breaks and spacing (which may or may not show up correctly here) just so I could keep track of what went where, but yeah... easy peasy. There are scenes. The scenes have titles, descriptions, and transitions. The transitions have descriptions. It was much, much easier than writing it on LJ, that's for sure. The hard(er) work had been done behind the scenes, when Todd (the actual programmer) wrote the Choosable Path engine that let my game/story be played at all.

And this is why I think Avail is neat - above and beyond the fact that an awful lot of people I think are great have put a lot of time and energy into it. Todd was able to sit down and write this thing, which is for a general purpose of writing story games, in next to no time, and hand the specifications to me. I was able to port my game to Avail super fast with so little frustration, because I didn't have to think like a programmer to do it. I was writing a game, so I got to think like a writer and a game designer. I'm still intending to go back and add more complexity to that thing - and it'll be easy to do so.

Computers are awesome. There are often times I think that I'd like my fancy piece of expensive technology to be able to do a specific thing - but I'm not any good at making that happen. Avail lets programmers create tools for people like me, who have ideas, but don't want to learn how to program to make them happen. Could I have written my silly little game in Inform or some other language specifically designed for writing text adventure games? Absolutely. I just think it's pretty cool that there was so little overhead for learning how to do it in Avail, and Avail isn't specifically designed just for that single purpose application.

Anyway, Avail has now been publicly released - anyone can go and download Avail and play around with it. And "The Ship of Stories" and some other toy programs are included with the download. If this is the kind of thing you're interested in, I strongly encourage you to check it out! You may find yourself tempted to write your own story game, and I think that would be pretty amazing. It is realllllly easy, after all. Heh.

On a similar "hey, I'm still promoting this thing" note, even if you're not into programming and programming languages, I hope you'll take a look at the website and poke around. A lot of work has gone into making it readable and accessible, but there's always room for improvement. I'm still putting in time on the website, so if you see something and don't feel like posting a bug to trac or emailing the webmaster, you can just let me know.

Posted hither and yon, Dreamwidth and Livejournal.
comments over thataway. Speak to me there or here, if you're inclined.
Previous post Next post
Up