Thursday, September 29, 2022

Licorice Recoil

New game! I put out a geocities-core MIDI-backed web fic a couple weeks ago. It's a style I've wanted to work in for a long time -- probably since reading RPGClassics sprite-edit OC chats as a kid. Give it a read right here for free, in your browser or on your phone.

Like A Cold Place, this one started off as shitposting on social media. I kept seeing cute gay art of the two leads from the anime Lycoris Recoil on my twitter timeline, so I wrote a little thread about them. My feeds often get bombarded with gorgeous character art for shows and games I know nothing about. The joke is that I wind up developing relationships with these characters in that weird online context vacuum, and that those relationships can be fun in their own right.

I liked the bones of the story I laid out in that thread. I thought about expanding it into a little VN, then gave up on the idea because it sounded like too much work. Two weeks later I was in the shower, thinking again about wanting to make a geocities-ass web story, then jolted as I realized the two ideas could work together. A lot of my projects start like that -- a little story I want to tell, and separately a medium I want to work in. Then, finally, snapping them together.


It actually wound up taking a lot of work. A big chunk of the effort was getting together a ~4000 word story I was pleased with. I'm still much more comfortable writing scary and tense scenes than I am cute quiet romance; it's something I've been struggling with since writing the middle parts of Wayward. But I think I'm getting better at this kind of writing, and it's nice to have more tools in my toolbox. 

I'd like to be able to write something like this that's more stretched out, with a slower burn and bigger payoff. But I think this story benefits a lot from the 10-15 minute runtime and density of art/music/ideas. It definitely moves fast, but I think the payoff is small enough that it still feels decently earned.

I really appreciate Zeloz and Deb's help with the early test reading. The first "finished" draft actually ended a scene earlier, before the last time-skip. They correctly said it felt a little abrupt, and I quickly drafted a new ending I'm a lot happier with.

The web dev stuff took most of the rest of the work. It turns out doing web development from scratch in 2022 is... pretty tricky! You can't just auto-play MIDIs anymore, browsers block that. I had to do a lot of CSS and Javascript shenanigans just to mimic the style of old-school personal web pages, and a lot of extra work on top of that to keep it mobile-friendly. I'm pleased with the final effect though, and it was fun to feel like an actual programmer for the first time in ages.

I got almost all the Flickgame art together in the last several days of dev, and that part FELT the hardest even though it went really quick. Making actual art assets from scratch Does Not Come Easy to me. Working with a very limited toolset like Flickgame helped keep it manageable though. It's a skillset I want to develop more, because even though it was hard it was still pretty rewarding and delightful.

All told I think it took around thirty hours. It's the most love I've poured into a project this year outside of Breathless, which is very funny for such a silly premise. Friends seem to have enjoyed the story a lot, both the ones who have and have not seen the show, and I'm very pleased with how it turned out.

I'm realizing this year that a big part of what makes creative work exciting to me is the process of learning new skills, trying new things. Basically every part of this project was outside my normal wheelhouse. I constantly had to stretch muscles I wasn't used to stretching. But I scoped small enough that it didn't get too overwhelming. 

I don't think I'm the kind of dev that finds a niche and then iterates on it endlessly (although I think that can be a dope approach!) Instead I want to keep trying new things and get Pretty Good at a whole lot of creative skills. I'm feeling pretty jazzed about it!

Tuesday, April 26, 2022

Breathless and Gorgon's Gaze

I put out two new games this month! Both are browser games, and you can play them on your computer or on your phone.

The first is a horror twine, Breathless. It takes about ten minutes to play. This one took a pretty long and winding development road for such a quick thing. It started as a very different prose short story right after I put out Wayward last year. I finished the draft but didn't really like how it came together. I tried rewriting it in Twine with a different approach, got some results I liked, then spent four months or so drafting and fiddling with it. Eventually I had something I liked a whole lot!

