Thursday, September 17, 2015

Rinse and Repeat as cup runneth over

This is a post detailing my process and intent in making Rinse and Repeat. It discusses in detail how some of the game systems work and what happens in the end, and IT SPOILS THE GAME. You are heavily encouraged to play the game and draw your own conclusions before reading what I think.


It started with Le1f's music video for "Soda." In it, two hunks spray themselves with gushing fluids, suggestively shooting up from the bottom of the frame.

The scene begins as a sort of aggressive competition of machismo and staring down each other, but then one hunk can't help but submit and opens his mouth to try to swallow some of the frothy fluid. I think what makes this "funny-sexy" is how the soda gets everywhere and how messy it seems. It's pretty brilliant and got me thinking about how sexy a fluid dynamics simulation can be, and how I could put such technology to use.

Fluids in games are usually engineered for very specialized contexts. Most games usually treat water as a flat plane that slices through the world, while some games actually implement water as trigger volumes that you can swim inside... and that covers 99% of water implementations in games. So if you're going to go to the trouble of actually adding any sort of a fluid dynamic model to your game, you usually need a really good reason, like basing your entire game around dynamic flooding or deformable terrain. Most games usually just fake it with some particles and scrolling textures, which is mostly what Rinse and Repeat does.

I started by using the Unity plugin Fluvio, which was free in the Asset Store at the time, but then I noticed it was just using the built-in particle Shuriken collisions system anyway, so I just deleted everything except their refracting particle shader.

I built my own (fairly basic) particle attractor system that "pulls" particles if they enter a certain radius, but ignores it if the particle's Y position is below the attractor. This led to a lot of annoying frustrating placement and tuning of particle attractors, and I'm still not really happy with it, but oh well.

I wanted to use fluids and their interactions with surfaces to emphasize the dude's body and its shape. The way fluids follow the contour of his shoulders, for example, mirror the way your hands follow the contour of his ass. "If only I could be that water."

In this way, I imagine it as a sort of sequel to my spanking game Hurt Me Plenty, where I wasn't satisfied with how I did the aftercare and I got a lot of requests to let the player play as a submissive. So this game is about caring for someone, but on their own terms: the game will only let you care for it at certain times, and it's up to you to make time for it.

Like, I wanted players to literally make time for this game. To achieve that, Rinse and Repeat operates on a schedule, seeded by the first time you run the game.

The gym's bulletin boards hint that showers get busy after gym classes. All the gym classes have silly procedurally generated names like "Tactical Zumba" or "Blood Pilates" which riff on this mindless gunmetal masculinization of fitness. (And it's called "Midas Gym" because this gunmetal / brand of masculinity is sort of like the new gold.) I wanted the class names to be memorable but also relatively unique for different players.

The proc gen seed is the gym number listed at the top of the board, which feeds into a Szudzik pairing function. My original idea was to have it tie into a "" website with Google Calendar and .ICS export integration, but when I cut those features it made the website seem redundant, and the whole system was now pretty overengineered. Oops.

All the system really needs is a seed day (0-6) and seed hour (0-23) to generate a schedule. The first gym class will always be at the initial startup of the game, and the second class is always the next day and a few hours later, etc. After a given class, there is a 1 hour window where the player can boot-up the game and shower with a hunk. If they arrive an hour late, they instead get a "you were late" scene and are still refused the opportunity to play. But maybe waiting means more than that.

Some no doubt bristle at the triumph of waiting mechanics in games, and would refuse to classify it as a mechanic since it is essentially non-interactivity that exists as interactivity. But I'd argue that waiting is the quintessential easy-to-pick-up hard-to-master kind of skill that is massively accessible to most of society. It's brilliant and it happened underneath everyones' noses, probably because we were turning our noses up and sneering.

With a focus on waiting, I also wish to honor the more artistic tradition of waiting in games, as in Pippin Barr's The Artist is Present which takes place in a virtual MoMA that opens and closes according to the real world time at MoMA in New York City, and in Michael Brough's VESPER.5 which lets players make only one move per day. The masocore Half-Life 1 mod Half-Quake Amen had a "sapience" level where players had to wait in a room for 20 real minutes. In a way, Rinse and Repeat attempts to build on all three of those -- an articulated schedule that operates once a day and by the minute. This stringency makes it one of the most hardcore waiting games on the market today.

