Category Archives: interactive fiction

The New Textfyre

Once upon a time I started a business called Westfield Chandler Publishing. This name stunk, so I took on a name related to the old Textfire hoax which generated some pretty great small IF games. I mostly chose Textfyre with a Y because the Textfire.Com domain is owned by a squatter.

The original goal was to develop traditional Infocom-like fictional games and try to sell them in bookstores and to school libraries or to get them in classrooms as supplemental reading. I really had very little experience with such an endeavor and a large part of the process of developing Textfyre was to learn how to build a business. This was all in or before 2007.

In the first two years we produced two games with a third remaining incomplete. Secret Letter is probably targeted at 3rd or 4th grade readers (based on current lexical requirements in schools) and has an intentional Disney-like princess theme. Shadow in the Cathedral is much more accessible with its Steampunk theme. I’m actually very proud of both of these games, have played them many times myself, and enjoy both for different reasons. Ian and Jon were very clever about a lot of things in Shadow while Mike was, at least from my perspective, brilliant at capturing the tone and intentions that I asked of him.

In the years since those first two publications, the economy and “other things” put a lot of the business side push of Textfyre on hold. There simply was no time or money for me to push anything and it had become clear that my first few business plans were never going to fly. Instead of closing the business, which I had thought to do many times, I simply set it aside and used it as a conduit for my daytime consulting practice.

In the last twelve months the economy has improved (although not for everyone, I’m very aware) and Chicago has become a burgeoning market for digital start-ups. GroupOn and GrubHub have gotten a lot of people very excited and the new digs at 1871 have made it possible for entrepreneurs to come together on a daily basis for a small amount of money (I pay $125/month for nights and weekend space).

This has opened a lot of doors for Textfyre. It’s given me a place to bring people together to talk about building a company. It offers “office hours” from mentors and investors. It has the StarterLeague.Com (formerly CodeAcademy.Org) which teaches computer classes to people who travel to Chicago from all over the world. It has Excelerate Labs, where every year ten start-ups are chosen to work at 1871 on their business, with mentoring and support. A lot of start-up business is done through Built In Chicago, a website and group that hosts networking events, awards ceremonies, and more. Another group, Technori, hosts pitch nights every month at the Chase Auditorium in downtown Chicago.

In the last six months I took a long look at what I’d done with Textfyre and what was still possible. I knew traditional IF was going to be a tough sell without a lot of money or a built-in-audience. I have neither so I had to look at other angles. The education/school angle had been dismissed in the past because there were very complex barriers to entry. At all angles, it was just impossible for start-ups to disrupt anything in the education world. Something changed all of that…

The iPad and the continued adoption of computers in schools has altered almost all of the perceptions of education processes and at all levels people want things to change and are actively seeking new methods and tools. There’s a new Common Core Standard that needs to be adopted over the next few years. Students are coming into primary schools (K-5) with more expertise with computers than their teachers. The system was not and is not prepared for these students.

This leaves open a host of opportunities that many small and large companies are tackling from many different angles. But the one thing that has changed the most is that start-ups are being heard and being funded. Education funding has doubled in the last year and is expected to be the number one source of funding for years to come.

With this new understanding, I started to put a management team together which is complete and we are working and meeting every week. It’s a very strong and passionate team that includes sales, marketing, curriculum, art, and technology expertise. We’ve had meetings with Microsoft Learning and The Gates Foundation and from those meetings we’ve developed a clear path to success. We have a new mission, a new plan, and a part of the plan is the use of the underlying engine, world model, and natural language parser used in Interactive Fiction game development. We’re going to do non-fiction supplemental curriculum and it will have a lot of bells and whistles that you’d never see or need in a traditional IF game, but it’s going to be great.

We recently updated the entire Textfyre website so that it reflects most of the changes we see in our mission.

Of course we still love traditional IF and we plan to work that into our future, so if you have a game you may be hearing from me at some point, asking to put it into our system as supplemental material.

Textfyre is reborn as an education technology company and this is just the beginning.

The Shadow in the Cathedral now on Android

Hey everyone, in addition to PC and Mac and game file downloads from www.textfyre.com, The Shadow in the Cathedral is now available on Android as well as Kindle.

http://www.amazon.com/dp/B008TCVYHE

 

New Directions

For several reasons, the velocity of Textfyre development (business, technology, and content) has been measured in spoonfuls. To say it has been a slow process is an understatement. Some of this had to do with the economy, some to family stuff (my youngest is nearly 8 years old now), and some to the business climate. Regardless of those impediments, Textfyre is moving forward at a much faster pace.