I think the finished game is really neat. I've had like six big false starts with Twine over the last decade. My issue is that I always tried writing in it like linear fiction, without taking advantage of the unique parts of the form. That was true of this project initially -- the intro and ending sequences were originally way more expansive and even more railroaded. But as I worked on expanding the middle part, I realized how much more fun it was when the game felt branching and responsive. 

It took a lot of work to get the middle part where I wanted it to be. I even watched playtesters to find obvious choice dead-ends to expand, and figure out which parts needed snappier pacing. (Thanks a bunch Drew, Narf, Cecille, and June!!) It was a hard but really rewarding process; I'm glad I stuck it out! I'm really excited about working with (and playing!) interactive fiction more in the future. 

The second is a block-pushing puzzle game called Gorgons' Gaze. It's ten levels long, and seems to take most players over an hour to complete. It's pretty tough!

I put together the engine and aesthetic ages ago, before the pandemic even. I got stuck there because the idea of actually making block puzzles was super-intimidating to me. I made a Sokoban riff in Puzzlescript before (Spider's Hollow, a game I still like a whole lot), but that game is really focused on story. There are maybe two "real" puzzles out of the game's ten screens.

I picked the gorgon prototype back up after releasing Breathless, and after a couple weeks I had a bunch of puzzles I really liked. I'd decided to embrace making a real puzzle game, and I tried to make the later levels as hard as I could without just making them convoluted or overly large. I did a lot of playtesting to make sure there weren't any trivial solutions I missed. (Thanks a ton Thom, Cecille, Drew, and Rhete!!)

The extra work and level drafting paid off -- Gorgons' Gaze has resonated with players to a hilarious degree. It got picked up by a couple rad-looking puzzle game blogs (Bonte Games and a Japanese LiveDoor blog), shared on puzzle game twitter (which I didn't know was a thing), and now it's my second-most viewed game on Itch (after Facets). I'm delighted it's connected with so many folks. I'm excited to make more puzzle-y games in the future!

I feel like the silly seal game last month reenergized me creatively. I'm excited to hammer out more small projects this year. I feel like I'm connecting with a part of my creative spirit I've neglected for a while, and it feels really good. 

Thursday, February 24, 2022

A Cold Place

 

I released a new short visual novel about a seal orb! I feel it best speaks for itself.

Thursday, December 2, 2021

Nymph's Tower

New game! It's called Nymph's Tower. It's a big exploration platformer about ascending a tall tower and finding hidden doodads. You could even call it an INDIE METROIDVANIA if you wanted -- it's the first proper one of those I've worked on!

Reshma and John made the gorgeous art. Muxer composed the haunting lovely score. Toby came up with the game in the first place, programmed all the player movement and boss fights, and did around 2/3rds of the level design. My role was building a lot of the maps in the back half of the game. I'm really pleased with how well our mapping styles meshed together. I think we built a super-cool world to explore!

I had a blast helping make it -- this was my first time contributing to a game in a firmly secondary role like this. I'd love to do more collabs like this in the future. Maybe it's just because I'm lazy, and I enjoyed helping make a big epic game come together without a corresponding big epic amount of work. Maybe it's because I was working with such cool talented people!

It's structured so you can approach certain obstacles in different ways; between that and the lovely expressive movement I think it's got a lot of fun potential as a speed-game. Whether you want to engage with it on those terms or just play through it once, I hope you have a good time!

Two down, one to go!

Friday, November 12, 2021

2021 Housekeeping Updates

I made a bunch of little updates to my games over the past few months!

Both Kikai and Expanse suffered from a game maker bug that made them run at 60-80% speed on a lot of machines. Both should be fixed now! If you tried these games out before and they didn't feel quite right to you, maybe give them another shot. I still think they're very fast smooth fun action games. I'm PRETTY BITTER about this bug compromising a lot of player experiences, but at least it's fixed now.

