Project Overview
Going into the project, I wanted to design a level of a text-based adventure game in Inform 7. This choice was based off of my previous experience in a different text-based engine, Twine, and my desire to explore other ways to present text-based games.
With Zork being one of my all-time favorite games, I decided to do more research into how text-based adventure games were made in the past, and how they're made now. This is how I discovered the open-source language of Inform 7 (though, now, it's closer to Inform 11).
Story Concept
The concept for this short game was born after countless, countless hours of watching the Alien movies. In every installment of the films, there are very distinct, large shapeships that are used as major set pieces, many of which tell their own story through their state of destruction.
I wanted to design a short game that would tell the story of a wrecked ship and it's dead crew. The player would be able to explore and interact with the environment to piece together what had happened on board.
Designing the Map
This map was initially designed by me for a sci-fi tower defense game. It is supposed to represent the layout of a small research team vessel.
Initially, the design was very rough and organic, with weirdly shaped rooms and diagonal hallways.
Later, the design was changed to be more direct and uniform in shape.
Connecting Narrative
I needed to find a way to reward the player for exploring and interacting with the environment. Additionally, I needed to find a way to push narrative and decision-making into an exploration game.
One thing I learned from a different text-based game engine, Twine, was that it was possible to make it so certain parts of the game were only revealed under specific circumstances.
Using this knowledge, I designed a narrative reason for the player's choices to be influenced. The core of the game system became "The Root" or, as the narrator refers to it, the seed. This object, when added to the player's inventory, would reveal new information upon entering rooms, as well as prompting the player to repair the ship.
With that put into place, it allowed me to think about other narrative reasons for the ship environment to be interactable. Continuing with the idea that the player is someone sent to investigate the ship, I decided to add files and ship logs in multiple rooms that would serve as exposition. With the exposition found in these files, the player can make more educated choices in the game.
Another way I made the environment interactable was with, what I call, "items and problems", or simple just "many locks, many keys". This refers to items that can be found to fix problems that are in specific locations on the map. For example, the player needs to get the copper wire to fix the navigation panel.
Learning Inform 7
Inform is a naturalistic programming language and unlike anything I've ever worked with. The writing itself is simple, akin to regular storywriting. However, the bounds are limited by what the computer is aware of which, in our case, isn't a lot.
There are some things you can do to teach the program though. If you define things and give them rules, the system gains a surface-level understanding of them. I was able to use this way of "teaching" the system to implement more interactivity into the map, as well as create a system for logs and files.
Setting the Endings
I ended up scoping down the project to include four endings instead of more, with all of the endings being separated by how the player chooses to respond to the mysterious "seed".
For a previous text-based narrative project, I created a game with two different endings. This felt like a cop-out, like it destroyed the idea that players could have an actual effect on the story element. Going into this, I knew I needed something more to give the player more possible options.
This led to the four endings: The Survival, The Spread, The Sacrifice, and The Assimilation.
To get The Survival Ending, players would need to discover all of the files around the ship and burn the seed in the incinerator before leaving.
The Spread Ending is considering the "default ending" and will happen if the player does not fit the criteria for any other ending. This ending will involve the player unknowingly taking the seed with them when they leave the ship.
The Sacrifice Ending is only achievable if the player has the blaster and the seed but does NOT go through with starting the ship.
The True Ending, The Assimilation, happens when the player acquires the seed, fixes the ship, and starts it.
Problem-Solving
The systems I proposed and concepted had a complexity that could be considered "too much" for the simple line of logic used in the Inform system. This lead to massive text blocks, like the one shown here, being used to try to define multiple variables at once.
To try to combat this, I ended up using smaller sub-variables inside of variables to set player behavior parameters.
Conclusiom
I found that learning Inform and studying fluid narrative pathing really helped me gain a better understanding of how to tell a story through the game mechanics and environment. Though this project was only a base level, it opens up the possibility of a greater over-arching storyline told through this medium.
If I were to bring this project further, it would definitely need to involve a lot of adjustments made to the current Inform system I have built, as well as the addition of some add-ons. It could also be interesting to add in illustrations and images to add to the current descriptions of the scenes.