This assignment asks students to design a create your own adventure game. Drawing from the accompanying work “Videogames for Humans”, specifically the section based off of the semi-famous Twine game, “Depression Quest”, this assignment asks students to design an adventure game that draws from topics such as Epistemologym Ideology, Social Construction, Intersections of Gender and Computing, the Politics of Artifacts, Modularization, Systems of Education, and Macroethics vs. Microethics. By encouraging them to address these topics through their adventure, it teaches students to see how the narratives we create in games connect to real-world situations.
- String Manipulation
- For Loops
- While Loops
- If/Elif/Else Statements
|CSCI1100 : Humanities Computer Science 1
Alternating Characters & Choose Your Own Adventures
Reading: “Videogames for Humans,” by merritt k
This homework is worth 100 points towards your overall homework grade and is due Thursday, February 28 at 11:59:59 PM. There are 2 parts of the homework; part one is worth 40 points and part two is worth 60 points.
Each part will be coded and submitted in separate files. These are the files that will be turned in for this homework:
All parts should be submitted by the deadline or your program will be considered late.
For this homework, we will be building a basic interactive narrative game using string analysis, branching conditionals, and loops. This will be the first homework where we begin connecting our conversations in prior classes with our technical work, including issues of gender and masculinity in technology, the politics of artifacts and computational systems, and the social construction of technology.
Before beginning this homework, you should familiarize yourself with choose-your-own-adventure style games through the reading, a selection from Videogames for Humans. The introduction of the reading talks about Twine, an online platform for creating narrative games, as well as some of the social and political impacts Twine’s accessibility has created. The remainder of the chapter is a reflective playthrough of a semi-famous Twine game, Depression Quest.
PART ONE: Alternating Vowels and Consonants
Our program will allow users to enter commands to choose paths in the game. Before we begin the game, we should familiarize ourselves with how to read in words, check their case and qualities, and correct inaccurate entries.
Write a program that reads in a word entered by the user and checks whether:
Note that you can check letters for alphabetical order using <. For example:
x in ‘aeiou’
is True if and only if x is a lowercase vowel.
When you have tested your code, please submit it as hw4Part1.py.
PART TWO: Choose Your Own Adventure
For the remainder of the homework, you will coding a story similar to the reading about Twine games. Your program will be a “choose-your-own-adventure game” that relies on user input to guide a story of your choosing. The homework also has a written and pseudocode requirement, that will walk your instructors through your design process and some reflections on class conversations as explored through code.
The assignment begins by asking you to compose a short “choose your own adventure” story. The narrative you write should apply some of the lessons that we’ve discussed in class. Such topics include:
Epistemology; Ideology; Social Construction; Intersections of Gender and Computing; the Politics of Artifacts; Modularization; Systems of Education; Macroethics vs. Microethics
The narrative does not have to be *about* these topics, but should touch on them in some way that shows your understanding of one or more of them as discussed in class and covered in the readings.
We’ll be requiring you to turn in more steps than usual for ease of your programming and our understanding of your code and story.
To complete Part 2, you will turn in:
We strongly encourage you to brainstorm some different ideas of what narratives you’d like to explore and think about applying them to a coded narrative. From there, you should start to create a diagram of your story.
To the left is a sample diagram that includes a start, divergences (splits), convergences (merges), and five distinct endings. Below are examples of each highlighted and some more precise definitions.
Divergence Convergence Path Length Endings
A divergence is defined as a branching point in the story where the player can make two or more choices that lead to different events.
A convergence is defined as a story event that can be reached by more than one path.
Path length is defined as the shortest number of “steps” needed to get from the starting event to an ending event. The diagram above, for example, illustrates a path length of 4.
An ending event concludes the story, and gives the players the option to end the story or restart the game.
Your narrative should have at least 4 divergences, 1 convergence, a minimum path length of 3, at least one path length of at least 5, and at least 4 different possible endings.
Once you’ve made your story diagram and checked it against the requirements (ask if you would like a check on that), you can start to transfer this into code. Hold onto this diagram, as you will have to submit it as a part of your homework.
Coding Your Story
Each event your player encounters will present them with narrative text, a choice to be made and/or a convergence point, and a text-based input. Most of the player input will be about making a choice in the story. The appropriate command words that the player could enter should be enclosed in ** . For example:
“I walked up to the door. From what I could tell, the room inside was dark. I could **look** in the window down the hallway. I could just take my chances and **open** the door. Or, should I **knock**?”
In this case, look, open and knock would be the possible command words a player could enter.
The player input at an ending event will ask either to end the game, which will display a list of the choices players made, or start over, which will return the player to the starting event.
A key component to this program will be “if” statements. For each divergence in your story will require at least two “if” statements that check for user response, navigate to an event point, or ask the user for new input. If you’re thinking that this is going to get messy, you’re probably right.
There are two requirements that your code has to have.
These are some suggestions we have when starting your code to help organize and break down what you’ll be writing:
Here’s an example of this:
def check_case(user_input, choice_given):
#This function will be the one that checks case sensitiveness
#In this case, it will return a boolean if the input matches the choice
check_door = input(“Do you want to: ‘Go Left’ or ‘Go Right’?”)
#Checking for one decision
if(check_case(check_door, “Go Left”):
print(“You chose to go left.”)
#Store the decision in a list.
#Checking for the other decision
if(check_case(check_door, “Go Left”):
print(“You chose to go right.”)
#Store the decision in a list.
#Ask the user again for input until they enter a valid choice
#Use previous decision to move on in your code
From here, you should start slowly trying to code your narrative and building it up a bit at a time. Never code all of your homework at once, and especially with this assignment! Either code a path at a time or build out your code from the start and isolate different sections to tackle.
When your user hits an ending event in the story, your program should allow the user to either end the game and print out the list of their choices, or start over from the starting point. Remember to think about what going back to the starting point may do to your list of decisions made.
Turn in your files just as you would a regular homework. We will update your grades, so don’t worry if your initial submission gives you a very low score. Remember to ask for help on Piazza from the mentors and your fellow students, and also to attend office hours.
Your homework will be graded on:
Downloadable PDF Version: HW 4