Atop the Witch's Tower now runs in-browser on the itch page via the Zeta emulator. This feels a lot smoother to me than running it through DOSBox on the archive dot org page. Thanks a ton to Asie and Dr. Dos for the help getting this set up -- I'm very pleased to make this cute fun story more approachable to new players.

I tweaked how movement works in Spider's Hollow, a fix I've been putting off for about five years. Basically the game state won't increment when you try to walk into a wall anymore. It feels a lot smoother and better to me now. I have a lot of affection for this game 'cause I learned a lot about my creative voice making it, and it definitely informed ATWT's development a lot.

I hid Hummingbird Lovers Psychic Supernova and My Wish for You from my itch page. This is something I'm very wary about doing -- please note that I'm never removing the game links from here or the timeline page. I don't ever intend to destroy past work I've fallen out of love with. But I just kept feeling a twinge of annoyance seeing them on the page. I didn't like the idea of new players stumbling onto them and assuming they represented the rest of my work. My Wish For You is a cute silly in-joke and I'll still link it occasionally. Hummingbird Lovers I have a more complicated relationship with.

I co-developed Hummingbird Lovers with my ex-wife. I was in a creative dry-spell at the time, and she encouraged me to release it even though I wasn't fully happy with it. It's the only time I've released a game before I was satisfied with its vision, and it's not something I intend to do again. I have nothing but respect for devs who put out lots of unfinished-feeling "sketches" like this game. Doodling that way can be a kind of joyful and enriching formal experimentation. But as of now that's just not how my brain operates; I can't be satisfied doing that. I'm here to tell stories.

That it shares a song with one of her extremely on-the-nose favorite movies from near our split is just icing on the cake. I don't like the game, I don't like thinking about it, bye.

(edit 4/26/22: lol changed my mind, made them visible again) 

Wednesday, July 28, 2021

Facets v1.1 and Wayward


Last Friday I released the v1.1 update of Facets and Facets’ new prequel novel, Wayward. As per usual, you can download them for free on my itch. I think they're both some of my best work, so if you've enjoyed my previous stuff please give them a look.


The v1.1 release of Facets contains several changes. There's now a "Prepared Mode" you can select at the start of the game. If you do, the divers will bring extra items into the dream (20 potions, 20 bombs, 10 mega-potions, and a dream catcher). You can also pick between Active and Wait mode in the menu. Wait Mode freezes the battle while you're selecting your characters' moves, and it makes the fights slower and easier to parse. There's a boss guide included with the download, along with maps of all the dungeons. I also changed the title screen (I never liked the old one), made the insta-kill dream catchers penetrate boss "barriers", and slightly lowered the HP on a few facets.


There are three core axes along which some players could not parse Facets on release. Many were put off because the fights were very fast; it's hard to parse what's happening on top of quickly selecting your moves. (As Sraƫka-Lillian points out, RM2k3's battle engine sometimes makes attacks overlap in ways that add to the confusion.) Some had trouble navigating the dense mazes. And some were too intimidated by the resource management, by the idea that you could use too many items, get to the end of a two hour game, and be wholly unable to win. Whatever axis you couldn't enjoy engaging with the game on, my hope is that these tweaks allow you to customize your play experience to your liking.


I don't regret releasing Facets the way I did. But now I've released a continuation to the story I'm very proud of, and I'm ready to invite more players and friends into this world.



I started drafting Wayward around October of last year. The most essential parts of the story came together quickly and joyously. From there, I had a fun time filling in the necessary build-up and connective tissue, and fleshing out the big beats. I especially loved writing the cool fantasy action (I channeled a lot of Brandon Sanderson and Fate/stay night energy specifically) and the cute gay romance moments. I think it's a really nice story and a fun breezy read (totaling about 36k words), and I'm excited to see more friends respond to it.


I'd come up with several ideas for stories in Facets' world since the game's release, but this was the one that felt right. I think it's because Wayward's story is sweet, cathartic, uplifting -- all the other follow-ups I'd considered were even bleaker than Facets, somehow. I think I had to grow a bit as a person to write the successor Facets called for. Facets was about the feeling of being slowly killed inside your heart; Wayward is about what a way out of that feeling might look like. I needed some distance from my own drama to really understand what that way out could be. I think that makes it an interesting and worthy follow-up to my most personal game.


I've polished it up as best as I can (I've put as much work into Wayward as I have any of my previous game projects), but I know Wayward's prose still bears some of the aesthetic tells of amateur web fiction. I like that, because I think it's disarming, the same way the all default art look of Facets is disarming. I also think amateur web fiction is an extremely cool, valid, awesome format. I've loved freeware games for most of my life, because making art outside the constraints of traditional game publishing allows for more vibrant, personal, often extremely queer modes of expression. I know self-published web fiction works the same way, and I want to read and create more of it the way I have games. 



