Alert Email External Link Info Last.fm Letterboxd 0.5/5 stars 1/5 stars 1.5/5 stars 2/5 stars 2.5/5 stars 3/5 stars 3.5/5 stars 4/5 stars 4.5/5 stars 5/5 stars RSS Source Topic Twitter
I’m redesigning this site in public! Follow the process step by step at v7.robweychert.com.

Once in a Lifetime

A game show for the Philadelphia Psychotronic Film Society

A game show screen with blinking lights around the title: Once in a Lifetime

This is the long story of a frivolous, fleeting creative project that came out of nowhere, completely took over my life for a few weeks, and was gone as quickly as it came. Let it be known that I regret none of it!


I’m a proud member of the Philadelphia Psychotronic Film Society. In the organization’s own words:

We carry on the proud tradition set forth by Psychotronic Film Societies around the globe by screening cult/weirdo/trash films for the locally like-minded. Every first and third Monday of the month we meet at 7:30 PM at the Philadelphia Mausoleum of Contemporary Art to watch a feature film programmed by one of our members.

My number finally came up to program the film on April 1st, and while the date tempted me to choose the least psychotronic film I could think of (something like, say, Titanic), I instead opted for Stalked by My Doctor: Patient’s Revenge, the third and best installment (of five, so far) of the Lifetime network’s Stalked by My Doctor franchise.

Stalked by My Doctor: Patient’s Revenge poster

Preparing for the evening prompted me to dig into the work of Doug Campbell, who created Stalked by My Doctor and directed the first three films. Campbell’s directorial career has revolved primarily around Lifetime movies, and when you look at them all together, patterns quickly emerge: The titles often include words like “deadly,” “stalked,” and “nightmare;” the films all seem to be aimed at middle class suburban moms; and thematic variety is in short supply. Given Lifetime’s self-acknowledged reputation, I wasn’t especially surprised by any of this, but I was impressed by how prolific Campbell is, often making as many as six of these things in a year. And when I watched all his films’ trailers, three production companies kept popping up: Johnson Production Group, MarVista Entertainment, and Reel One Entertainment. Further down the rabbit hole I went, discovering that between just those three companies, well over 400 trashy thrillers (plus many more Christmas films and dramas) had been produced for Lifetime and similar networks in the past 15 years, all of them drawing from the same shallow pool of themes as Campbell’s work.

Psychotronic screenings are commonly preceded by a collection of various video clips related in some way to the night’s feature, and I put together a YouTube playlist of Doug Campbell trailers as well as music videos featuring Eric Roberts, the star of the Stalked by My Doctor series. But while I had this niche audience’s attention, I also wanted to find a way to expose even more of the trove of made-for-TV trash I had accidentally unearthed, and to show off its many funny and formulaic titles. The initial idea was to put together some kind of PowerPoint presentation rattling off lists of films that all share the same strange preoccupation. (There have been, for example, at least four Lifetime movies produced in the last few years about abductions at national parks: Disappearance in Yellowstone, Vanished in Yosemite, Kidnapping in the Grand Canyon, and Taken in Montana). But there had to be a more engaging way to do it, a more colorful presentation befitting the spicy content. And then it hit me: a game show!

The game

The concept coalesced fairly quickly: contestants would be presented with a list of thematic keywords, choose a combination, and see how many films matched that description. Once that basic premise was established, the game named itself: Once in a Lifetime. I built three rounds for the game:

  1. Round 1: Contestants are presented with two sets of three keywords. Each contestant chooses one keyword from each set, trying to find the combination that matches the most films. Once a keyword is used, it can’t be used again. Contestants get one point for each film their combination turns up.
  2. Round 2: The same as Round 1, only this time contestants lose one point for each film their combination turns up, so they’re trying to find the keyword combination that matches the least films.
  3. Round 3: In this final round, each contestant gets their own set of three prefab keyword combinations, only one of which matches a real film. Choosing the correct one gets them 10 points.

The highest score wins! And the beauty of it is, you don’t need any specialized knowledge to play, just a little love in your heart for the idea of exploitation films made for soccer moms.

Making the game

The data and gameplay design

I started researching the films on the production companies’ websites, but quickly realized that Letterboxd would make the process easier. A few quick Letterboxd searches got me lists of each company’s output, which I could then narrow down to thrillers by filtering by genre. To make that list downloadable, I had to create a list on my account and add each film individually. A bit laborious, but the fabulous Letterboxd UI got me through the process fairly quickly. From there, I downloaded my account data to get the lists in CSV format and opened them as spreadsheets.

If a dataset of thematic keywords for these films exists somewhere, I couldn’t find it, so I had to make it myself. I added a column for tags in my spreadsheet, read the description for each film, and tagged the film accordingly. Developing a robust taxonomy is a tricky task under the best of circumstances, and to truly do it right, this endeavor was better suited to a PhD thesis timeline than the weekend I gave it, but the imperfect collection of tags I assembled was ultimately suitable for my needs. In all, my taxonomy was made up of 77 distinct keywords. Here’s the Top Ten:

  1. murder
  2. mothers
  3. daughters
  4. romance
  5. obsession
  6. education
  7. teenagers
  8. kidnapping
  9. wrongly accused
  10. deception