To start, I recently joined a digital start-up office in Chicago called 1871. So far this has only provided a workplace in downtown Chicago, but it has amenities that will help us grow.

I put out feelers for new team members, all on the business side. I always knew that Textfyre could not truly be successful without partners and now I’m actively seeking people to fill roles like finance, marketing, product development manager, website geek, and so on.

I still have all of my interactive fiction contacts, although some are less available than others. I’m pretty sure though that if Textfyre finds cash, we’ll be able to hire enough IF talent to do the work I envision.

I have not signed anyone to agreements yet, but I have found people who may fill finance, marketing, art direction, and investor relation roles. Once these positions are solidified, I will introduce the people to you through this blog and on the upcoming face lift to the Textfyre.Com website, which is not the website I had promised in recent months. That website will be turned into a pay-for service, which is a topic for another post. The new website will be corporate, informational, and professionally implemented (um, not by me).

I will continue to push our two flagship fictional IF games through the Kindle, iPad, Android, and soon Windows 8, but these types of products are unlikely to be our focus for an unknown period of time. We’ll get back to traditional IF at some point, but we’re going to work on something else for the near-term.

I have also been very busy networking and this has been paying off in the highest level of contacts. If we’re to succeed, we’re going to need every partner we can muster, and getting to know the bigger players will help us define and execute our goals all the more efficiently.

If you’re interested in pitching, we’re going to be meeting at 1871 regularly. Drop me a note and tell me how you think you can make Textfyre successful.

The Shadow in the Cathedral Published to Kindle

After many months of work…

The Shadow in the Cathedral is now available on the Kindle Keyboard and Kindle Touch. The price is $9.99 (the Amazon store does not allow for $9.95, so it’s $.04 more than the PC/Glulx purchase).

I need to thank Jimmy Maher for his programming capability and relentless pursuit of Kindle KDK development.

Shadow will soon be available on Nook, Android, iPad, and Web.

The Business Side of Textfyre

In the last couple of weeks I’ve been doing management tasks for Textfyre. This includes pulling in resumes for curriculum content developers, doing phone screens, and face-to-face interviews. This is going well.

I finalized access to the new Chicago digital start-up lab, 1871 where I will be working with technical and business partners on Textfyre.

I went to the first annual Chicago Moxie Awards last night, which was a huge success. I met the guys from Code Academy, the ladies from 30 Second Mom, a couple of guys from YCharts, and many others. It was an eye-opening experience with a lot of very famous tech start-up people. Matt Moog, Matt Maloney, Paul Lee, Eric Lunt, and many more.

I do have a big announcement on the product side coming in the next week or so….we’re still going to publish fiction-based content to mobile platforms….we’re just refocusing on public education tools for the foreseeable future.

Textfyre Adaptive Learning Entertainment System

In the start-up world, the pivot is talked about like a bad dinner. You made reservations, you ordered what looked to be an appetizing meal, but after eating it you almost instantly had regrets. After a few days, you’re asking yourself why on earth you went to that restaurant.

So you’re an entrepreneur and you think you’re pretty smart. You have a great idea and you think you have enough charisma, talent, or hustle in your bones to make it become a reality. If you went to school, you know everyone will want a business plan. They’ll want a pitch. They’ll even want an obvious list of customers willing to shell out for your amazing product or service. Or they’ll want to feel comfortable that you can get people to spend money regardless of the quality of your service or product. Are you the next Steve Jobs, Mark Zuckerberg, or Huck Finn?

The world will only know if you pivot. Why? Because it’s nearly a guarantee that your original idea will stink and no matter how charming you are, talented you are, or how much hustle you got, that first pitch ain’t selling to anyone. It’s a dead dog. A bad movie script. It’s got no legs.

So you’re one of the smart ones and you pivot. What no one tells you about pivoting is that you may or may not know when you should pivot. You may or may not know what to pivot to. If you’re lucky and you pivot to the exact right thing at the exact right time, things might just work out for your nascent start-up. Odds are against you because the odds are…you won’t pivot correctly or in a timely manner.

