Another 6 months, another LITHOBREAKERS jam. I had the nerve to submit two games this time, and then had some leftover thoughts of the process.
This won’t be as tight as my previous postmortems. There isn’t a formal treatise on an idea or Point like I had with Diet of Worms and my previous projects. Instead it’s more just me talking around things that came to mind as I was making them.
Zøe’s Zone
I had a single goal in mind for the 3rd jam: I wanted to make a game with other people. Diet of Worms was something I’d made with someone else, and that left me with the unyielding desire to do it again. Making games solo is fun. I will never stop making games solo. But just that once or twice time you make something with another artist, ground-up, and not just tacking some of their work in at the last minute, you never want to stop. I love other people and people who can do things I could never dream of doing.
David and I made an agreement right after the second jam wrapped that if we didn’t have other projects we were working on, we’d do something together. When this jam rolled around, he was down to be a programmer for Ren’Py. Shortly after I roped in Wren to be our artist, because I wanted something more exciting than my typical dithered backgrounds with no portraits.
This was a pretty interesting project to be on, because as much as I had practically all control over the writing, which then meant I had control over what assets would be around and why, I was very much in new territory of what those would actually be. With Diet of Worms, me and Wren both have understandings of what a HTML page can or can’t do.1 Now, I hadn’t a single fucking clue what Ren’Py was capable of. I know it can show text and images. That’s about it.
The majority of the project was me pinging David and asking, hey, is this possible? Which I’m sure came across as someone asking: Hey, could we, like, have a web page with a red background? And maybe even a different text colour? Or maybe, and I know this would probably be really difficult, a font that isn’t serif?
I’ve often joked that I’m one of the only devs making VNs and VN-adjacent stuff who hasn’t made a game in Ren’Py. I guess that’s no longer true, since I spent a good amount of time in-engine.
And I fucking hated it.
It felt like every design sensibility I had was rubbing against how Ren’Py worked. All text being wrapped in quotes and requiring escapes. Not reading files that start with a number. Just, refusing to work with built-in saving once you go even slightly outside standard game flow. Or have the audacity to save an object. It’s probably notable that some of my favourite engines, such as Videotome and inkrunner, were made with varying levels of make-something-that-doesn’t-work-like-ren’py motivation.
But, it also feels quite clear that Ren’Py was designed for a single type of game and a single type of experience. That’s not necessarily a fault against Ren’Py itself; many engines are built around one use-case or mechanic execution, and using engines with such restrictions is something I recommend to anyone who will listen. Ren’Py is for the “standard” (at the very least, mainstream) VN experience, where a fan will go in pre-expecting certain features and mechanics. Quick-saving. Backtracking. Skipping branches you’ve already read. It’s possible to make Ren’Py do a lot more things beyond that, primarily through python scripting and a host of community-made plugins.
Because of wide-spread adoption and support, this put it in a position of becoming the “Unity” of visual novel engines. The engine that can (probably) handle whatever visual novel experience you want to make, but won’t do it to the best extent, with bizarre edge cases and hacks to make it suitable for your needs. I really dislike engines that try to be a one-size-fits-all approach to game development,2 rather than just doing one thing exceptionally well. I get the desire (and to some extent, need) for that kind of engine, but, almost everytime I’ve been working in one I’ve had my grievances, often ones that go beyond just the engine itself. I do not like Unity-ism.
That said, I also feel it’s a little unfair to compare Ren’Py to Unity in strict terms. Unity is a closed source monolith developed and maintained by a multi-million dollar corporation; Ren’Py is an open source project headed by one dev and a collection of on-and-off contributors. Those are very different circumstances, and labeling Ren’Py as some Great Evil that’s suffocating the visual novel scene with terms and conditions just isn’t true.
I think the proper reason that Ren’Py’s grown into this position as the Unity of VN engines, is instead the majority who use it.3 For some reason, no consideration is ever given to other engines, and this mindset then extends to the actual games people make. Instead of designing concepts entirely on their own potential, they’re squeezed through Ren’Py’s limitations and are often weaker as a result. It’s just a shrug and T.I.N.A., that this is simply what visual novels have to be like. I barely even see Ren’Py games playing into the engine’s strengths. Rather than being judged as what it is—a visual novel engine for creating a very specific style of visual novel—it’s recommended as the one-size-fits-all for games with text and images and branching, mostly on popularity than anything else, putting it in a confused spot where everyone acts like it’s something that it really isn’t.
Other engines are then considered inspiration, rather than an actual viable tool to create games in. Then if those engines are used, there’s a constant comparison of “this doesn’t work like Ren’Py, and therefore, this is bad,” rather than taking two seconds to step back and engage with an engine as intended.
It’s to the extent I’ve seen people take the design and Aesthetic Vibes of smaller engines, and backport them into Ren’Py as themes. Why? What’s stopping you just using the damn thing? Is wrapping everything in speechmarks that then requires a host of special characters for anything even slightly non-standard in your writing just that appealing to you?
And then, being mean, the default style of Ren’Py just looks like shit, because it’s not committing to any certain style. It’s trying to be as generic as possible, I’m fairly sure from external pressure from the people using the engine. About half the effort I see from Ren’Py devs is trying everything to make it not look like Ren’Py. Stark contrast to other engines that often are proud of their look and how identifiable games made in it are. Unity-ism is a curse.
Anyway. Enough bitching. Let’s take a minute to admire this image on Ren’Py’s Wikipedia article before continuing.
David offered up a smorgasbord of potential mechanics we could play with that he’d used in previous projects. One of them I’d had my eye on since playing Requiem for Richland Mall, which was switching character perspectives. In my usual style, I tried stripping back as much as I could until I hit a wall, if any. I decided to just have the POV swapping mechanic, and have everything else run on an entirely linear story. I got very far with that alone, and the game’s direction was set.
For Zøe’s Zone, I wanted to do half of a love letter to the kid-centred MMOs I used to play when I was younger (also taking advantage of Wren’s strengths as a 3D artist, and their own experiences with these games), and half reflection on the absolute hell that was being a girl in highschool. It might not be easy to tell from the setting and the struggles and the arguments and the ultimate fate of literally everyone, but I didn’t enjoy school. Highschool was, by far, the worst of it.
Each of the girls were, in effect, myself at that age spilling over three people in varying degrees. Angela sticking to something unpopular despite everyone else rejecting it. Matrix for fairly obvious feelings on gender and c/overt bullying that sounds unbelievable. And Georgia, you might be surprised, was far more like myself than I would have admit at that age. In particular though, I wanted to put as much emphasis as I could how much they were a product of their environments. My hope was for people to read two lines of dialogue from Georgia’s parents and go: Ah. I see.
I did have some doubts over the writing style, however. I started off going for my typical voice in first person. On a technical level, this worked well enough. Flowery bullshit that’s competent enough to wank myself to sleep over the thought of being a Good Writer with. But, it’s not how a 14 year old talks. This isn’t the running dialogue in their head. If it was, they’d be trying far too hard, or imitating whatever YA book they read last, or poorly copying stand-out lines in a classic they’re probably too young for and not really understanding the context of it.
I didn’t really want to go to that extent. The problem with writing like an imitation of a 14 year old is that, you know, it sounds like a 14 year old. And god bless them, but most of the time you’re not getting compelling prose.4 This was the tension I was sitting with. If I was “accurate”, it would be an annoyance to the point it’s a distraction. If I was artistic, it would be an annoyance to the point it’s a distraction.
And then I put it in second person. And then everything worked.
Rather than the characters themselves saying these things, it’s some nebulous other party doing it. Those aren’t their words; their actual voices come through when they talk. It also added a nice layer of disconnect that paired well with the mechanics. We’re from the POV of the girls, of course, but we’re swapping between them as and when, with a single constant between them. You.
Well, wasn’t that delightfully easy.
It answered part of a question that I don’t get often, but when I do it entirely stumps me. Whenever some asks something in the vein of process or approach, I’m like, fuck if I know. I’m just moving my fingers and stories come out.
At the very least, something I’m constantly thinking about is how everything implies everything, particularly the actual presentation of the text itself. What does being in first person actually tell the reader? How does this rhythm and rhyme tie back into the story? It sounds basic as fuck when you put it like that, but it’s a surprisingly powerful tool. It breaks you away from the idea of “good” and “bad” writing, and instead that constructing your prose in specific ways will have specific effects. All writing is good if you know how to use those constructions effectively. If it pisses you off, and it’s engineered to piss you off, that’s good writing.
It’s a similar approach I have to designing mechanics in games, as well. One of my first thoughts is always the narrative implication of what you’re actually doing. Sometimes you can just shut your brain off for a dumb action game, sure, but the really good stuff comes from deconstructing or pushing even further into that, I feel.
I had quite a fun ending to this project, of copying everything to script files, double checking which character emotions were used and when, and then just putting my hands up and going, alright, cool, everything else is on you. I fucked off to ArcTanGent as soon as the writing was pushed. It was quite refreshing to just hand it off to someone who actually understands how Ren’Py works and has years of experience in making it not look like Ren’Py. Which isn’t something I feel should not be the hallmark of an experienced Ren’Py dev, but I digress.
Despite my dislike of Ren’Py, I really like how this game came out. The topic’s something I’ve wanted to cover for a while and came out exactly how I wanted. Wren’s art is gorgeous and hits the late-2000s vibe perfectly.5 David, of course, is the entire reason the game even runs.
The biggest problem was that I’m a fucking idiot.
I’m an idiot because the POV switching—you know, the entire point of the game? The mechanic that locks off 2/3rds of the story if you don’t know about it?—wasn’t signposted at all. I just assumed people would read my fucking mind and know how to do that, apparently.
The first victim to this was Renkon, who did a lovely thread playing through the game with great reactions, and then reasonably concluded that the game ended after Angela’s route. That’s when it fully sank in that this was a problem.
The worst thing, I hate tutorials that pull you out of the experience. And being a stubborn twat I tried to solve this issue without putting a signpost right at the start telling people that you can POV switch by clicking on the account username.
Fix attempt one: add computer-styled text on the game page cryptically referencing account switching. This probably didn’t do anything.
Fix attempt two: Add an update box on the game page that says that “profiles” have been fixed, directly referencing clicking the account name. This probably didn’t do anything.
Fix attempt three: Mention Georgia’s route in a comment. That saved at least one person, according to a reply.
What to learn from this? Just put a god damn tutorial in your game. Don’t be like me. I don’t like tinkering with older projects for a variety of reasons, so I’m just going to leave as-is, but it was an important lesson in walking the line between spiting the player and spiting myself.
Two Games? In This Economy?
While I was at ArcTanGent with Wren, we somehow got onto the topic of Heaven’s Gate. I’m not entirely sure how or why, but I then mentioned how they still have a maintained website and email address, and that people have gotten replies when they tried contacting it.
Wren then said, how fucked would that be? Your cult just mass-suicided off the planet and you’re still stuck here answering emails as your day job. I concurred. It was fucked.
And then I thought, hey. Wait a minute.
I tucked it away as a story idea. I didn’t have much for plot beyond that, and once I was home, it started to form itself into a small interactive piece. You’d be the guy answering emails, with you physically typing them out key by key. With us well after the submission date and the awards two weeks away I figured, alright, if I can get this done in a day,6 I’ll submit. If not, I’ll shelve this for a bigger project.
Finishing it was quite good for me. Flexing some older skills was nice and a reminder that I still can, after being stuck with some bigger stuff for a while, pop out a quick game to scratch an itch. It’s also good for the actual idea itself. Sometimes when I’m in the process of making something, or sketching out more ideas about the thing (as is usually the case, I’ll be doing this while I’m writing it), I’ll come up with more ideas and ways to extend the storyline being made, or entirely new lines using the setting. In this case, I didn’t, and I was happy to leave it as a self-contained one-shot.
And, it was nice to see that I could, even in a rudimentary way, make something engine-like from scratch. The code that EE runs on can handle an arbitrary number of emails, and emails with an arbitrary number of lines to hit enter on, and it was pretty easy to add or remove emails with one JSON file. It’s neat! I’m a little proud of myself.
There isn’t much more to talk about. The Sect of Solar Starlight is in California because of course it is. Joshua has to keep answering emails or everything crashes down on him. A bit like all of us.
I liked making it, people liked playing it, but I’m not tempted to do anything more with the premise. Temptations can grow over time, but for now I like it as-is.
i liek libobeekers
I also like LITHOBREAKERS.
I’ve mentioned this more than enough times before, but the whole process of an anonymous jam and making things as a little community together is such a nice feeling. There’s the complete freedom of making whatever the fuck you want, even if you fully intend to claim it afterwards. The process of trying to figure out who made what is an ongoing puzzle you end up roping a handful of people into, who themselves are trying to throw everyone off their own games. We now have a bot where we can post anonymous messages on Discord which added an entirely new dimension to the thing.
I think there’s also something to be said about this being a regular event, and something I work into my usual dev calendar. I see the theme reveal approaching and go oh, shit, it’s time to make something. Obviously, I don’t need to, but this does so many good things for me, why wouldn’t I?
In the middle of this jam, the paypro bullshit kicked off. OSA was implemented the next day. It knocked me back, as it did for a lot of us, but having that anchor of LBK kept me going through July. And as August came along, we had a full and finished game. And many other full and finished games to play ourselves. For a few minutes, none of the bullshit mattered.7
Make things with people. Parallel-play make things with people. It’s good for the soul, and it’s all that will be left once this shit’s over.
-
Or more accurately, what we were capable of doing with a HTML page. ↩︎
-
Except, for some reason, Godot. I think this is down to Godot working in very similar ways to how my brain does. I’ll probably have more thoughts on this once CHILDREN OF HELL is over the finishing line. ↩︎
-
And I’m certainly not above throwing shade on the mainstream scene of English VN devs, especially in light of how more than a handful of them behaved during the itch.io adult content fiasco. ↩︎
-
Also not to say that this can’t be done and still be compelling. To do that myself, I’d need to commit to doing deepdives on fanfiction published in 2011, a broad read on YA popular in the moment, and re-familarise myself with how kids on Facebook spoke to each other back then. I did not have the time to do that while being the bottleneck for everyone else on the project. ↩︎
-
This is where I’ll confess it actually took two days. ↩︎
-
It would also be remiss to not mention how much ArcTanGent helped with this as well. Very nicely timed. ↩︎