The COVID Trail


Overview

Inspiration

My team was tasked with creating an engaging terminal-based role-playing-game for our DigitalCrafts python project. At the time of development, we had only 2 weeks of experience writing Python code.

Design and Planning

In our initial planning session, we decided to base our game on the popular 90's PC game - Oregon Trail. Like the original, our game would feature a party of characters making their way westward. They would encounter obstacles and make decisions that would lead them on to success or doom them to failure. Instead of a westward expansion, theme we based our game around the 2020 pandemic. Our characters needed to get from Atlanta to Portland to find toilet paper! Throughout the game, you'll find small bits of pandemic-related humor wherever we could fit them.

screenshot

Logistics

  • Active Development: May 13 - 19, 2021
  • My Role: I was responsible for the main game loop, the daily decision menu, and all our visual and audio asset integration.

Results

The Game

The game consists of 9 turns which we refer to as days. If the party makes it all the way to Day 9, they win!

When the game begins, the user can give names to the members of their party. Each member has a particular role (Doctor, Hunter, Engineer...) and corresponding starting stats, multipliers, and special abilities.

After the party are named, the user proceeds to the store and are given the option to purchase food, bullets, fuel, phone charge, and hand sanitizer. Each item has special importance for the trip, and running out of any of them will cause disaster of some degree.

Each day, the party encounters a random event. Some events, like "travelling merchant" are positive. Others (eg.- power outage) are negative. In some cases, a member of the party can use their special ability to counteract a negative event, but abilities can only be used once per game. Combat is also a random event, forcing the party to spend bullets to battle bands of roving Karens and zombies.

Days 0, 3, 5, and 8 take place in cities, and the party can choose to restock at the store. The other days are spent on the road, and the party can choose to go hunting for food. To simplify the game, we made hunting a form of voluntary combat.Winning a hunt/battle rewards you with various random items.

Project Reflections

Since this was the first project of the coding bootcamp and the largest codebase I'd worked with at the time, there were many challenges to overcome. Our team were able to use eachother as resources to work through issues that we had. Some examples of solved problems:

  • Storing a 'sickness' boolean for each party member that would decrement their health points daily if true.
  • Writing a checkDay function to establish at the beginning of each turn whether the party was in a city or not.
  • Writing a store loop that allows the users to easily buy, browse, and exit back to the main decision menu only when they chose to.
  • Using the 033c command to clear the screen frequently to make the game feel more natural.