Textfyre has been around for a lot longer than most businesses that call themselves start-ups. In fact, we’re well past the age where seed money is likely to come in the door. Angel investors look at anything past a year old and smell a rat. They run for the hills, ignoring any potential there may be within the targeted business model. I have always been of the mind that building anything related to Interactive Fiction would be a marathon, not a sprint. I’ve never had any illusions about the potential of this market. I’ve always been highly confident that there is a market. But also very sure it would be extremely difficult to tap. I was also sure that building the right technical profile would be the one thing that allowed us to break the mold of being an old start-up and still become successful.

Textfyre hasn’t really even launched. Our pivots have all been internal. It’s been five years of research and development. That’s changing as of today. This year we’re going to put real services in classrooms and develop relationships with real teachers and real students in real schools. We’re going to partner with content developers outside of the “IF” world and develop material that coincides with curriculum being taught at the middle-school level. We still believe that fictional content is important to young readers, but the key to this new effort is putting teacher-identifiable content in classrooms. We’re going to put their curriculum in our format using our tools.

As mentioned in previous posts, I have been working on a cloud-based engine for Interactive Fiction. This is completed and working. We’re now working on content that weaves fiction and non-fiction together so that students can learn about social studies and history in a new format. They’re still going to be playing Interactive Fiction, but the goals won’t be to find treasure. The goals will be to learn.

Our first large-scale pilot program will begin in fall at the Chicago Public Schools. We’re going to bring our client-server engine into the classroom where the teacher can monitor the progress of all students in real-time. They’ll be able to watch every command entered, help when needed, and determine each student’s capabilities from their efforts. It’s our belief, which studies have proven, that narrative or story-based education methods provide a much stronger connection to the student. They retain more information, understand the information more intuitively, and are able to use the information in real life. We plan to enlighten the education world to the enormous potential of Interactive Fiction.

This is a big push by Textfyre and we’re very excited about the future of adaptive learning. We’re hoping to bring our T.A.L.E.S. to every student around the globe in every language, in every classroom, and in every home.

Implementing Zifmia in Textfyre’s New Website

I’ve written several times about the development of a client-server Interactive Fiction platform. Parts of this system are called FyreVM, Zifmia, and other parts are just plain old web application development. FyreVM was created years ago and is a very stable implementation of the Glulx virtual machine. Zifmia is a state-machine wrapper that allows FyreVM games to run on a web server with all of the commands coming through AJAX calls and output returned as JSON. I wanted to provide a more detailed view of the new Textfyre system’s construction.

Technology
I spent a good portion of my spare time last summer working through the technical issues of a client-server implementation of FyreVM/Glulx. I’d had a very rough prototype, but last summer I sanded down the rough edges and came away with something solid. There were still major issues to resolve, including the design and persistence, but eventually I was able to send commands into the server-side engine and receive story data and display it on a web page. The next step was to turn it all into something “enterprise” ready. Something that initially could handle hundreds of users, but also be able to scale.

The first thing I worked on is making a reasonably clean “library” of JavaScript and jQuery code that was layered and maintainable. I then took all of that code and implemented an ASP.NET MVC 3 website. This allowed me to implement Clean URL’s, but also has a built-in capability for creating RESTful web services. It also allows me to continue using C#, since that’s how FyreVM and Zifmia were coded.

An additional benefit to using RESTful web services for all game play is that other types of clients can be developed later (iPad, Android, Windows 8 Metro).

Storage
One of the primary differences in this approach is that all of the game data is stored on the Textfyre servers. You might call it Cloud-IF since the player could conceivably play the same game from many computers and devices without any concern for saving, restoring, or managing files. The system stores the results of every turn and provides a user-interface that lets the player “jump” to any historical turn. The user interface even tracks branches, so the player can see where they jumped and where they changes paths.

This is done using Eloquera, an object-oriented database. It allows for very simple storage and retrieval of session data.

Design
Not to stress this too much, but designing a modern user interface for Interactive Fiction is very difficult. Juhana Leinonen set the standard with his Vorple demonstration a year ago at PAX East. Jon Ingold and his partner Joseph Humfrey are doing some amazing things at Inkle Studios (Note: Jon Ingold is the co-designer and writer of Textfyre’s The Shadow in the Cathedral). I’d like Textfyre’s offering to be capable of similar results.

Styling
With that in mind, I’ve left all of the styling capability of this system to external resources. I considered adding a bunch of CSS capability to an Inform 7 extension and asking the author to work under those constraints. After a few passes, this was simply tiresome and very much the wrong direction. I designed the IO of FyreVM to be design neutral for a reason. I believe firmly that content should not know about how it is formatted; outside of emphasizing text with boldface, italics, or similar in-line styles. Any placement or styling beyond that should be handled by the content type. Since FyreVM allows the author to channel output to different content types, this is easily handled in the “interpreter”. In this case, the browser is our interpreter. We simply take content types and associate them to browser placement and styling.

