code name: Waddington (#2)

Maiden Desmodus’ new client

And it’s pretty:

I think they just need to make the text area a little bigger, and probably enable hideable toolbars and status bars. Definitely raises the bar for anyone serious about an enjoyable mud client experience.

Leo and pyf: literate IF development? (interactive fiction in Python #2)

Originally when I started the IF with Python series I thought I would methodically go through each Python IF lib, write a small game, compare and contrast, and so on. I still plan to do that. But as might be expected, I’ve just gone down a rabbit hole, so I’d like to see where it leads.

On a TIGSource thread maybe a month ago I heard of the programming tool Leo, which is a ‘literate editor with outlines’. By literate it means it’s a tool for literate programming (LP).

I’ve always been interested in LP, but now I suspect it was for the wrong reasons — or at least for reasons that aren’t really fundamental to literate programming. I’d checked out PyLit a bit, and my experiment with Pawsy was in a similar vein of trying to find out how to weave IF’s prose with its code in a pleasing way. I was attracted to LP because it seeemd like ‘prose, with code’. Since I like prose, I thought, hey, this might be for me.

But I had some free time today, so I finally opened up the Leo zip I downloaded a few weeks ago. Now I’m not so sure that LP is about ‘prose with code’ — at least with Leo, LP seems to say instead that a program is not just a set of code instructions, and not just a commented explanation of itself, or that thing combined — but a program is a structure that operates on multiple levels, and restricting yourself to one view of that structure, or to one way of investigating, exploring, and manipulating that structure, is an extremely limiting way to work.

I know I’m not being that coherent, as I’ve been working with Leo for less than a day. Maybe some examples will help. Here’s a screen of Leo with a pyf IF project:

Here are some closeups — first, the top left pane, the outline view.

The right hand pane is simply a log window — the bottom pane is the code view:

The @others keyword there is a Leo directive that says, ‘insert here all nodes below this one in the outline’.

So what you can do here is create the world model structure of your game, and in the top level, organize these nodes into your program structure. Already I find that this makes for much more readable code.

In the outline view you’ll see node names (headlines) that begin with @thin. This is one way of telling Leo to write that node to an external file; when Leo writes the file it expands all @others type directives, so basically you end up with a file that assembles all the code in your nodes into a single game file ready to run.

My workflow, then, involves creating the Leo outline, and then running from within SciTE the assembled program. In an ideal world I’d be able to do this directly from within Leo; Leo stores its outline files in a .leo directory, so I guess it’s possible to run the Leo outline from the project directory instead, in order to have easy access to any modules that I’m importing into the game but are not available to the whole system from site-packages (like the pyf module, for example).

So far this may not seem much different from an IDE with class/function browsing, or an editor with multiple levels of code folding. However there are some important differences.

First of all you can put anything you want in a Leo outline — you can mix Python code, xml, html, plain text, etcetera, and choose what goes into the assembled file that is the actual game source. In this way a single outline can hold many disparate components you’re using for your game, but still produce the working game code as you need it.

Second, you can do more with the outline structure than you might expect. You can clone nodes in Leo, such that a single chunk of code or text can exist at multiple points in the outline hierarchy. When you change the node at one of these points, all of its clone nodes change as well.

In other words you have multiple views of the same piece of data. When I first read about that I immediately thought this would be a great way to write IF conversation. Of course I have no idea if that will work in practice, but imagine writing an IF conversation as an outline, where you can easily reuse quips as necessary. Compare that to a flat view of conversation, as you’d find in any IF source. The question is whether the additional overhead of the outline is a net plus over a conventional layout, but intuitively it seems like this could really work.

Anyway, the real test will be to write a non-trivial game in pyf using Leo, so that’s my next step. I have to say I’ve never been this excited about a programming tool though. Most of the IDEs I’ve checked out are not that inspiring; this feels completely different.

code name: Waddington

Writing interactive fiction in Python (#1)

Newsgroups: comp.lang.python
From: Neil Cerutti
Date: Mon, 13 Aug 2007 13:37:26 GMT
Local: Mon, Aug 13 2007 5:37 am
Subject: Re: Adventure-Engines in Python

[....]

As far as I know, no full game was ever written in PAWS. Once you try it, you’ll possibly see why no interactive fiction system distributed as a library for a general-purpose language has ever caught on. Every system that’s enjoyed even moderate success has been a language+library implementation.


Neil Cerutti

This is my jumping off point for an exploration of writing IF with Python.

Every so often on RAIF someone will make a comment about why people “don’t just use the power of a general programming language” instead of bothering with boutique languages like Inform and Tads. I think it’s clear that IF languages solve a problem probably unique to writing iF — how to weave prose and code — not to mention that their years of development have resulted in very strong libraries that make writing IF much easier.

Nevertheless, as someone who enjoys IF, and programming with Python, I want to look at this more closely. More after the cut.

Read more »

“You have probably never heard of Professor Moriarty?” said he.

“You have probably never heard of Professor Moriarty?” said he.

“Never.”

“Aye, there’s the genius and the wonder of the thing!” he cried. “The man pervades London, and no one has heard of him. That’s what puts him on a pinnacle in the records of crime.”

Of course, it’s not true that no one has heard of Brian Moriarty — this sort of slipped under the radar as far as I can tell, but Moriarty recently appeared at a M*U*S*H event and gave a little /rant on the state of text games.

Andrew Plotkin, Jota (I’m assuming Admiral Jota of Lost Pig), and Emily Short (again an assumption but I think the Emily in the transcript is the same) were there too — it’s an interesting read all around.

The log is typical of mush transcripts so I’ve liberally edited the thing into a more readable presentation — however keep in mind you lose out by not taking in the transcript in its unadulterated form.

Also note that this is an IF-heavy conversation taking place on a mush, with about equal representation from the IF and mush sides — so sometimes people are talking past each other with respect to what text games mean to them.

By the way, there’s a surprise appearance halfway through the log that I’m not including in my transcript — so check out the link above.

My edited transcript after the cut:

Read more »

Alan DeNiro @ Grinding to Valhalla

Lest this get lost in the blogosphere, a link:

Reading the text: Alan DeNiro interview.

Didn’t know that DeNiro played muds (and maybe story games?). Cool stuff. For the unfamiliar, check out DeNiro’s Deadline Enchanter.

ergodic research group

Poking around to see what digital literature, e-lit, or interactive fiction journals and zines might be floating around I stumbled across an online installation of work, <terminal><in search of a new(er) digital literature>. On that page at the bottom there also is an extensive bibliography of sorts; many of those links are kind of kaput but there’s still some interesting stuff to be found, and the projects of the installation itself are all current.

Nearly all of that stuff is multimedia work. I haven’t really found a ‘zine of ergodic text’ or something like that, though I guess something probably is out there. I feel like something of that nature could fill a niche. Pacian has his new blog (Text) Games for (Space) Crows which approaches that idea, but what I’m imagining is a combination of that and the presentation of new works.

pawsy

One thing I’ve been going back and forth about is the virtue of trying to write IF with Python. On one hand Python is a great language for writing games; on the other hand I much prefer the Inform 7 syntax for a simple reason — in IF you write a lot of prose, and anything that makes that process both simpler and nicer to look at is a huge win. However that very same syntax becomes something of a stumbling block for me (well, to be honest — a tortuous maze) when you start doing anything complex. In this respect I like Python’s syntax much more.

Python already has a well developed IF system in PAWS. However as you can see in the Cloak of Darkness implementation the source itself reads much more like a TADS 3 file than Inform 7. I’m not saying that doesn’t make sense, only it’s not how I’d like to write ideally.

This got me to wonder — how would I like to write IF ideally? So here is a hacked up version of the Cloak of Darkness source above. Let’s see how the WP sourcecode markup works with this — after the cut:

Read more »

The IGF cometh

The IGF main competition entries are up, bigger by a third than last year (which was bigger by a third than the year before apparently). Will it be bigger and badder though? Such remains to be seen, but there definitely were some that caught my eye:

7 Nights: “”7 Nights” shows that a quality AAA-style 3D first person shooter can be deployed on the web and could be created in about 7 MB.

This is also the first videogame in the world that was created and tested while on public transportation (Seattle Sound Transit Routes 545 & 577)”. Represent!

78641: “Saluton!! GZ Storm is now proudly to present – 78641 – the classic Esperanto-language adventure game now playing first time in Language English!!!”

A Slow Year: “A Slow Year is a collection of four games, one for each season, about the expereince of observing things. Played on the Atari Video Computer System (aka Atari 2600), the game invites sedate observation and methodical action.

A Slow Year is a kind of videogame chapbook, a set of “game poems” that attempt to embrace maximum expressive constraint and representational condensation. The game will be available for PC and Mac in a custom Atari emulator, and for Atari as a limited edition cartridge and poetry set.”

Achron: “Achron is the first “meta-time strategy” game. It is a real-time strategy game where all players can simultaneously travel through time, change the past, preview the future, and send their forces through time to when they are needed.”

ARGH: Augmented Reality Ghost Hunter: “ARGH is an augmented reality game that lets you use your Ghost Goggles to discover ghosts in your actual environment.

Players collect different ghosts located in physical locations all over the world. Explore the REAL WORLD and experiment with the time of day and time of year to discover the phantoms that share our space.”

Good lord I’m not even out of the a’s.

edit: Too bad, no parser IF this year. Looks like a few games you could call IF though.

Next Page »