A lot of the above sounds very serious, but one thing I want to get across is that Facets and Wayward were both made to be fun. Facets is full of dense mazes and hard boss fights and tragedy because those things excite and captivate me in other stories. Wayward has lots of big character catharsis and tense spell-blasting fantasy action because I think those things are rad as hell. 


My intent making these stories (or any of my work) was never to give my friends a homework assignment or unpack my baggage -- it was to make something moving and thrilling and delightful. I think I succeeded. I think both of these stories are rad on their own, and I think taken together they're a legit super-impressive creative achievement. I'll always look back fondly on the time I spent with these characters in their awful familiar world.


One down, two to go!



Wednesday, April 28, 2021

OMORI and Storytelling Shorthand

 Endgame OMORI spoilers

Content Warnings: suicide mention, some pretty grisly violence

I like sad stories. A whole lot of people do. I think it’s viscerally fun to experience intense negative feelings within the safe space of a story. It feels good to get worked up over fake people suffering in a book or on a screen. It’s a kind of emotional roller coaster; a tragic end can be just as moving and satisfying as a happy one. Crying literally releases endorphins.


Some folks empathize with characters in their stories so hard they can’t engage with sad stories. It gets too intense for them, they can’t deal with it. I think that’s totally legit, even if I obviously don’t feel the same way.


OMORI is a sad story. It’s a riff on Mother-style RPGs. You spend most of the game in the dream world of a boy named Sunny. Most of the dream world is light and cute and fun. But -- and you probably know how this goes already -- there’s something dark bubbling under the surface. Something happened to Sunny. And the journey of OMORI is slowly piecing together what that something was, and how to move forward from it.


It’s a game about untangling trauma. It’s a very rich tradition. To name some that were instructive for me: Silent Hill, Final Fantasy VI/VII, Xenogears, Yume Nikki, Problem Attic, Trails in the Sky the 3rd, LUCAH: Born of a Dream and countless visual novels and other text games all touch on the idea to varying degrees. OMORI is part of the specific subset of those games where parts of the game world itself literally represent the inner psychological turmoil of the protagonist. 


(You could argue that many classic games focused around exploration have a lot of the same psychological edge, they just don’t make the setting explicitly a dreamscape. I don’t think a game needs to take place inside someone’s mind to be about trauma in a spatial sense, it just helps make things nice and clear.)



So, you play around in Sunny’s dream world. Every five or so hours you leave the dream and spend some time in the real world. And it’s there you start to piece together the larger story. It’s revealed less than ten hours in that Sunny’s sister Mari, a very nurturing and kind presence in the dream, is dead in real life. 


I was a bit relieved to see this dropped on the player so early. The true end route in OMORI is about 25-30 hours long. I knew A Reveal was coming, because I’ve played games like this, and if the reveal 23 hours in was “his sister died a while back and he’s sad about it” I would’ve rolled my eyes. Nope, things are much more nuanced and miserable than that.


Again, you probably know how this goes. You spend more time in the dream world. You go back to the real world for little interludes, and more about the larger story is revealed. Things get more and more sinister. The horror flavor gets more and more pronounced. Dream denizens allude to some unspeakable ugly truth that you mustn’t discover.


