A browser and mobile game built in RIVE: whack-a-mole, dystopia, and one very stressed secret agent
An evil AI has seized control of humanity. One agent stands between total subjugation and freedom. Her name is AGENT.
Before she can infiltrate the regime’s final gala and end this once and for all, she has one problem: her skin is breaking out. That’s where you come in.
POPP’EM is a whack-a-mole style browser and mobile game built entirely in RIVE. Players have 59 seconds to pop enough pimples to help AGENT blend in at the event, because even in a dystopia, appearances matter.
The game is earnest about exactly one thing: saving the world. Everything else is negotiable.
The stakes are described with complete sincerity, the absurdity goes unacknowledged, and the character is named AGENT.
Tension before the game begins is handled by a fake loading screen, designed to let the opening exposition breathe and make players feel the weight of the mission before they’re thrown into it. The loading screen does not load anything.
Every game system in POPP’EM is driven by RIVE’s Data Binding: no external scripting layer, no JavaScript game loop. The logic lives inside the file.
A 59-second countdown started and reset entirely through bound state. The clock drives the run and, when it expires, hands off to the result evaluation.
Each pimple popped increments a bound score value in real time. The counter is visible throughout the run, giving the player a continuous read on their progress against the clock.
Special sound effects fire at key score milestones via Data Binding conditionals. The audio rewards are tied to achievement thresholds, not to time, so skilled players hear the game differently.
Pass and fail states are calculated from bound values at the end of the run. The outcome is evaluated, not scripted. AGENT either walks into the gala or she doesn’t.
Data Binding: case study video
All game assets were built from scratch as vectors in Illustrator: the pimples, the face, the UI elements, the loading screen, the result states. The art is expressive and graphic, doing the tonal work the writing can’t. Everything reads as serious; nothing winks.
Vectors were imported into RIVE and animated. The state machine manages pimple visibility, pop animations, idle states, and the transition between the loading screen, the game, and the result. Data Binding wires the clock, score, SFX triggers, and win condition logic into a single reactive graph.
The fake loading screen is its own state, held for a fixed duration before releasing into play. The pause is the mission briefing.
State machine: RIVE editor viewport
All music was composed and produced in Logic Pro. The score sits underneath the action without demanding attention, maintaining the mood of low-grade existential dread appropriate to a planet under AI occupation. The sound design rewards both progress and failure in kind.
The “pop” sound effect was contributed by Joey at School of Motion. It is the most important sound in the game. Special thanks.
POPP’EM is a game about stakes. The stakes happen to be ridiculous, but they are never presented that way. AGENT is a real operative, the gala is a real mission, and the pimples are a real problem. The player is the only one who sees the humor, and only because the game refuses to share it.
Deadpan is a point of view: a commitment to the bit so total that the gap between the gravity of the delivery and the absurdity of the content becomes the content. The game does not tell you it’s funny. It tells you the world is ending.
The loading screen does the most work. It holds and waits, taking the mission seriously so the player has to decide whether they do too.
Mechanically, whack-a-mole is one of the oldest interaction patterns in games, and that simplicity is load-bearing: the loop keeps the player from thinking about anything except the clock and the face. Which is, more or less, the situation AGENT is in.
POPP’EM was selected as a featured project on the Contra homepage following its submission to the RIVE Game Challenge. AGENT saved the world. The complexion held.
The game was submitted to the Contra RIVE Game Challenge as a browser and mobile experience, accompanied by a documentation video covering the game’s features, fiction, and Data Binding implementation.