I was introduced to the Colossal Cave Adventure game in 1980 when I got my first “real” job at an engineering company. The game was one of the installed pieces of software on the company’s Data General Eclipse mini computer. Soon after I started working there (spending countless after hours with coworkers exploring twisty passages), I purchased a TI 99/4A home computer, and I discovered Scott Adams’ series of text adventure games. Of course, I played them as quickly as I could get my hands on them. When I got my first IBM PC, I also got my first Infocom game (Deadline), which introduced me to a more sophisticated parser – to go with the greater computing power – and the idea that Interactive Fiction was more than simply text-based puzzles to be solved. The narrative was an integral part of the game experience, so the way in which things were described was just as important as the rooms that could be explored or the objects that could be examined. As the Infocom games came to tell more complex stories (anyone remember A Mind Forever Voyaging?), the narrative gulf between the new games and Colossal Cave became quite evident.
Working on the Historical Williamsburg Living Narrative, I am keenly aware of the need to provide narrative variation throughout the game, and it is especially important for continuity in the player’s actions. For example, when coming to a particular location for the first time, it makes sense to describe the experience:
“You approach the castle with a sense of awe at the scope. The walls tower over you as you slowly approach the massive iron gates. The construction effort for the outer walls alone must have taken years!”
While the above text might make sense upon first reading, seeing the same text over and over would greatly diminish the sense of reality and continuity in the game environment. Fortunately, Inform 7 provides built-in coding constructs to handle these situations.
The simplest situation to deal with is in visiting the same location multiple times. Inform 7 allows the application of conditionals that track the player’s location history:
[if unvisited]Write initial description here.[end if]
[if visited]Write subsequent description here.[end if]
While this takes care of a majority of situations, there are times when you may want to alter a location description based on whether or not the player has already visited a diffent location in the game. Let’s look at a situation based on a section of the actual game map.
For this illustration, we will focus on what is happening in the Capitol building desriptions. The Capitol is one of the main structures in Williamsburg, and it has appeal to the player character as part of the storyline. Accordingly, there should be some sort of acknowledgment of this in the description when the player encounters the Capitol. Using the [if visited] and [if unvisited] constructs apply only to the actual game locations, and this can be problematic in situations where there are more than one entry pont.
Notice that there are two entry points for the Capitol: the “Capitol Entrance” and the “Capitol Rear Entrance.” When the player first reaches either one of these locations, there should be a sense of excitement at seeing the Capitol. However, both locations need to “know” if the player has been to the other location, otherwise both the descriptions will portray that first-time sense of excitement, and that will be very narratively inconsistent.
Typically, the Inform 7 code might look like this:
The Capitol Entrance is a room.
“[if visited]This is the Capitol Entrance. You have been here before.[end if]
[if unvisited]You have never been to the Capitol before! Amazing![end if]
The problem with this approach is that the player could have already come to the Capitol from the Capitol Rear Entrance (and indeed even walked right through to the Capitol Entrance), which would make this description sound quite out-of-touch! Fortunately, Inform 7 gives you the ability to filter location descriptions based on what other locations have been visited or not visited. Something like this would be a start:
The Capitol Entrance is a room.
“[if visited]This is the Capitol Entrance. You have been here before.[end if]
[if the Capitol Entrance was not visited and the Capitol Rear Entrance was not visited]You have never been to the Capitol before! Amazing![end if]
[if unvisited]You have never come to the Capitol from this entrance.[end if]
There are three possible states represented above:
- The player has been to the Capitol before, and it was through this entrance. Therefore, there should be no initial reaction to entering the Capitol itself, or to encountering this particular location.
- The player has never been to the Capitol through this or the other entrance. All the “surprise” should be expressed here.
- The player has never been to this location, but the player has entered the Capitol through the other entrance. There should be the first-time reaction to this entrance but not to the Capitol itself.
You can begin to see the potential complexities in building a consistent narrative when dealing with a fairly complex game structure. There are many locations with multiple entry points, and the same process will need to be considered when encountering people or even objects for the first versus subsequent times. There are any number of ways to keep track of the narrative flow, and my primary tools are maps and spreadsheets. This, however, just scratches the surface of considerations for the location descriptions. Think about how descriptions may change depending on what other non-player characters have been there first, the time of day, or even the weather.
Clearly, we need to build a game timeline and make use of the appropriate variables as we move forward.
Note: As I write this entry, my family and I are in Colonial Williamsburg. (Yes, I am doing game material research while I’m here…) We will be enjoying Christmas dinner in Christiana Campbell’s Tavern (on the far east side of the map). So from my family to you and yours, may you have a very Merry Christmas and a Happy New Year!
I have an article published over on Storycade. Topic is parer-based versus CYOA; what should be considered “real” Interactive Fiction? Check it out!
Attention educators and gamers! I’m currently working on my dissertation, and my research involves examining student and instructor experiences in using Interactive Fiction games in either secondary or post-secondary education environments. Specifically, I’m looking for instructors that use or may be interested in using Interactive Fiction to support assignments in history or literature courses. Additionally, I’m looking for available IF games that may be suitable for use in this way. If you or someone you know might be interested in participating in a study or be able to list some text-only Interactive Fiction games for education, please let me know.
Although the Historical Williamsburg Living Narrative is not yet completed, eventually I hope to have it used as a piece of historical Interactive Fiction that can be used in the teaching and learning environment.
In the last entry, I discussed the challenges of producing logical text adventure maps based on real geography; in this case, the physical geography of the city of Williamsburg in the late 1700s. The good news is that the streets and main building locations have been preserved, which helps in map development. But the challenges of using a real place that needs to be reproduced in the context of an adventure game map are even more challenging when using exisitng building architecture. The constraints of walls, doors, hallways, rooms, and stairs along with their comparative physical location relationships don’t leave much room for “adventure navigation license.” The biggest challenge is in using the compass rose as a foundation for navigation, where you have 8 directions of movement from any particular point (north, northeast, east, southeast, etc.). Add “up” and “down” for a total of 10 basic commands that can be typed to specify movement. Consider the following diagram:
The player location can represent anywhere in physical space: a forest clearing, a small cave chamber, a grand ballroom. Adding the “up” and “down” directions provides a good deal of movement options including 3-dimensional flexibility, for a total of 10 choices for player movement from any given location in the game. However, particular real locations can be difficult to reproducing using the compass rose navigational framework without making overly compromising game navigation decisions. For example, suppose we’re dealing with a long hallway with many doors on both sides, like a hotel hallway:
We can see here that a single “location” representing the hallway is not a practical solution to get to the individual hotel rooms; there four north directional choices and four choices for going south. While creative programming can help (“enter room 101,” “enter room 103,” “enter room 105,” etc.), that approach tends to add to the command complexity for what should be one of the easier tasks in Interactive Fiction play: moving from one spot to another. A different approach might be to segment the hallway:
Using this approach, we see that using the compass rose commands are sufficient for us to navigate to any location on the map without any amiguity. But there’s a tradeoff in that getting from Hall Location 1 to the room in the far northeastern corner would take five steps in the game. The can be tediuos for the player, especially if there is not a particularly great amount of game content to be discovered in each of those Hallway locations.
It is this navigation design issue that is driving the development of the building interior set of game maps. Some creativity allows us to “bend” the compass rose directions to suit our needs, for example:
Here we have a location that could be a hallway, with accesssibility to three doors on the northern face of the hall and three doors on the southern face. We would need to address this layout in the text description of the location, something like, “You are in an east-west running corridor with six doors total on the northern and southern walls. North of you is a single door, and you likewise see doors on the northwest corner as well as the northeast corner of the corridor. The southern wall has the same arrangement of doors.”
As work progresses on developing the Williamsburg buildings’ intererior maps, it is this interpretation of the compass rose that allows us to achieve an acceptable level of architectural fidelity. The Governor’s Palace is easily one of the most complex structures being reproduced within the game, and it is also one of the key narrative locations. There are four floors to the Palace, and the maps are displayed below:
First Floor (source map here):
Third Floor (source here):
Basement (source here):
This mapping structure gives a total of 44 separate player locations for the game, but remember that these 44 locations are at the single Governor’s Palace location on the overall physical map. There are still quite a few buildings to map (which means researching all the architectural plans from the Colonial Williamsburg Library. Lots of fun in the days ahead!
Thanks to all 85 backers of the Historical Williamsburg Living Narrative, we reached 129% of our $1500 goal, putting us at a final total of $1937. We are quite appreciative of everyone’s most sincere support in the form of hard-earned cash.
Now comes the job of building the game! The first phase of development will be focused on the Williamsburg physical environment, building the map that the game navigation will be based on. That will involve quite a bit of research (already underway), and in a few weeks time, we will be traveling to Williamsburg to obtain photographs, make geographic measurements, and gather materials from the Colonial Williamsburg Foundation. we will keep you posted every step of the way.
In the meantime, we will take a little time to bask in the warmth of this initial success in the project’s lifecycle. We are certainly off to a very good start.
As of this posting, the funding window for the Historical Williamsburg Living Narrative has less than 55 hours left before closing. While the current pledged amount is greater than the funding goal. additional backers would go a long way toward helping the project secure more resources, leading to a more detailed final product.
If anyone reading this post is on the fence regarding backing the project, we encourage you to go to the Kickstarter project page and make a contribution, even as little as $1. If you’re already a backer, please help us continue to raise awareness by sharing the Kickstarter project link across your social media connections.
We greatly appreciate all your generous support!