The dream’s artifice collapses. For a few hours, OMORI becomes a straight Yume Nikki riff. Instead of cute little Mother worlds, the spaces are overtly abstract and psychological (although not quite as abstract as Yume Nikki). The dread gets deeper and deeper.


The truth is revealed. I knew something was coming the whole game. But the reveal of what that something is still surprised and disturbed me. It somehow managed to be way more awful than I expected, without tipping over into feeling unbelievable and unearned. It’s very well-done. The specific nature of the reveal is the reason I’m writing this essay, but we’ll get to that a bit later.



The last couple hours are all about parsing together a way forward from that unspeakable unnameable awfulness. The reveal is that OMORI isn’t a game just about trauma and grief -- it’s also about guilt. The kind of guilt most of us will hopefully never experience. Where you’ve done something utterly reprehensible that can never, ever be undone, and you somehow have to move on from that.


The story explodes into mesmerizing, soul-rending catharsis. Sunny stares down his own self-loathing, his own suicide instinct, and finally starts the eternal work of forgiving himself. Because OMORI is about giving yourself permission to live when you feel you have no choice but to die. 


It’s meticulous and mature in its build-up and sustains its last notes for exactly as long as it needs too. OMORI doesn’t flinch from the ugliness of its subject material. It doesn’t luxuriate in the violence like pornography either. It hurts the player just enough to make its climax soar.


I’ve played a lot of games with moments like this. But after finishing OMORI, I wasn’t sure I could name a single one that landed these big moments quite as hard. Sunny’s story is going to stick in my heart for a long time.


Because this is Sunny’s story, first and foremost. Aubrey and Kel and Hero and Basil all play a part in it. Mari too, of course.



We're always, always using shorthand when we tell stories. It's inescapable. You paint one piece of the scene closely, and leave other parts implied or barely sketched. You're always choosing to fill in one character's perspective, while leaving another's less fleshed out. The act of storytelling is always choosing what to show in the frame and what to leave out.


Shorthand isn’t something to shy away from. If you tried to fill in every detail of the world of your story, you’d rapidly wind up with something unwieldy, extremely long, and not much fun to engage with. You always have to leave some things implied, unstated.


It’s something to embrace, willfully and mindfully. That second part is important, because when you rely on shorthand without realizing that’s what you’re doing, you can unknowingly say something ugly. Because shorthand self-perpetuates, like a virus. People grow up experiencing stories that use a certain shorthand, then tell their own stories using the same tools and symbols.


We don’t know too much about the internal world of Mari, Sunny’s sister. We’re deliberately left in the dark about it, but it’s clear that Sunny’s trauma has something to do with her. In one of the first real world scenes, she takes the form of the one-eyed specter that haunts Sunny throughout the dream. The game wants us to suspect there was something evil or just off about Mari. It’s instrumental in the game’s building tension.


We do pick up some things about her. She plays the piano. She has a romantic relationship with Hero, Kel’s brother. She makes delicious cookies. She saved Sunny from drowning in a local pond. She’s extremely sweet. 


In the dream world, Mari functions as your save point. She lays out nice picnics at a bunch of different spots throughout the dream, and whenever you find one you can save and heal up by eating a tasty meal Mari prepared. You can also just hang out with Mari, and watch cute animations of all your friends playing around.


About ten hours in, we find out Mari is dead in the real world. All of your friends are pretty gutted about it. Her death is what led to your friend group splintering apart, some years ago. The real world sections of OMORI are about slowly piecing together that friend group again, seeing how all your friends reacted to Mari’s death in different ways.


About 20 hours in, we find out she killed herself in Sunny’s back yard by hanging herself under a tree. It adds an extra layer of understanding to why everyone’s so cut up about her death. No one knows why she did it. Which is just how it goes sometimes, tragically.


About 25 hours in, we find out the truth.


