Posted April 22, 2023 by Ebbasuke
For this O2A2 VN Jam, I wanted to make a game with familiar features to keep things simple. Can't remember where I got the idea for a pirate theme, but I wanted to explore more about writing letters as I'd done in The Fall of House Misra. This was my plan:
I listed also a couple of new features to try and learn:
This was actually the idea for last year's O2A2 jam, but since I ended up making something else back then, I stashed this idea for this year. I had done all the preparation last year (written an outline, looked up promising CC0 assets, ...), so the beginning was easy.
Schedule-wise I had some overlap with visiting family, but I wasn't worried about losing a few days of dev time. (Oh how that would bite me in the back later.) I started work on Thursday (almost a week into the jam) and wrote the story to about 60% done.
I used mostly Google Docs (to keep up with word count and interpolation) and Twine, though I implemented the story quite early to Ren'Py.
I used interpolation to recycle words and phrases that were used often and to save words on long names, like "Commander James Thorne" became just [commander!t]
.
I wish Google Docs had a way of commenting out words from the built-in word counter... It would make counting interpolated words much easier. I resorted to color-coded asterisks and my own short-term memory.
Then I got COVID.
I was bedridden for the weekend, but since my symptoms weren't that bad, I decided to continue my work on Monday. I used Mon-Tue to write and implement the story.
I was supposed to use vintage CC0 illustrations to make the art, but I wasn't that inspired about it anymore; I wanted something colorful. So, I decided to draw the art myself. I did use some of the CC0 illustrations for the main menu graphics later on.
I spent Wednesday drawing the main art assets for the game (background and sprite). I used CSP's 3D models to figure out a nice angle for the scene.
Thursday was the day for implementing the graphics. I had a plan of animating the NVL dialogue box to show/hide the First Mate's shadow (to "save" on asset amount and to be able to animate the Captain's writing hand), but I couldn't figure out how to make it work. Plan B: I made a black Solid and animated that to hide the First Mate's shadow.
I hadn't actually given much thought to how to show the First Mate's dialogue, but I decided to use a simple speech bubble for the ADV dialogue box. It's a bit too big for the smallest dialogue, but it gets the job done (though it tends to break if I tweak UI stuff and reload the scene. I just hope it doesn't do that to the player!).
I could've used Ren'pyRemix's speech bubble system, but setting it up might've taken too much time for just one speech bubble. I also considered updating my Ren'Py to the latest version which IIRC has a new speech bubble system, but I have other unfinished projects using the 7.5.1 version, so I didn't want to mess with that.
Then I faced another problem: I needed a third dialogue box. I hadn't planned on making separate "epilogue news", but the story felt better with them... and they needed their own NVL style. I dreaded the idea of programming another dialogue box... but I did it!
(These are in the screens.rpy
, near where the default nvl_window
and nvl_dialogue
styles are:)
However, my new fancy dialogue box style was buggy: it carried over when scrolling back to the previous dialogue (for some reason it didn't want to revert to the default one), so I had to disable rollback from the epilogue onward. Sorry about that! And to add to that, I noticed that when starting a new game after a run, the dialogue box style wouldn't revert back to default either then! So, I had to code another style for the letter NVL mode.
Friday was mostly for making audio, finishing touches, and fixing bugs. I wanted to pay special attention to the audio since I wanted to use cannon fire, and I didn't want to explode my players' ears. I watched Tim Reichert's VNConf talk about audio optimization and used his tips on making the audio ear-friendly. I like to err on too quiet rather than too loud.
A new feature I tried was to use quill writing sounds as voice "bleeps" for the main character. I hadn't done any voice-related work on Ren'Py before, so it was a fun experiment. I wanted to randomize the sounds to avoid repetition, but unfortunately couldn't make it work. I picked a sound that wasn't too irritating to hear repeatedly.
Then I had just the UI left to work on. I originally wanted to use the game BG and sprite as the main menu BG, but I didn't know how to seamlessly make the game switch from the main menu to the beginning of the game with the same graphics (without any quirky transitions), especially if I wanted to animate the hand later. The toll of devving while sick was also affecting my energy, so I decided to just use the CC0 illustrations I had collected before. It turned out to be pretty nice, and I carried the graphics over to the Itch page, too.
I ended up publishing the game comparatively early and got some well-earned rest.
I feel like after this O2A2 jam I have explored enough of the multiple-branching micro visual novels, as well as the letter-writing format. I might use those features in a later game, but at least now I feel like trying something else. Maybe a kinetic novel, or something more linear. I might still use interpolation since it's a feature that works really well with the O2A2's 1000-word limit rule.
I'm also beginning to think that game jams might not be good for my health, or then it's just that I was sick while participating in this one. At least during the longer jams, I notice I'm "too into" the jam and everything else becomes a blur, affecting my well-being. I might take a break from game jams for a while and concentrate on my unfinished projects. It's just that jams are such a good source of motivation...
I also learned that I keep forgetting things I've already done in my other games! They are small things, like how to make the sound fade in/out, and how to make the dialogue box dissolve, but they add up to a considerable amount of time spent when jamming. It's frustrating since you know you have done it before, but just don't remember how...
I'm planning on posting more devlogs in the vein of "Note-to-self" that cover some basic things I like to do so that next time I'm wondering how to set the volume bars on settings to 60% I don't have to go googling that (again). Maybe they could be useful to others, too.