Templating
The next assumption I made was that whatever template I designed was only going to be the default or standard template. There are a set of guidelines for authors or anyone interest to develop their own template. It may be daunting for an author and certainly a non-programmer to develop a template using HTML5, but it’s certainly not impossible or even improbable. I think the results of Vorple and Inkle Studios is confirmation that the IF world has the talent.

The standard template is very similar to a standard desktop interpreter with a few changes. Images can be identified by the game by filename and embedded in-game play, a map can be identified, and a few other visual elements allow interaction with the game, including displaying the player’s current inventory.

It would not be difficult to modify the standard template to move things around. Swapping in a new CSS file could change the entire design, similar to the way CSS Zen Garden works.

Web Services
I mentioned that game play is implemented using RESTful web services. Each service is called with a Clean URL and returns JSON (JavaScript Object Notation). HEre is a list of all of the possible web service calls (all executed through HttpWebRequest, always from a jQuery command):
Register player – /Register/{username}/{password}/{nickName}/{emailAddress}
Player login – /Login/{username}/{password}
Is Authorized – /IsAuthorized/{authKey}
Validate Player – /ValidatePlayer/{validationId}
Session Start – /SessionStart/{authKey}/{gameKey}
Session Get – /SessionGet/{authKey}/{sessionKey}
Session History – /SessionHistory/{authKey}/{sessionKey}/{branchid}/{turn}
Session Command – /SessionCommand/{authKey}/{sessionKey}/{branchId}/{turn}/{command}
User Session List – /UserSessionList/{authKey}
List all installed games – /Games

Game Data
When the player enters a command, it’s sent to the Session Command web service. This service executes the command and gathers all of the data. This data has always been called “Channels”, but you could also call it labelling. When the author is emitting text in a game, there are different kinds of text. FyreVM automatically determines most of the types and labels them accordingly. So the room title and description get labelled “Main”. The room title also is labelled “Location”, the score is labelled “Score”, time “Time”, turn “Turn”, and so on. The list of standard labels includes:

Prompt This is the text that precedes the prompt. In a standard IF game, this has always been “>”, but in our system, it can be any normal text.
Main This is the main text of the game, which includes any ‘before’ text, the location title and description, any object lists, and ‘after’ text.
Time This is the time of day within the game. It’s not always implemented or used, so the standard template looks at the Settings text to see if it should be displayed or not.
Location This is the location name.
Chapter If a game implements chapter titles, this is that text.
Credits This is the list of credits for the game.
Hints This is the current list of hints for the game. This data has to coordinate with the browser properly, so modifications to the standard template are required.
Score This contains the current score, if one is offered. The Settings text will identify if a score is displayed or not.
Title This is the game title.
Prologue This is the text displayed in the ‘When play begins’ rule of the game.
Turn This is the current turn number.
Tips This is a tip for the player.
Version This is version of the game.
Verb This contains the verb in the last command.
Tutorial This contains tutorial text.
Maps This contains a map image filename or some other text to show a map to the user. The standard template uses images (that change throughout the game).
Dead This is the text emitted when the game has ended.
Settings This text contains information on whether other types of text should be displayed or not.

Authors can dynamically label alternative content, which can in turn be displayed in the browser based on author preferences.

All of this data is returned in JSON and looks like this (this is an excerpt from a running version of Cloak of Darkness):

"Channels": [
{"Name": "PLOG", "Content": "Hurrying through the rain-swept November night, you\u0027re glad to see the bright lights of the Opera House. It\u0027s surprising that there aren\u0027t more people about but, hey, what do you expect in a cheap demo game...?"},
{"Name": "CRED", "Content": "Cloak of Darkness by David Cornelson\nGame Engine (FyreVM) by Jesse McGrew\nZifmia by David Cornelson\nInform 7 Programming by Emily Short and Graham Nelson, with Channel IO updates by David Cornelson.\nSpecial thanks to Graham Nelson and Emily Short for all of their hard work on Inform 7."},
{ "Name": "SCOR", "Content": "0"},
{ "Name": "TUTR", "Content": "You might try going WEST from the Foyer of the Opera House"},
{ "Name": "TIME", "Content": "540"},
{ "Name": "LOCN", "Content": "Foyer of the Opera House"},
{ "Name": "PRPT", "Content": "What do you want to do next?"},
{ "Name": "MAPS", "Content": "cloakmap-dark.png"},
{ "Name": "MAIN", "Content": "You are standing in a spacious hall, splendidly decorated in red and gold, with glittering chandeliers overhead. The entrance from the street is to the north, and there are doorways south and west."},
{ "Name": "TURN", "Content": "1"},
{ "Name": "TITL", "Content": "Cloak of Darkness"}
]

