Tuesday, October 18, 2022

Beach Balls

 

I made a little browser game recently! It's called Beach Balls. It's a tiny score attack game you play with your mouse. Some friends have gotten really impressive scores already!

I made Beach Balls in Love2D, a game dev framework for the Lua programming language. I made all the art myself -- I also made the music in Bosca Ceoil. As small as the game is, it feels like a pretty big milestone to me, because it's my first time making a complete game essentially from scratch. 

I cannot say enough nice things about Love2D. It's extremely light-weight, which is a huge plus after a decade of dealing with large and sometimes cumbersome editors and export sizes. It's also free and open-source, which is nice after watching YoYoGames work for a decade plus to slowly tear Game Maker away from the hobbyists that fueled its initial success. It's instantly familiar and easy to use. Lua reminds me a lot of GML -- once I got a workflow going, it honestly didn't feel that much harder than Game Maker. Even though I was making everything in a text editor! I followed Sheepolution's very good tutorial for the record, at least until I had enough tools to branch off and do my own thing.

I've always used medium-level engines like Game Maker or high-level dev tools like RPGMaker, Twine, etc. until now. I've told friends that the creative work of making and finishing a game is already very scary and demanding, and I don't want to add a bunch of hard technical work on top of that. I also enjoy working within the limitations of high level editors. I don't need to make an engine from scratch to fit a very specific preconceived vision. I find the stories of my games while working on them, within the constraints of my tools.

But also... programming is really fun! I loved it as a kid, even separate from game dev stuff. I think my love of coding got burned out of me for a while after college, just like I stopped reading for five years after high school. I've been having a blast learning Love2D and the Lua environment. I immediately jumped into a much more ambitious project after finishing Beach Balls, and I'm already delighted by the tech problems I've been wrestling with.

There's nothing more real or authentic about making your own game engine in a lower-level framework. The actual story I'm sharing isn't anymore inherently worthwhile because I had to make my own collision code and scene manager. But doing all this stuff is fun as hell for me, and I like the hand-crafted artisanal feelings I get from using all my own code and art and sounds and music.

I've put out two dozen games now -- the creative part of game dev is officially No Longer Scary to me. This is a new skill to learn, a new way to get excited about this hobby that's been bringing me joy for a decade now. I feel good about it!

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