Requirements of an Interactive Fiction Development System

From IFWiki
Jump to: navigation, search

This article is a launching point for requirements gathering for a new interactive fiction development system. In order to organize the articles relating to this topic, it's recommended that the outline below be the high level requirements and that each section offer links to articles within the IFDSRequirements namespace.

Domain Specific Language?

Is it possible that IF could be implemented using domain specific languages? The idea is that different views of the same declarative data. One view may be for the author and another might be for the programmer. Other views could be developed for other roles in building the resulting game.

The benefits of this format are that one tool could be used to design a game and a second tool could be used to create the interactivity and logical rules of the game.

A poor example of this might be done in XML and Inform. Imagine that an author uses some designer tool that allows them to create the setting of a game. This would include the locations, scenery, and mapping connections. The results would be an XML document.

The programmer could view the same data, but with another tool. This tool would allow the programmer to develop the logical nature of the data.

Artifacts

Views

It's possible to view a system for developing IF in more than one way. These views include the Author's View and the Programmer's View.

The World Model

Author's View

Designing a Player Character

In designing a player character, the author needs to be able to define certain characteristics. Some of these might include the Gender, and other things might be related to clothing, or general description of the player character.

Attributes

  • Name
  • Description
  • Gender

Designing Locations

The author will wish to implement a map of locations linked together with directional or other referential descriptors. The most common of these is the Compass rose.

Designing Scenery

The author will wish to implement items in each location that describe the location, can be examined, but are not movable. The author may wish to also allow altered states of these items.

Designing Non-Player Characters

The author will wish to create a character that can move around in a logical or seemingly random manner and interact with the player character or other items within the world model.

Programmer's View

Coding a Player Character

The programmer needs to be able to implement the elements of a player character that includes the author's view, but also includes elements of interaction that the author's view doesn't account for.