There’s a framework in place to convert the JSON data into a known JavaScript class, so “PLOG” becomes game.Prologue and “LOCN” becomes game.Location. This can then be displayed by updating the web page through a jQuery command, like this:

$("#promptText").text(game.Prompt);
$("#locationTitle").text(game.Location);
$("#chapterTitle").text(game.Chapter);

Summary
The new Textfyre website is nearly completed and in coordination with several eReader publications, is due out soon. It’s taken a long time to work through all of the technical details, but I think the results will be very attractive to Interactive Fiction game players as well as authors, teachers, and educational content providers.

Textfyre Portal Status

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 http://beta.textfyre.com.

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.

Ten Rooms Web IF Game Mini-Competition


As announced on intfiction.org, I’m running a mini-competition with a very specific style of game in mind. I call it the Ten Room Web IF Game Mini-Competition. The idea is to get people focused specifically on the art and design of a small game whose map fits on screen while balancing story and puzzle for such a construct. I have a web page site up for the mini-comp at http://www.textfyre.com/tenrooms.
The rules are summarized below.

  1. Create a new and original Interactive Fiction game.
  2. The game must have exactly ten rooms.
  3. The map of all ten rooms must be visually accessible in 2D format or if you’re a snappy graphic artist, some sort of 3D imagery is acceptable. You must provide a graphical map.
  4. Use any tools you wish, but see #5.
  5. Game must be playable in a browser.
  6. Hosting Requirement *** REMOVED ***. You can send your games to me to host on Linux or Windows Server 2008 (IIS), or you can host them yourself. I’d still like to authenticate players completing each game somehow, possibly through an AJAX call with a game-embedded password or something.
  7. Bug fixes will be allowed at all times after games are “released”.
  • Competition Deadlines: February 1, 2012 – Sign up deadline. This gives you time to think about it, play around with some ideas, and decide if you want to proceed.
  • March 15, 2012 – Beta submissions.
  • April 30, 2012 – Final submissions, voting begins.
  • May 15, 2012 – Voting Ends, winner announced.
Competition Voting: Open web voting from people proven to have played through all of the games. Since all of the games need to be playable online, I’ll rig up an authentication system to allow voting once a user has completed all of the games.
Competition Prizes: I’m not sure what anyone will be interested in as a prize, so I’m open to suggestions. Textfyre will donate $100 to the best game based on my own judging (since the intended judging criteria are suspect and may not work out - if we can get that straightened out and there are more than a couple of submissions, the $100 will go to the judged winner).

Waiting on Art and Stuff

It’s been five months since my last post and honestly it seems like yesterday for me. Having taken on a team lead/architect consulting role has pretty much sapped all of my free time. The result is almost no work done on the new Textfyre website and no progress on publishing existing content to mobile platforms. Trying to get Empath completed or even thinking about new games has been impossible.

I am pushing Klockwerk to the #1 eReader device (about which I can’t discuss openly until we are actually published), but there are a couple of artifacts in the works that need to be completed before that happens. One of which is artwork. There will be a unique and new drawing for each chapter within Shadow in the Cathedral. Some of these drawings include the tea machine, Covalt, and the Cathedral of Time. Trust me, when you see the results you’ll be amazed. The artist I’m working with is great, but slow.

I also have to pull together a good tutorial mode for the game and I’m working on that. It’s obvious that Jon Ingold is focused on Inkle now, but he’s been able to help with some of the required changes to the Shadow source code.

The Textfyre website with a Web 2.0 game play mode is mostly completed, but there are some performance issues I’m still working through. The big hit comes from serializing the engine every turn. I may have to work through caching logic to resolve these issues. I also need to get Shadow and Secret Letter implemented and run through testing on them. I plan to have Cloak of Darkness, Shadow, and Secret Letter available when the new site launches.

The cool thing about the website is that it works very well on the iPad.

Textfyre is still here, plugging along.

Follow

Get every new post delivered to your Inbox.