List

Blog

Dynamic Entities and Subplots

by Gamefic on Nov 27, 2016

A while back I quietly introduced an improvement to dynamic entities. It's always been possible to generate entities at runtime, but for a long time they weren't compatible with snapshots. In other words, any entity created at runtime would be lost in an undo or restore. Gamefic 1.0 was the first release to handle dynamic entities properly in snapshots. The latest version extends this capability with a new feature called subplots. Read more

Testing Interactive Fiction with Automated Gameplay

by Gamefic on Aug 1, 2016

I've been experimenting with player bots for interactive fiction. Besides being a fun exercise, I thought they might be a useful debugging tool. I even thought they might be able to prove the "validity" of a story model, e.g., that the story can never be played into an unfinishable state. I'm not sure that's possible with a non-trivial story, but I figured I'd give it a shot. Read more

Dynamic Conjugation

by Gamefic on Apr 28, 2016

The original version of the standard library was hardcoded to use the second person when referring to the player's character, e.g., "You go north." Not anymore. Scripts can access an object that defines grammar rules for the PC through the you method. Read more

Haul and Pull

by Gamefic on Apr 18, 2016

The Gamefic project went through a major overhaul this weekend. Most of these changes have been in development for months. Saturday I started merging them into the master branch on the GitHub repo. Read more

Another Weekend, Another Refactoring

by Gamefic on Jun 28, 2015

The Director class that handles actions just went through a major overhaul. Most of the changes are internal, so the impact on plot scripts should be minimal. Among the changes: Read more

Reevaluating the DSL

by Gamefic on Jun 21, 2015

This weekend I pushed a new repo branch that includes a major refactoring of the plot DSL. The syntax for plot scripts is largely unchanged, but the new code behind it uses a new module called the Stage. I based it on the Clean Room pattern described in Metaprogramming Ruby and further developed by Seth Vargo. Including the Stage module can make any class capable of loading code from a Ruby DSL. Read more

Managing and Customizing Scenes

by Gamefic on Jun 1, 2015

The concept of scenes has always existed in Gamefic. The simplest kind of scene was simply a block of code that got called by the cue method. There were also specialized kinds of scenes like pause, prompt, and yes_or_no. The system seemed solid in my initial tests, but when I started building a larger game that heavily relied on different types of scenes, I noticed a few shortcomings. As a result, I redesigned scenes so the shortcuts for creating common scene types were still available in plots, but under the hood there's a system that provides a lot more capability. The new system is based on three classes: SceneManager, SceneData, and the Scene itself. Read more