man wearing gray polo shirt beside dry-erase board

Race to Oregon.

A competitive card game that turns the classic Oregon Trail into a strategy and survival challenge for 2 to 5 players. Designed, documented, and tested to IEEE software engineering standards.

Believe
A classic game that was never meant for friends
The Oregon Trail has been around since the 1970s. Millions of people grew up playing it. But it was always a solo experience: just you against the trail, alone.

In Professor Simone Maccanti's Software Verification and Validation class at RMU, we were asked to identify a problem and build a solution that meets real engineering standards. Our team of three (Alex Marsh, Jayden Walker, and me) saw an opportunity: what if the Oregon Trail was not a solo survival story, but a competitive game you play with friends? Something where strategy, trading, and a little bit of luck decide who makes it to Oregon first.

The challenge was not just about game design. Everything we built had to be documented, testable, and professionally specified using IEEE standards. That meant we had to think like engineers AND like product people at the same time.

Jake Rice

Junior, Engineering Major, Casual Gamer

Context

  • Has 15-20 minutes between classes

  • Wants something quick, social, competitive

  • Grew up playing Oregon Trail as a kid

  • Plays card games like Uno and Exploding Kittens

What he wants

  • Learn the rules in under 5 minutes

  • Play a full game in 15-20 minutes

  • Strategy that matters but luck keeps it fun

  • Social interaction (trading, negotiating)

"I want something I can play with my roommates that takes 15 minutes, not 2 hours."

Understand
Researching what makes card games actually work
Before designing anything, we studied what makes competitive card games successful. We looked at games like Exploding Kittens, Uno, and Settlers of Catan. We also mapped out who would actually play this game and what would make them come back.

The primary user is a college student who wants a quick, competitive card game to play with friends. They have 15 to 20 minutes between classes. They want something easy to learn but strategic enough to stay interesting. This user profile shaped every design decision we made.

For the second version, I rebuilt everything from scratch over the summer:

Simple rules, deep decisions

You should be able to explain the basics in two minutes, but still discover new strategies months later. If the tutorial takes more than 10 minutes, you have lost most casual players.

Randomness plus skill
Pure luck gets boring. Pure strategy is intimidating. The best games balance both so anyone can win, but skilled players win more often.
Social interaction is everything

Trading, bluffing, and negotiating with other players is more fun than playing against a computer. People come back for the people, not just the mechanics.

Use case stories we designed for

Use case 1: First-time player

"Jake just sat down with his friends after class. He has never played before. His friend explains the rules in 2 minutes: collect resources, trade with other players, survive random events, reach Oregon first. Jake plays his first round and understands the game by round 2."

Design decision: 7 rounds (fits in 15 minutes), 4 simple resource types, visual tutorial under 10 minutes.

Use case 2: Competitive rematch

"Sarah lost the last game because she ran out of food in round 5. She wants to play again immediately with a different strategy. This time she is going to trade more aggressively early and stockpile food."

Design decision: Random events prevent the same strategy from winning every time. Trading system creates social dynamics that change each game.

Use case 3: Non-English speaker

"Omar is an international student from Morocco. His English is good but not perfect. He wants to play with his American roommates without struggling to read every card. He switches the language to Arabic and follows along easily."

Design decision: 4 language options (English, Spanish, Arabic, Chinese). Adjustable text size. High-contrast mode.

Ideate

Designing the game mechanics

We boiled the game down to four core mechanics. Each one was chosen because it addressed a specific user need from our research:

Resource cards

Four types: Food, Wood, Bullets, and Fabric. You need them to survive. Run out of food? You are in trouble. Managing your resources is the heart of the game. This keeps every decision meaningful.

Random events

Every round, something happens. A snowstorm hits. Bandits attack. Disease breaks out. You have to adapt your strategy on the fly. This is what prevents the same strategy from winning every game.

Trading System

You can swap cards with other players. This is where the real fun happens. Sometimes you have to give up something valuable just to stay alive. Trading creates the social interaction that keeps people coming back.

The journey

Seven rounds, one for each state on the Oregon Trail. First player to reach 100 points wins. This keeps every game under 20 minutes, fitting perfectly between classes.

Built for everyone, not just gamers

The scenery changes with the seasons as you travel west, which makes the journey feel real. Text size is adjustable. There is a high-contrast mode for people who need it. And we added four languages: English, Spanish, Arabic, and Chinese. A simple tutorial gets new players ready in under 10 minutes.

Built with:

Python

Pygame

Git

Figma

Notion

IEEE SRS

Standard

AES-256

Sora

Listen
Testing with real players changed everything

The most valuable part of this project was not the code or the documentation. It was watching real people play.

We tested with classmates in ENGR-3400 and got direct feedback from Professor Maccanti. Both groups found issues we never would have caught ourselves:


Rules that seemed clear were not

The trading system needed extra explanation. Several players asked "wait, can I trade with anyone or just the player next to me?" We rewrote the rules to be explicit about every interaction.

Some events were too punishing

A few event cards wiped out half a player's resources in one round. Players felt helpless instead of challenged. We rebalanced the events so they create tension without feeling unfair.

The tutorial was too long

Our first tutorial was 15 minutes. Players lost interest. We cut it in half to under 8 minutes by removing edge cases and letting players learn those during gameplay instead.

The version we submitted was dramatically better than our first playtest. Not because we added features, but because we listened to what players actually experienced. The disconnect between what the team sees and what users experience is exactly what product managers exist to bridge.

What we shipped

We delivered a complete Software Requirements Specification, a professional document that any developer could pick up and turn into a fully playable game. Our professor and classmates gave strong feedback on how clear the game logic was and how natural the interface felt.

<5s

Load time

99.5%

Uptime target.

IEEE

Standards met

What we shipped

Game balance
  • No strategy wins more than 35% of games

  • Average game length: 12-18 minutes

  • Player elimination before round 5: under 10%

Usability
  • Tutorial completion: under 10 minutes

  • Rule questions during first game: fewer than 3

  • Players who want to play again: 70%+

Accessibility
  • Has 15-20 minutes between classes

  • Language switch time: under 5 seconds

  • High-contrast mode readability: WCAG AA

  • Text size range: 12px to 24px

Technical
  • Has 15-20 minutes between classes

  • Game load time: under 5 seconds

  • Data encryption: AES-256 verified

  • Offline play: fully functional

What it does today

Real-time group chat organized by class. Secure file sharing for notes and study materials. QR code joining — scan and you're in. Account system with real password security. Clean web interface that anyone can figure out.

What's next

Moving to the cloud so it can handle more students. Push notifications so nobody misses a message. Connecting it with the systems universities already use. The goal is still the same: make it dead simple for students to help each other learn.

Takeaways

What I took away from this

01
Decide what you are building early and protect it. We defined our scope on day one and said no to everything else. That discipline is why we finished a complete, polished game instead of a half-built mess with 10 features.

02

User testing is the most valuable product activity you can do. We learned more from one playtest session than from weeks of designing on paper. The disconnect between what the team sees and what users experience is exactly what product managers exist to bridge.

03

Good documentation is a product in itself. The best spec is useless if the reader gets confused. Writing the IEEE SRS taught me to always write for my audience, not for myself. That skill applies to PRDs, user stories, and every product document.

04

Every team member sees things differently, and that is the whole point. My focus was connecting the technical details to what actually makes the game fun to play. That translation between engineering and user value is the core of product management.

Let's stay in touch

Get updates on new projects, case studies, and what I'm building next.

© 2026 Ahmed Shaban - Built with Framer