Archive for the ‘Uncategorized’ Category

So yes. Textfyre could be seen as trying to push a particular solution onto a non-existent or poorly defined problem. I can admit that I may have missed an important part of this process, especially if I plan to approach schools for money. The part that I believe has been missed is the education side and the business development side.

So I’m going back to square one and starting with:

What is the problem I am trying to solve? Well I do know this and it’s more or less that overall, K-12 schools are performing poorly, we have poor graduation rates, poor literacy rates, and highly complex classroom learning variances.

The primary problem that I believe Textfyre and technology in general can solve is the lesson-plan variance problem. There is research, especially in urban school districts, that show any given classroom requires varied lesson plans for the makeup of the students. There is also research that the very best teachers can handle at most three different lesson plans. Some classrooms require five or more. Clearly there is no way to make teachers more effective if the best they can do is lower than the average requirement. Technology can solve this problem by offering blended learning or ILP’s (Individual Learning Plans). In fact, there is a very strong effort by school districts around the country to procure technical solutions that promote ILP’s.

Within the ILP structure there is a need for immediate feedback to the student, to the teacher, and to the parents. There’s a need for tracking progress towards college access and a need to measure and challenge students to meet and exceed their grade-level requirements. There’s also a need to develop cognitive skills, problem-solving, collaboration, and more.

Many of these requirements, along with the new Common Core Standards, are the root dynamics in pushing a service through the IF medium.

But we need to go back to the beginning and cite all of the existing research for the basis of the IF medium in classrooms and founding a new ILP service.

We also need to build relationships with a number of schools, teachers, administrators, and learning specialists. We have the technology. We need the educators to support and hone the technology properly.

So that’s where I’m going. No more coding or writing. No more meetings. I’m setting all of that aside so I can go back and build personal relationships with people.

If you’re interested in our discussion, let me know. I’m interested in people that can speak strongly about interactivity, gaming, education, lesson plans, assessment, blended learning, and individual learning plans. We have a Yammer account where we’re having these discussions.

Textfyre now has the beginning works of an MVP (minimal viable product) and our primary goal this year is to complete the MVP and look for funding.

One of the places we’re looking to for cash our federal and private education grants. We just missed a couple of federal grants in February. There just wasn’t enough time to prepare the type of proposal that’s expected. An RFP from the Gates Foundation was recently publicized and we’re making a concerted effort to complete a proposal for this grant.

In the area of product development, we’ve brought in a new team member that has a learning science and assessment science background. We’re working to redesign existing processes to ones based on IF constructs. This process has just begun.

This has led me to think about our business model. We’ve been discussing the possibility of offering all of our content for free and charging for the assessment and reporting features. These are the features that teachers and administrators would use to evaluate their students progress in areas that can be measured against the new Common Core State Standards. What do we gain by offering our stories for free? What do we lose? These are the questions we’re asking ourselves.

In other news, I am going to add maps and hints to the existing online version of The Shadow in the Cathedral and make it permanently apart of the Textfyre learning structure. It will remain free. I also plan to promote it towards classroom supplemental reading use.

One of our other team members is actively working relationships with teachers to test our service. This is an ongoing struggle since teachers have very little time. If you know a teacher that would be interested in helping us work through piloting, please send them my way. We’re focused on 4th through 8th grade.

So the software I’m developing for the classroom is a hybrid of FyreVM and Zifmia technologies. There is a great deal of usability testing we need to do with students and teachers, but there is also a level of beating that I won’t be able to achieve through that process.

So I branched the code, ripped out all of the classroom features, and implemented a revised version of The Shadow in the Cathedral. If I can figure it out, I plan to do Secret Letter too, but that code is a mess.

You can play, for free, the online version of The Shadow in the Cathedral right now.

It’s a bit sluggish at times, although not terribly bad. It’s certainly usable. I’m considering a few tweaks to speed things up, but the performance is in large part a factor of the game’s size. It was not designed for a client-server platform…it was designed for a PC interpreter.

I have to thank Jimmy Maher for the Kindle port for a great deal of the bottlenecks being removed. Jimmy has a knack for finding bad Inform 7 code and rewriting it so that things perform well. This version of Shadow is a descendant of those changes.

The caveats I offer in playing it online includes the following:

  1. this does not change the price or availability of the Kindle, Android, or Hobbyist versions.
  2. if you have suggestions, please use the Feedback button on the lower right. This leads to a User Voice feedback dialogue where you can offer your feedback.
  3. at any time, I may make changes to the game file, which will reset all sessions to the beginning of the game. One feature I’m contemplating is the ability to have the system upload the new game, then fire off a script to rerun all historical turns in the new engine. I can think of a number of ways to enable this, but I’m undecided.
  4. if anyone has any art or music they’d like to share in the online version, feel free. I view this version as a sort of artistic endeavor combined with usability research. This goes for CSS changes as well. I can easily provide alternate CSS implementations.
  5. the underlying client-side code is copyrighted. look, but don’t copy.

I can’t say that this will remain online forever, but that’s my intention.


In the last two months we’ve narrowed our focus and have a short list of priorities. The funding pipeline is coming together well. These things take time and we still have several hoops to jump through, but there’s very little uncertainty on what we have in front of us.

First of all, we had our second conference call with The Bill and Melinda Gates Foundation. This went well and we’re looking forward to another conversation in January to work on a specific grant proposal.

We’ve also talked to Knewton, a company that specializes in adaptive recommendation systems that specifically target how students learn. We both felt our two companies had a high potential for integrating services and research data. we’ll be following up with them soon.

We’ve also been talking to New Schools Venture Fund and once we get through the pilot phase, they may become a valuable partner.

