Space Log Entry One
A Choose-Your-Own-Adventure Game
The Goal:
The goal was to create a choose-your-own-adventure game that incorporates both reading and mathematical problem-solving at a 6th grade level. I wanted to create something to show kids that math and reading can go hand and hand. That you don't have to categorize yourself as a "Science Person" or an "Art Person". And that you can actually enjoy both!
The Brainstorming Process:
What Kind of Math Problems?
I first started thinking about what kind of math problems a 6th grader is expected to solve. I did some research and found the following information on the Common Core Standards website:
In particular, the boxed items about rates stood out to me. I decided that the focus of the first adventure in this series would be on problems about rates and doing conversions.
What Kind of Adventure?
At first, I had no idea what kind of adventure this game would have. Would it happen in the past? The present? The future? Would it be full of fantastical folklore or unimaginable technology or just every day things? I decided on the theme of a space adventure 1000 years into the future. Concepts like speed and rates could definitely be thrown into a space adventure without sticking out like a sore thumb. Also, I wouldn't have to make things incredibly realistic, because who knows what sort of technological advancements we will have made by 3020!
What Kinds of Choices?
I thought if every choice in the adventure depended on solving a math problem, some kids might lose interest. There needed to be a nice mix of both choices that depended on mathematic problem solving and those that didn't. I spent some time scribbling out potential choices and math problems involved. These scribblings are shown below:
What Kind of Hero?
I purposely made the main character ambiguous. You don't know their gender identity, their name, or really anything else about them. This was done on purpose because I didn't want to exclude anyone who is playing the game. The beauty of a choose-your-own-adventure game is that you are supposed to identify with the main character and I thought leaving the main character ambiguous would be the best way to accomplish that.
Creating the Game:
I used Inky to create the script for the game. This scripting language is used specifically for creating choose-your-own-adventure stories and games. Before I embarked on the creation of the game, I enrolled in a project course about Inky on Coursera.
Main Screen of Inky Project Window
In order to keep everything organized, I split the main game up into five different sections: day_one_school, spacecraft_lot, day_one_home, day_one_launch, and day_one_space. I created flowcharts for each section to account for the story flow and make sure the game ran logically and smoothly.
Creating day_one_school
The day_one_school portion of the script focuses on getting users settled into the rhythm of the game.
Creating spacecraft_lot
The spacecraft_lot portion of the script is where users decide what kind of spacecraft they want.
Creating day_one_home
The day_one_home section is where the user establishes their relationship with their mother and also solves their first rates problem.
Creating day_one_launch
The day_one_launch portion of the adventure is when the users are able to make some morally ambiguous decisions which result in a few different math problems and interesting storylines.
Creating day_one_space
The day_one_space segment is the final scene of the game. There are no choices in this section, but it does show the user if they won or not.
Creating Randomness in the Game
Certain elements of the game hold a sense of randomness. These are the outcomes where the arrows are outlined in light purple. One such encounter is bribing the officers --just because the officers were corrupt the first time, doesn't mean they will be corrupt the next time around. This was made possible by using the RANDOM() function in my code.
The same principle was applied to the math problems in the game. The numbers and corresponding answer choices are randomly generated each time through the game (within a reasonable range set in the code). By doing so, if users replay the game they will have a completely different experience.