Gamefic

Adventure Games and Interactive Fiction

Ideals and Goals

by Gamefic on February 5, 2017

I wanted to take an opportunity to discuss some aspects of the Gamefic project and my objectives behind it. I've been working on it sporadically for about five years, but only recently have I been able to dedicate a significant amount of time to it. Development of the framework is ramping up and new game projects are on the horizon. Here's an impromptu list of my thoughts.

Gamefic is a game narrative framework. I want this library to be useful for any project that requires a dynamic and interactive world model. This includes parser-based IF, CYOA, and any other platform where narrative is key. One of my ongoing projects uses it to manage story events in a 2D graphical game.

It should support multiple styles of gameplay. The core of a Gamefic narrative is the Plot. It maintains the world model, accepts user input, and manages the internal game state. The user interface connects to it through an Engine. Right now, Gamefic is capable of building a single game codebase for both console and web. Moving to another platform is a matter of developing an engine for it. The SDK can build for any platform that can interpret Ruby or JavaScript.

Content is HTML first. I struggled for a long time trying to decide the best way to support text formatting. I didn't want to implement a custom markup language with its own peculiar set of bugs and limitations. After being dissatisfied with a few other options, plain old HTML seemed like the obvious choice. Gamefic converts HTML to ANSI for console games and emits pure HTML for other platforms.

Tools for procedurally generated content. I've always been interested in dynamic storylines and emergent behavior. From the beginning, I wanted Gamefic to make procedural content easy to write. It's had support for dynamic entities for a while. The new subplot feature takes it even further.

Multiplayer. I'm nearly finished with the first version of a persistent online engine for Gamefic plots. It can work through WebSockets, regular TCP, or both. It should be on RubyGems and GitHub in the near future.

Web-based IDE. I wanted to make it easy for authors to experiment with Gamefic without setting up their own development environment, so I started working on a web app for it. An early alpha is already online, although I haven't made a public announcement because it's not ready for prime time yet.

At least one new game is coming this year. I have two games that I hope to start beta testing in the Spring. One of them will use the new hybrid interface that's been in an experimental phase for a while. (I demoed an early version of it a couple years ago.)

Clean up the website. I moved from PHP to Ruby on Rails about a month ago. There's still some content waiting to be updated, but it's been smooth for the most part. One major reason for the change was the opportunity to experiment with integrating Gamefic into Rails.

That should be more than enough to pile on my plate for now.