Web based IF using any Platform

Posted: April 12, 2010 in Blogroll, interactive fiction, Textfyre
Tags: , , , , , ,

One of the discussions that came out of PAX was with Iain Merrick. He asked me off-hand, “What sort of projects are there on the side that I could help out with?” and we talked a bit and he was very interested in the idea of a hosted IF platform. Something where people could upload a game file to a server and through a browser, the game could be played.

Interactive Fiction is moving in this direction from a number of angles, so from the discussion with Iain, I came up with Zifmia. Zifmia is a project that will be open source and hopefully have the ability to execute Z-Machine, Glulx, and TADS 2/3 games server-side, with the input and output happening within a standard browser.

The infrastructure is intended to be deployable on any system (Windows, Linux, OS X, Solaris) given the appropriate implementation layers.

I’m in the process of porting FyreVM to a client/server implementation. Since we developed FyreVM with Channel IO, this will likely be a relatively easy process.

I’ve also talked to Mike Greger about using his z-machine implementation for Zifmia and he’s tweaking a current version to allow Z5 and Z8 game play, but probably leaving out some corner cases. Any games that do “video graphics” aren’t going to work in a client/server model. Games that do layout might be adapted later, but we want to try to make the larger portion of “standard” output games work first.

Ironically, the TADS 3 Live Journal crew chatted about a similar solution and it sounds like Mike Roberts is working on something. Mike is looking at what Zifmia is trying to do and we may be able to incorporate a TADS 3 engine.

In order for this to move forward, I’m contemplating moving FyreVM to a standard open source license. Not GPL, since I don’t feel comfortable with it, but probably a Creative Commons license that allows free use and derivative works.

The goal is to give IF a shot in the arm as far as author platform choice and wide open web play on all devices.

I know Parchment is a different approach and Zarf is working on a similar implementation of Glulx. Zifmia is just trying to separate execution from I/O completely.

By turning the story execution into a stateless web service process, the user interface has to be connected, but it can be anything (Flash, HTML and AJAX, Silverlight, Java, Windows or Mac program).

  1. Dannii Willis says:

    Creative Commons licences shouldn’t really be used for programs. IF sits between the two, but IF terps are clearly software. I’d recommend the Apache licence, it allows good freedoms to others, while protecting against nasty patent stuff, and also requiring that any changes be explicitly noted.

    Anyways, I look forward to your progress with this! I’m still firmly committed to Parchment and the offline support it offers, but anything that makes web play easier is a good thing.

    What language are you thinking to use for the infrastructure?

  2. I think there’s a place for all of the implementations, be it desktop program, web only, or client/server. They all serve a purpose.

    I’m generally familiar with C# and so anything I do is likely to be in Mono or .NET. The thing I want to focus on is the basic design of each portion of the server. The Controller Web Service can be developed in anything. We can use IIS or Apache or any other web server. We can expose native web services that aren’t hosted in a web server at all. The interace web services, I assume, will be in the same language as the VM it’s containing, but this is just a convenience. If the VM is platform neutral in its execution style, then the containing web service could be in any language too.

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 )

Google+ photo

You are commenting using your Google+ 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 )


Connecting to %s