Back to the Future with F# : Introduction

Back to the Future with F# - Part 1

featured-image.png

Adam Wright

This is part 1 in the series about modeling the “Back to the Future : Back In Time” board game mechanics using the F# programming language.

There’s a used bookstore I used to frequent, and it was more than just a place to buy books. It was a treasure trove of nostalgia and hidden gems. Sure, they had a great selection of books, but I was always drawn to the vast shelves of used DVDs and Blu-ray discs. Over the years, I’ve watched countless movies, and each time I walked past those shelves, it felt like stepping into a time machine. Each disc was a small window into a memory, bringing back some of the greatest moments of my life.

Every time I visited, I would make a beeline for the movie section. It was there I’d rediscover multi-film series like The Dark Knight, James Bond, Jason Bourne, Mission: Impossible, and many others. But if I had to pick one series that stood out, it would be Back to the Future. I remember picking up the three-movie Blu-ray collection at that bookstore, and when I sat down to watch it, I was blown away by how incredible 1080p looked. Of course, I was watching it on a massive 100-inch projector screen with Dolby surround sound. It was like reliving the magic of time travel itself.

Then, one day, while doing some holiday shopping at the same bookstore, something caught my eye—a brand new, unopened board game I had never seen before. On the cover was a shiny DeLorean, and the title was printed in bold, eye-catching orange and yellow: Back to the Future: Back in Time. I didn’t even have to think twice. I knew I had to get it. The game was published by Funko Games, the same company behind those iconic Pop! figures with the big square heads.

When I got the game home and opened the box, I felt like a kid again. Inside were figures representing Marty, Jennifer, Doc, Einstein, George, Lorraine, and of course, Biff. The box also contained the iconic DeLorean, the clock tower, the fading photograph, and even a love meter. This was the perfect way to relive the Back to the Future experience in a board game.

The premise of the game is simple but intriguing. Set in 1955, Marty, Jennifer, Doc, and Einstein have a few weeks to make sure George and Lorraine fall in love and get the DeLorean working again—all while avoiding Biff’s meddling. The clock is ticking, and when it strikes 10:04 on November 12th, the game ends.

“Alright, you found a Back to the Future board game. Great nostalgia! But what does that have to do with F#?” you might be thinking.

Well, here’s the thing. I’ve played the game a few times now, and every time, it presents a unique challenge. The mechanics of the game are surprisingly intricate, and I thought it would be a fun opportunity to model the various game pieces. It was a chance to dive deeper into the game while sharpening my skills in F#—all while working with a problem domain that is well-defined.

In this series, I’ll explore the different aspects of the game, the challenges I encountered while modeling each piece, and how all the parts come together to create the complete experience. Take the love meter, for instance. It has multiple zones that represent how in love George and Lorraine are. Depending on their relationship status, the speed at which the photograph fades will change. If the picture fades completely, the mission fails—and Marty ceases to exist.

In the next part of the series, I’ll discuss the turn tracker and what happens as time moves forward.