Waiting is an act of submission, but that's not really a bad thing. Delayed gratification is an integral part of pacing that can enrich an experience; you can't feel a drop without a build-up.

In sex, the notion of waiting is very important. Some people wait to have any sex until they are married, some wait to have sex depending on their menstrual cycle; some are tired, some don't feel like it, and some just plain don't want to. Some people perform sex as work, which is often charged at a time-dependent rate. Foreplay and edging are common sexual practices that are about the fun of "development", where the delay of the climax is the whole point. Basically, only virgins don't like my games Basically, sex often takes place at specific times, places, and moods.

... which leads into how this game plays on the "locker room / shower" genre of gay male porn. For the uninitiated, the basic fantasy is this: imagine you're a dude who just finished doing something manly, like Sports or something, and now you're showering with other naked dude(s). Then someone compliments a body or notices "something", one thing leads to another, and then latent man-on-man lust boils over into risky semi-public sex acts.

Older gay men understand this in a tradition of cruising and gay bathhouses, while younger gay men might narrativize it more as a reversal of bullying dynamics in high school gym. Above all, the locker room is understood normally as a place of danger, where you could be discovered or outed or beaten for "looking at someone the wrong way" even if you were just minding your own business -- and there's nowhere to hide, not even in your own clothes.

So as a porn genre, it is basically a fantasy about everyday consent and safety. Not just the consent to have weird exciting uncomfortable sex on a tile floor, but also the consent to be able to shower and use public facilities While Being Gay. What if we actually did what homophobes are so irrationally afraid of us doing?

After scrubbing him in 3 different sessions, being allowed to go a little bit further each time, you reach the ending. What would "actually happen" here, what felt emotionally real? I iterated a lot on the ending, going back and forth and trying new ideas for weeks. I knew I wanted it to end with the hunk feeling uncomfortable with the relationship you two have developed, and backing away / rejecting you, but how do you play that?

I took a lot of showers to try to find the answer. Two weeks passed without much progress. I was so desperate I started staring at water for inspiration. Then one day, while sitting at the fountain in Washington Square Park and watching the ripples, I got an image: his face, immersed in water, with ripples behind him like some sort of halo.

At the end -- after scrubbing his ass, his abs, his nipples -- you finally touch his face. His sunglasses drift off and he closes his eyes. The mouse no longer controls your hands, but rather it controls his head, as you make him nuzzle your hand and luxuriate in your touch. By flipping the controls around, I'm also trying to flip the typical dominant / submissive dynamic, to say that there's also a certain power in submission. (cf. "power bottom")

"Make him believe," croons the background music track. ("Vyvanse" by the Grounders.) Your hands begin multiplying, covering him like water, but there's something really inhuman about being able to touch someone that much. You're using your powers of devotion to make him love you.

... except you can't make him love you. Suddenly water emerges behind him like a wall, and your hands plunge him backward into the wall of water and hold him there. I mixed 3-4 different drowning sounds from in order to get the violence I wanted -- the violence of your affection, drowning him as his body thrashes around. The water distortion shader fragments his quivering face and bulging eyes. You basically dream about drowning him.

Then we cut back to reality. The dude is alive and well, staring at you, a little bit shocked as if he saw your dream too. His voice is shaky, "dude, I can't do this anymore, sorry." And he walks away, disappearing from your save game file forever.

The player is now left alone with their own body, forever. The game culture term for this is "body awareness", the idea that we need to give first person players some sort of visible concrete body instead of an invisible implied body. Body awareness games usually seek to make the body seem as unobtrusive as possible, but that logic seems to run counter to many of my experiences with bodies, real and virtual. When you look down, you're noticeably much less fit than the man you scrubbed the past few days, and you are also not white. You don't fit this platonic gay male ideal. Who would ever want to scrub you back, really?

I get criticism about my prior sex games (Hurt Me Plenty, Succulent) focusing on muscular white bodies -- I've always argued that this focus was intentional, to foreground the weirdness of a muscley white man as a gay cultural ideal, but I also understand that this will only seem intentional if I also practice the alternative, which is to try to depict a diversity of bodies.

So this is my way of having these two different bodies talk to each other, and also my way of drowning / "killing off" this recurring hunk character that I commissioned from Kris Hammes -- he might make the occasional cameo, but he will never star in my sex games again.

But if I'm killing off this character, what happens to you?

Well, I guess you just stand there alone, in the shower, forever. Where there's intimacy, there's also loneliness.