All posts

Making Stare Master, the Game I Sat on Since 2013

A prototype eye imaging app for diabetes monitoring gave me an idea for a staring contest game. Thirteen years later, it's now on the App Store.

Stare Master. Don’t blink. The Elder Man, in his flat cap and grey moustache, stares out next to a Play button.

The Elder Man. Feel his stare.

Stare Master is a staring contest game for iPhone. You and a 3D character lock eyes, and your front-facing camera is the referee. Blink or look away and you lose. Good day, sir.

It’s free on the App Store now, and it took me thirteen years to build. “But Matt,” you find yourself asking. “Don’t you make apps really fast?” And the answer is yes, when I make the time. But it didn’t take thirteen years of work; it was thirteen years sitting on the idea.

The Genesis

In 2013 I was helping IRISense, a health startup funded by a local university, build a prototype app for the iPhone. A researcher there had devised a way to approximate a person’s blood glucose levels from a close-up photograph of their eye.

In ideal conditions, a person using the app would take a photo of their own eye. Because the photo needed to be high resolution, the front-facing camera was ruled out. My idea: use the higher-res rear-facing camera, and with the iPhone screen facing away from the user, provide audio cues to guide them and then take the photo automatically.

So I had to devise a way to detect an eye in frame, at a certain distance, then auto-focus and snap the picture.

Again, this was in 2013. iPhone 5 era (which is still one of Apple’s most beautiful phones).

The Prototype Stack

At the time, the best open source computer vision library was OpenCV, so I used that. The front-end client app was built using Objective-C/Objective-C++ (OpenCV requirement) and UIKit. I still have a fondness for Objective-C, even though I no longer use it. The back-end was built on Laravel 4 and the Dropbox SDK for storage. The user’s eye photos were securely uploaded to the server, sent to Dropbox, and then automatically synced to the researcher’s Mac for the actual medical image processing. This wasn’t even an MVP, just a prototype to prove the concept.

Fun fact: to speed up development for the initial eye-in-frame detection, I had a print copy of Wired magazine with a close-up of Jeff Bezos’s face and left eye on the cover. I would build the app to my phone, point the camera at the magazine, and tweak settings until the yellow bounding box was reliably and quickly finding Jeff’s iris.

Unfortunately, after we started beta testing the app it was determined that this generation iPhone’s camera imaging wasn’t ready yet for the use case. The assessment model really required high-quality SLR images, both for baseline and point-in-time, to work well.

The Game Idea

Outside of my consulting work (which I still do) I make iPhone games, and building that prototype gave me an idea.

As a product of the 1990s, I watched a lot of television. Late Night with Conan O’Brien was one of my favorite shows, and one of the best segments on that show was when Conan and Andy Richter would have staring contests. Andy’s face would become all contorted as he watched the most unhinged things happening behind Conan.

The iPhone game idea: if a phone can find your eye and tell whether it’s open, a phone can referee a staring contest.

I have the history in App Store Connect to prove it: I registered an app entry there on October 26, 2013 at 2:50pm, for “Stare Master”.

Stare Master in App Store Connect, circa 2013

And then I moved on to working on an app for another life sciences company, so the game idea got shelved.

I’d been sitting on it ever since. Never quite finding, or making, the time for it. Until a couple months ago.

What Changed in Thirteen Years?

In 2013 the things I knew I’d need to do to make this game seemed insurmountable as a solo dev, especially to do it right. Not only would I need to build blink detection on OpenCV, I also would need to create all the opponent artwork, and write the gameplay logic, and then market and promote it. Making a game is a lot, especially when you, like I did, have a growing family and do contract software development for a living. Not making excuses, though, because instead of building Stare Master I focused my rare spare time on making and marketing SketchParty TV.

Technological progress marches on, too. When Apple released ARKit in 2017, which had face tracking and blink detection built in, that Stare Master idea bubbled back to the surface. However, it was around then that I was also inspired by a friend and his book, Educaching, to make an educational AR geocaching game, WaypointEDU. So Stare Master again was pushed to the backmost burner.

But then, earlier this year, I became aware of Blender MCP.

Posing Characters with Blender MCP

My vision for Stare Master was going to require 3D art.

While I’m pretty good at drawing, I’m not a 3D artist. So I bought a big set of character models. While they came mostly rigged for different poses and expressions, they weren’t the poses and expressions I wanted.

I’ve dabbled with 3D modeling and animation software ever since Bryce3D and Poser when I was in high school, then tried my hand at 3D Studio Max, and Maya, and others. The discipline of making things in 3D is both as broad and as deep as you’re willing to go. I learned how to start with a sketch and use it as a guide to drag primitives onto, and how to manipulate splines and nurbs, and how texture mapping worked, and how to rig a model up for IK. I was always a little overwhelmed with how complex the tools were. And the programs were expensive! So beyond the trial period I’d give up, then try again with a different program a few months later.

Except for Blender. Blender was free. It was just also very complex, and a little less intuitive in some ways than the programs costing thousands.

So when I finally decided it was time to make Stare Master, I started watching Blender tutorials and learned that the facial expression / blend shapes system required purchasing and learning another plugin.

That’s when I remembered that someone had made an MCP integration for Blender. If you don’t know, MCP stands for Model Context Protocol; it’s a way to provide an interface for an LLM to talk to another piece of software. A lot of people use it for general business tasks, like talking to their accounting apps. In this case, Claude could talk to a 3D modeling and animation program. I used Blender MCP.

This way I could describe what I wanted in plain English, like “narrow the eyes more, tilt the head down 5 degrees, and turn the smile into a scowl”, then watch it happen in the viewport, and nudge things by hand from there. I did this for the taunt, gloat, and loss condition animations, too. I don’t know if I was early to doing things this way, but now I’m seeing it being done everywhere. (Including generating the models… I paid for the ones I’m using.)

Gameplay

Choose Opponent screen with Elder Man, Teenager, and Baby; the Elder Man mid-stare at 11.9 seconds; the You Win panel after he blinked first.

Stare Master has two modes, Versus and Stare-a-Thon.

In Versus mode you pick an opponent and lock eyes, and try to outlast them. They will blink eventually, but they don’t just sit there. They’ll narrow their eyes, lean in, make faces, and try to get you to break.

In Stare-a-Thon mode, you still stare at an opponent, but it’s you against the clock. How long can you make it without a single blink? Set a record and then send the time to a friend to see if they can do better.

There are three opponents: the Elder Man is the easiest and has a greater chance of blinking after about ten seconds. The Teenager is even better at staring, barely changing expressions, and takes a little longer to blink. But the highest difficulty for now is The Baby. Have you ever tried to defeat a baby in a staring contest? Why won’t you blink, baby?!

Each opponent also has Easy, Normal, and Hard difficulties, and beating all three opponents clears the gauntlet and unlocks the next tier up.

Main menu with Play, Stare-a-Thon, Options, and Game Center; the Gauntlet Cleared screen offering Try Normal and Try Hard.

Your best times land on Game Center leaderboards, and there are also 16 funny achievements. Share your Stare-a-Thon time in your group chat and see who has the iciest gaze.

Somethin’ in Your Eye? Get Starin'!

Stare Master is free on the App Store for iPhone and needs iOS 18 or later. If you’ve got a kid, spouse, or co-worker who claims they never lose a staring contest, just say, “Ok. Show me.”

Download Stare Master on the App Store

Eyes open. Don’t blink.

Newsletter subscription

I'll never share your email address.