Our next steps include usability testing in a few Chicago area schools and then the pilot in spring.

We do have one critical need as far as personnel is concerned. We’re looking for a seasoned academic research partner that studies how students learn and can guide is on the bigger picture. This person would probably work with our story development team and Knewton to determine the taxonomy of any given subject matter. That taxonomy would lead directly to the types of stories and story content we develop.

This has become a very interesting pivot to date. We’re looking forward to the results of our testing and pilot to see where Textfyre fits in the classroom.

One last thing. If you want to do a little usability testing for us, just send is an email and we’ll connect you with the current online application (as bare as it is).

So we’re making a lot of headway on our product, both the student game playing side as well as the teacher dashboard. Take a look…



We’re about to start working in schools with teachers and students to further refine the system and we’re talking to Gates Foundation and New Schools Venture Fund to see how we align with their programs.

I’d like to extend an invitation to anyone that wants to join the evaluation and refinement process. I can give you access to the system and you can offer your thoughts on the user interface and system overall.

I know no one gets excited about vaporware, but the new Textfyre website will address some of the issues Jim talks about here.

Based on my work on Zifmia, which is a client-server engine based on FyreVM, which is a .NET implementation of the Glulx specification, I have been able to build a new Textfyre website. This new website is intended to be a portal for client-server Interactive Fiction games.

Here is the scenario I envision for the portal:

An author uploads a gblorb file that contains their game and images. In setting up their game, they select a template, which is used to display the game in any supported browser, including mobile and tablet browsers. The template is made up of JavaScript, HTML, and CSS. The author may offer their own template and a way to test templates locally will be enabled. The ability to use the portal in an IFRAME will also be available, allowing the author to show the game on their own website or blog. Facebook integration is an important part of the future of Textfyre’s strategy as well.

Games are played in a standard fashion, but mostly based on whatever template is devised. The template I’m working on is a hybrid of things we’ve seen over time and a slightly out of date version can be seen at

One of the major differences with the portal is that every turn of every game is saved on the Textfyre servers, in the cloud. If you play the game on any connected device, you will never lose your places. Save, Restore, and Undo become irrelevant. The user interface will have a mechanism to jump to any turn the user has played. If they type a new command at a previous turn, the history branches. These branches are displayed to the user and can be panned and zoomed and reviewed.

Obviously, this is a connected service. Future implementations may include client-side storage, but it’s not on the radar today.

I have Cloak of Darkness working as an example. I’m still (slowly) working on the standard template and Shadow will be implemented as a pay-to-play game when the site is released publicly. Secret Letter will follow and we’re working on getting Empath’s Gift completed, at which time it will also become a part of the portal.

I would love for an author to step up and offer to work with me on the standard template or a new template for their own game. If anyone is interested, let me know. This is mostly going to be undoing any Glk specific code in your game file and replacing it with FyreVM stuff and then working on the client-side code.

Shadow Meets Zifmia

Posted: January 5, 2011 in Uncategorized

Over the holidays I got back to working on Zifmia and made significant progress. The backend is functional, although there are peripheral tasks to implement, such as security.

The service is working perfectly and I’ve begun implementing Shadow in the Cathedral with Zifmia as its own stand-alone website.

A snapshot of the current site is shown here. There are many features to add via CSS, but the basic work is complete. The game is loaded each turn on the server where state is also saved. Currently, the game is loading a single instance, but the method for having multiple instances is there and work will begin on that shortly. For each registered user, one or more sessions can be created. The user will be able to save/restore a session or continue the session from its latest point. I’ll be adding tabs for the introduction, hints, and other things. The current session will automatically load and I’m going to implement paging capabilities to see previous turn text. I should be able to hook in keyboard shortcuts to do some of the work too.

You can play with the current page by starting out with a “look” and play from there.

Now, some of the guts.

One of the key files is the jQuery code to call the service.

function GetResponse(obj) {

        type: "POST",
        url: serverURL,
        data: data,
        processData: true,
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        success: handleOutput,
        error: function (xhr, textStatus, errorThrown) {
            $("#error").text("Error" + xhr.status + "...");

function setChannel(channelName, channelData, append) {
    if (append == true) {
        if (channelData) {
            filterText = Filter(channelData);
            $("#" + channelName).append(filterText);
    } else {
        if (channelData) {
            filterText = Filter(channelData);
            $("#" + channelName).html(filterText);
        } else {
            $("#" + channelName).text("");

// The author can modify this file to adjust what happens to channel data on return from the server.
function handleOutput(zifmiaData) {
    if (zifmiaData.Prologue) {
        setChannel("mainChannel", zifmiaData.Prologue, false);
        setChannel("mainChannel", "<br/><br/>", true);
        setChannel("mainChannel", zifmiaData.Main, true);
    } else {
        setChannel("mainChannel", zifmiaData.Main, false);
    setChannel("chapterChannel", zifmiaData.Chapter, false);
    var cmd = document.getElementById("command");

function KeyDownHandler(buttonId) {
    var btn = document.getElementById(buttonId);
    if (event.keyCode == 13) {
        event.returnValue = false;
        event.cancel = true;;

There are still more channels to implement, but the idea is straight-forward. Once the service returns the channel data, it’s written, Ajax-style, to the proper html element. I have a filtering mechanism, but currently it’s only changing newlines to <br/>’s. I will probably be adding more markup and therefore, more filtering.

This is just a sampling of the work surrounding Zifmia. There is much more work to do before it’s ready for primetime. And when I do get to a completed state, it might be fun to have a sort of IF Zen Garden, to see what sort of layouts people can make through CSS.