Analyzing the data (don’t worry, I automated this part) was a matter of checking every possible keyword pair—77 keywords make 3,003 pairs—to see how many films matched each pair, and that was all the information I needed to start building the game rounds. The goal was to surface as many films as possible while keeping the game strategic and fun for the contestants and audience. Here are the keyword sets I eventually made for the first two rounds, along with the number of films each combination matched:

The Round 2 keywords. Set 1: obsession, secrets, and sports. Set 2: education, medicine, daughters

Round 1

Round 2

Since the third round would surface only one film per contestant, it called for more thematic specificity, and it was fun to invent ridiculous but plausible keyword combinations for the contestants to choose from:

Keyword combination options: revenge + yoga, love triangle + firefighters, identity theft + cheerleaders

Round 3, Player 1

Round 3, Player 2

Altogether, these three rounds touched 119 films, about 29% of my dataset. Of all the ways the game could play out, a minimum of 15 films and a maximum of 62 films would be surfaced, which felt like a good spread, and both contestants had a roughly equal shot at winning.

The visual design and build

I wanted the game to look as Lifetime as it could, but I couldn’t find any brand guidelines for the network, and available marketing materials were mostly limited to their website and some TV spots. Grabbing the logo and some colors from the Lifetime site was easy enough, and I tracked down the logo font, Klim’s Domaine Display Condensed, which came in handy for filling out the title screen. Some of the Lifetime commercials used Futura, so that became the game’s primary typeface.

Since the game structure is relatively simple, there were only a few types of screens to design. Mockups came together without much trouble, keeping everything pretty simple both for the sake of legibility and ease of construction, and the final product followed the mockups almost exactly.

The keywords vacation” and “kidnapping” and a film poster for Vanished in Yosemite

Keywords screen mockup

Film results screen mockup

Since the web is the interactive medium I know best, I built Once in a Lifetime as a web app, and it was quite an adventure. I hadn’t made anything quite like it before, and the process was inevitably messy. (I won’t be going into any detail about the code, because much of it is a pretty embarrassing jumble.) The game is essentially an interactive slideshow, which sounds less complicated than it is. I could have hard-coded the content, which wouldn’t have been too much trouble since there are only 24 total choices contestants can make, but I wanted to make everything dynamic so I could keep things flexible and experiment with each round’s keyword options. Whenever contestants choose a keyword combination, the game queries my film database—which I exported from my spreadsheet as CSV and converted to JSON—and the matching results are assembled on the fly. So the steps in the slideshow are generated dynamically depending on each round’s options, the choices the contestants make, and several other variables.

A sketchbook page with a process flow diagram

A sketch that helped me get my head around the game’s interactive slideshow logic

Each step in the slideshow makes one or more things on the screen appear and/or disappear, by toggling a class on that element that transitions it in or out. But transitions vary according to context, and there’s plenty more things each step might be doing behind the scenes: querying the film database, playing sounds, updating the scores, figuring out the player order for the current round, etc.

Another interesting wrinkle is in how the game screen’s display deviates from a traditional web app. The intended effect is more TV than internet, so I didn’t want any buttons, visible cursors, focus styles, or anything like that. This meant assigning numeric keys to the keyword options in each round, which were input from the sound booth by the game operator, my friend Jon, who also input the contestants’ names. Everything else was just advancing the slideshow with the right arrow key, which I did with a presenter remote from the stage.

A cheat sheet for the Once in a Lifetime game operator, showing which keys correspond with which options

Other significant ways the game deviated from a traditional web app:

  • The design only needed to work in one browser on one viewport size: 16:9.
  • Running it locally on my laptop meant that all those large film poster images would load instantaneously.
  • Accessibility concerns were limited to legibility.

I’m a big believer in responsive design, progressive enhancement, and a carefully considered, accessible user experience when I make things for the web, but it was really nice to not have to worry so much about those things for once.

The result

The game was a hit! My savvy contestants, Melissa and Kevin, got the highest possible scores in the first round and nearly the lowest possible scores in the second round (which, remember, was the gameplay goal, if not the comedy goal). Including a demo at the beginning with the aforementioned “kidnapping + national parks” titles, the game ultimately showed off 37 trashy Lifetime movie posters, many of which got big laughs from the audience. Kevin had an impressive come-from-behind win in the final round when he correctly chose the combination “identity theft + cheerleaders,” which of course refers to 2019’s Identity Theft of a Cheerleader. Each contestant went home with a bargain-bin Lifetime DVD: 2002’s Obsessed, starring Jenna Elfman, and 2014’s Baby Sellers, starring Kirstie Alley.


Apart from how it relates to its inspiration, Once in a Lifetime is an apt name for another reason: it was a one-time, 10-minute experience that I probably spent well over 60 hours creating. Fewer than 100 people witnessed it. As far as I know, no photos or videos exist of the event. I have no plans to expand the game, design more rounds of gameplay, or make it available to play online. And I’m fine with all of this! Sometimes things can be ephemeral, and you just had to be there. I’ll probably run the game for friends and family now and then, and otherwise its story will live here for posterity.

All that said, I learned a lot in the process of making this silly game—including the realization that I like making big things for small audiences—and these lessons will certainly find their way into future projects. And don’t be surprised if in a few years, the next time it’s my turn to host a Psychotronic screening, I can’t help but overdo it again.