If you’ve played games like this, it probably won’t be that big of a surprise. Sunny murdered his sister. In an angry moment, likely spurred by tension over their upcoming piano/violin duet recital, he pushed her down the stairs in their home. She hits the ground in exactly the wrong way and dies. After crying for a while, a plan emerges to avoid getting in trouble. He stages a suicide. Sunny drags Mari’s corpse out behind their house, ties a jump-rope around her neck, and hangs her from a tree.


The murder may have been an accident. But the violence he does to her body afterwards is calculated and deliberate. 


We don’t know much about Mari, ultimately. Because the story isn’t really about her. It’s about how bad Sunny feels for the violence he did to her. It’s about finding a way forward from grief, trauma, overwhelming guilt. The story landed for me because, even though he did something extremely awful, I want Sunny to find a way to live. I don’t want any child to think there’s nothing they can do but die.


Mari is, ultimately, shorthand. The story’s catharsis depends on making us feel Sunny’s guilt as acutely as possible. Making us feel culpable for murdering his sister and violating her remains is certainly an effective way of getting there.



There’s something pernicious about this, right?


I can name several other games about trauma, grief, guilt with this exact plot turn. Where the story orbits a man’s guilt for hours and hours, slowly crashing inwards. And then finally, the reveal: he killed a woman that was important to him. In all cases, the woman in question is only characterized in broad strokes, because her story isn’t the one that actually matters. What matters is how bad the man feels for hurting her.


To get more general with it, I can name many, many games about someone being very sad because a woman they liked was hurt. Trails in the Sky SC has a particularly funny example where in two back-to-back chapters, we find out two separate male characters, both deeply wounded, have suffered because different women they cared about died. Both have almost identical flashbacks. It’d be comical if the writing wasn’t so strong otherwise. Locke, Cyan, Setzer, and Shadow in Final Fantasy VI all have their own special flavor of dead woman backstory. In these stories, and in many stories like this, the women in question are only loosely defined.


These aren’t stories about violence against women. The violence is just shorthand, a narrative device, a tool to get us where the story needs us to be.


This isn’t some kind of sweeping moral judgment. It’s an observation of an ugly pattern. 


It’s certainly not an original observation. I realize I’m jumping into a conversation people have been having for decades, centuries, with varying degrees of nuance. But OMORI’s take on it is particularly striking to me both because it worked so well and because the violence Sunny does to Mari is so unbelievably intense. Emotionally it feels about one step removed from a story about a rapist’s journey to self-forgiveness. 


I don’t think the game’s evil for a couple reasons. Sunny’s a child. There’s a sense that he doesn’t understand the scope of the evil he’s committing, not until well after it’s done. And the depiction of the violence, for me, did not cross the line into feeling exploitative. It gets close though.


I like sad stories. I want to see characters I love hurt and bleed and die. I want them to get put through the fucking wringer, and then either triumph over or succumb to despair. I want suffering. Because sad stories are how we prepare our souls to deal with the endless trials and despairs of real life, and because sad stories are fucking fun as hell.


The nuance here isn’t about whether an individual story is evil for using the shorthand. It’s about pointing out that the shorthand exists, so that we can be conscious about when we engage with it. Maybe there’s a slightly different story we can tell, one that doesn’t reach for the shorthand of “a woman they liked suffered” when it needs a reason for a protagonist to feel bad. 


And maybe we should be extra-careful telling stories about men who hurt women. Stories about their guilt, their trauma, their suffering, and not the suffering of the women they hurt.


Our world and culture are shaped by men who hurt women. They define so much of our art and the discourse around it already. It’s a poison that’s seeped into all of us; it’s inescapable. And when we tell these stories, it’s at least in part guided by how that poison’s affected us. 


So, let’s be mindful about it. Let’s be mindful of these patterns, of how we live in an ugly society that reduces women into objects, and be careful about doing the same in our stories. Let’s try not to let the poison control us.