---
title: "Jamming Over: A Postmortem"
pubDate: 2024-03-26
isAgeRestricted: true
authors: bad-manners
thumbnail: /src/assets/thumbnails/blog/crossing_over_retrospective.png
description: |
  A retrospective about my first vore game, [Crossing Over](/games/crossing-over) – albeit more of an assortment of random thoughts than an actual postmortem. **Spoilers for Crossing Over ahead!**
posts:
  mastodon: https://meow.social/@BadManners/113182628352822616
tags:
  - behind the scenes
  - retrospective
  - game development
  - programming
  - oral vore
  - anthro predator
  - willing predator
  - willing prey
  - male predator
  - non-binary prey
  - micro prey
  - soul vore
  - long-term endo
relatedGames:
  - crossing-over
---

import { Image } from "astro:assets";
import TocMdx from "@components/TocMdx.astro";
import imageMarcoConceptArt from "@assets/images/crossing_over/marco_concept_art.jpg";
import imageMarcoFirstAppearance from "@assets/images/crossing_over/marco_first_appearance.png";
import imageBardConceptArt from "@assets/images/crossing_over/bard_concept_art.jpg";
import imageBardAppearance from "@assets/images/crossing_over/bard.png";
import imageBriefcase from "@assets/images/crossing_over/briefcase.png";
import imageBoatWakes from "@assets/images/crossing_over/boat_wakes.png";
import imageLooseThoughts from "@assets/images/crossing_over/loose_thoughts.png";
import imageArchitectureVn from "@assets/images/crossing_over/architecture_vn.png";
import imageTextbox from "@assets/images/crossing_over/textbox.png";
import imageScriptWordCount from "@assets/images/crossing_over/script_word_count.png";
import imageMarcoSprites from "@assets/images/crossing_over/marco_sprites.png";
import imageSceneInFinalGame from "@assets/images/crossing_over/scene_in_final_game.png";

A.K.A. that time I made a game in a month.

_(it really wasn't that long ago...)_

![Banner art for Crossing Over, featuring four screenshots from the game, underneath a card with the game's title and the tagline "a visual novel about death, fishing, and vore".](../../assets/images/crossing_over/banner.png)

<TocMdx headings={getHeadings()} />

## Part 1: Preparations

It all started with an idea for a story. One of many that I had before it got shelved, hoping to one day turn it into an actual story when I had the chance. The initial idea was for an 'endo soul vore' scenario, which I described to a friend (hi, Dee!) back in August '23. Here it is, reproduced verbatim:

> Me: I had an idea a long while ago you may like, but I don't think it's something I'd ever feel like sitting down to write

> Me: Some sort of soul ferry God or spirit that brings souls to the Underworld or something, one of the souls they meet just decides to hang out with them and join them on their job instead of finishing the crossing. They like each other very much but of course the soul can't stay away from the Underworld for too long or it'd dissipate. And if they go to the Underworld they won't see each other again. So instead the spirit/God decides to perma endo them so they can be together forever

> Friend: oh that's so lovely

> Me: Could have the soul describing how lonely their life was before they passed away too, regretting that they didn't feel like they'd accomplished anything. And a sprinkle of thoughts on life and death too

> Me: The soul ferry person would of course be lonely too, meeting new people only to guide them to the Underworld without ever seeing them again, but they can't just shirk from their job

> Me: Just a fun idea, probably the closest to soul vore I'd ever write lol

> Friend: i would love to see it

Of course, I never really went anywhere with it until January '24, when I started to work on a draft for the story. Back then, the story was called "Soul Blues", with the soul character initially being called Fleet – y'know, as in "life is fleeting". By then, I had already worked out a few more themes that I wanted for my story: the soul ferrier had ferried hundreds of thousands of souls before, and would try to learn more about that soul; and the dead person would initially struggle to open up, before reminiscing on their life, and they'd be more ready to accept their death until the moment they fell for the soul ferrier (that part was heavily adjusted in Crossing Over). Still, the project didn't really reel me in, as I felt that I couldn't really articulate the thoughts floating in my head into my usual type of story.

At the same time, I had been following somewhat closely the starting date for eevee's Strawberry Jam. I'd heard about these jams before I had even begun to post content as Bad Manners, but had never engaged with them before. Still, making a game sounded as fun to me as it does to anyone, and doing it in a low-pressure, kink-positive environment seemed like the best opportunity to try my hand at it. Thankfully, I had a few things that would favor my decision to eventually join it:

1. An idea. As I've said, the basis of what would eventually become Crossing Over had been floating in my mind for months. While it remained mostly untouched during that period, I still ruminated on other thoughts, like nihilism and depression. I was just starting on some new medication after a rough period of my life, too, so I felt that there was something that I could use it, as a way to put these thoughts in order – perhaps even "console myself" and work through these emotions, accepting them instead of ignoring them.
2. Motivation. I had a boost in it not only from getting psychiatric treatment, but also from learning a bunch of stuff. I've been getting better at writing in the two years I've been writing (or I'd like to believe so!), and I'd just started learning Blender earlier in January '24. Plus, I had the desire to try out Godot, learning the basics just two days before the game jam started (it helped that I had a heavy background in programming). As long as I could manage the scope well, I felt that I could deliver a finished project in time.
3. Time and energy. Of course, I don't think I would be able to do this project if I still worked full- or even part-time. Despite being unemployed (mostly due to personal reasons), I'm lucky to still have resources to maintain myself for a while. Plus, having just finished two big commissions to my clients' great satisfaction, and then just launched my SubscribeStar, I was feeling more confident than usual that I could pull off such a monumental task.

Despite all of this, I was still unsure if I should really join, feeling that it'd be a waste of time or that I would deliver something embarrassing. But my friend Hans Woofington really encouraged me to move forward, and so, I decided to join Strawberry Jam 8.

Until February rolled around, I refrained from investing too heavily into the conceptualization of my game – only deciding that I would make a visual novel. I spent most of those few days getting familiar with Godot as well as Blender and MuseScore, since I knew that I wanted to make my own soundtrack using their open high-quality sound library. Still, I was committed from the start to the soul vore story idea, and had some vague notions that it would help with the relatively short time frame:

- There would be only one anthro character to model and rig, a process that I predicted would take most of my time. The soul character would be much simpler to work with.
- I wanted to use a pixel art aesthetic, [using a free plugin I had learned about](https://www.youtube.com/watch?v=vzIVn3G1Z2U). After a month of messing with Blender and learning the basics, I knew that I could create the 3D assets myself and make them more visually appealing than if I tried to draw them. I thought that a toonish style would let me "get away" with the beginner quality models and animations – as in, it'd look better given my current skillset.
- With the setting of a soul ferrier on a boat, the environment would be simple (all of it would happen on a boat, with a lot of dialogue between two characters). Writing dialogue has always been easier for me than writing a full descriptive novel with narration, so tackling it as if it were a stage-play seemed not only easier, but it meant that I could focus on my strong parts when writing.

With all of that in mind – and the nagging feeling that I wouldn't be able to complete the project by the end of February '24 –, I patiently waited for the first day to start working...

## Part 2: Organization

Of course, there was a lot of work to do if I was going to make a visual novel all on my own. This included writing, programming, composing soundtracks, art direction and creation (which included 3D assets – from modeling to rigging to animating to rendering –, UI elements, sound effects), creating concept art, play-testing, and so on. In a way, that was a lot of juggle around, as I often wandered between different tasks throughout the project – but that also helped, too. As I had just started on new medication which was helping me with my anxiety, I could focus a lot on each task – and when I couldn't work on a specific one, there were others waiting for me. There wasn't any time to waste! As the month went on, it got easier to switch between multiple tasks, and spend more time working than procrastinating...

But let's not get ahead of ourselves. First of all, I knew that I had to sit down and decide on an artstyle. I was set on the pixel/cell-shaded visual part, so consequently, I decided to commit to a 3:4 resolution for my game – more specifically, 800x600. Despite messing around with Blender, I knew from the get-go that there wouldn't be any time to get familiar with the 3D side of the Godot engine, and all the assets would have to be rendered into 2D and imported as images, so a low resolution seemed like a perfect fit. However, as I eventually learned throughout the process, 800x600 is still quite large – as well as incompatible with modern resolutions, since it doesn't scale too well to 1080p/2K/4K...and still generates somewhat large PNGs. In retrospect, I'd have gone with a smaller resolution, while still keeping the 3:4 aspect ratio for its unique aesthetic. Perhaps 720x540...? Still, I stuck with it.

Similarly, I began thinking about what the game would actually be. I wanted a visual novel, sure, but there are still multiple ways to go about it. I thought it'd be a waste to make it completely linear, though. I knew that, at the very least, it should make the choices of the player impactful. I considered giving it multiple endings – one with vore, and one where the soul actually goes to the hereafter –, but gave up on that, as I didn't want to leave the vore part out of the final experience. Eventually, I settled on less impactful dialogue choices.

I also wanted to break the sameness of the visual novel part with some sort of interactive gameplay. At first, these would be puzzles, and I had the idea for a Genius minigame (repeat the commands), or a Wordle-like minigame (guess the words), in the same way as you would in the Danganronpa series. ...Admittedly, it took me too long to eventually scrap these ideas and go with only a fishing minigame. Which also tied MUCH better into the setting of the game, as the entire story takes place on a boat.

Now that I had a better notion of what I wanted to make for the next month, it was time to do some extremely crucial, yet invisible work...

## Part 3: Research and Concept Art

Research is often one of my favorite parts of writing a story, and this project wasn't any different. I knew what kind of vibe I wanted for the game – some emphasis on depression, with a general uplifting message that life is worth living, despite its inherent lack of meaning. Still, I wanted to see how that kind of message has been used in other places, hoping to get more inspiration for which direction I wanted to take it.

And aside from reading a lot on Wikipedia about how different cultures see the [afterlife](https://en.wikipedia.org/wiki/Hereafter) (such as the distinction in Islam of dunya, the material world, and [akhirah](https://en.wikipedia.org/wiki/Akhirah), the immaterial world), I also looked at some other media. One of these was [Spiritfarer](https://en.wikipedia.org/wiki/Spiritfarer), which I haven't played but know the gist of. Admittedly, my research into this game was mostly to make sure that my game wouldn't come across as a copy of it... Thankfully, it seemed to have its own approach to the Greek myth of Charon, and a completely different representation of the Underworld, while still sharing some positive messages about the acceptance of death. (I don't wanna spoil it, tho)

In terms of themes, I put a lot of research into [borderline personality disorder](https://en.wikipedia.org/wiki/Borderline_personality_disorder) – its origins and symptoms –, reflecting my own self-deprecating feelings. I haven't been formally diagnosed, but I do see a lot of myself in it – and writing/researching helped me understand those feelings better, even if I might end up not having this specific disorder. But a much heavier influence into what would become Crossing Over was a children's book called [Duck, Death and the Tulip](https://en.wikipedia.org/wiki/Duck%2C_Death_and_the_Tulip). It's a short and lovely book, and it made me cry on my first read. It really struck me with its message of death's inevitability and uncertainty, a feeling that my game certainly doesn't do enough justice. I've even incorporated duck wings into the boat's design, as an homage to it. Aside from its bittersweet message,

Speaking of, I did work on some concept art! Including the two characters, the boat, and the environment. The quality of those drawings was terrible (further convincing me to make all the graphics in 3D instead), but it really helped with deciding how to make each element look. I knew that I wanted the environment to be simple, like the inside of a cave, and give the river a striking but single color – the cave portion of Undertale, [Waterfall](https://undertale.fandom.com/wiki/Waterfall), was a strong influence on its look, especially the room with dark floor/walls and cyan water. And the boat, named after the aforementioned "akhirah", was made to look vaguely similar to ancient rowboats used by the Babylonians.

<figure>
  <Image
    src={imageMarcoConceptArt}
    alt="Photograph of a page, with several drawings of an anthropomorphic jackal named Marco, wearing a large coat, a mask, and ankle cuffs. There's also a drawing of a boat named Akhirah in the corner."
  />
  <figcaption>Concept art of Marco and Akhirah. Feel free to judge my awful drawing skills...</figcaption>
</figure>

<figure>
  <Image
    src={imageMarcoFirstAppearance}
    alt="The character Marco on his boat over a pink river, leaning down towards the camera with an open hand to the side."
  />
  <figcaption>Marco's (and Akhirah's) first appearance in the game.</figcaption>
</figure>

Marco's design was mostly inspired by that of [Anubis](https://en.wikipedia.org/wiki/Anubis), the Ancient Egyptian god of the underworld, with his dark fur and very long ears. The golden cuffs that he wears are also a reference to him. But I wanted to incorporate other cultural elements associated with death in his design – the skull-like mask that he wears, and his large coat, are somewhat modern interpretations of the grim reaper (with its skeletal body and dark cloak) – but also because I thought muzzle fangs and trenchcoats look cool, lol! When he eventually takes off his mask (which I had planned to be late in the game, when the soul eventually grows weak), he would reveal his green eyes. I had originally intended for the eyes of the mask to glow green as well, but eventually I settled on the red ones, which I thought ended up looking much better. When it came to modeling his head, it took 4 different tries until I was satisfied! As for the name "Marco", he was named after someone from my past, someone very smart and clever and kind – the kind of person one should strive to be, I feel like.

<figure>
  <Image
    src={imageBardConceptArt}
    alt="Photograph of a page, with several drawings of a blobby and oval character named Bard. There are also a few framed drawings of different angles of scenes taking place on Akhirah, in a river inside a cave."
  />
  <figcaption>
    Concept art of Bard and some screens. I don't think his original look is physically possible...
  </figcaption>
</figure>

For Bard's design, I had a couple of inspirations – the main one being the visual novel [Ghost Trick](https://en.wikipedia.org/wiki/Ghost_Trick%3A_Phantom_Detective), where the protagonist is also a cyan soul (or a ghost, rather). In that game, ghosts look like flaming balls, and for my take on what a soul would look like, I wanted it to feel more droopy, like something gooey that is slowly dripping and disappearing. As I sat down to draw the concept art, I decided to take some inspiration from the look of [a black hole with an accretion disk surrounding it](https://en.wikipedia.org/wiki/Accretion_disk); a symbol that represents how, inevitably, everything will come to an end. Although I flipped that image on its head (and quite literally too!), giving the core a white appearance instead of black. I played a bit with an upper and lower part surrounding that core, making the top one look inside-out (with the use of Blender's "backface culling") to give it a more ghostly look. The name "Bard" has a few meanings – aside from being non-binary (like the character in my mind), it also represents a bard who tells tales, as well as the association with the word "burden" that Bard themself carries a lot of. I knew that I wanted their soul to be very geometric, and I used a few shapes like ovals, sine waves, and circles to create their unique look.

<figure>
  <Image
    src={imageBardAppearance}
    alt="A glowing cyan orb, surrounded on the top by an inside-out dark blue oval, and on the bottom by cyan ribbon-like strands."
  />
  <figcaption>Bard's final look.</figcaption>
</figure>

Both characters underwent several iterations until I was satisfied with them – in fact, I changed them yet again when making the minute-long animation, near the end of the project! Marco especially took most of the work for obvious reasons, but thankfully my friend Hans gave me good pointers on modeling them.

Actually, now that we're on the subject of models, I should probably change sections...

## Part 4: Modeling

There. Still haven't forgotten how to make some text bigger than other text.

I guess I'll start by talking about something Blender-related that isn't exactly modeling: shading. It simply means selecting the materials for all the different elements – colors, textures, etc. Like I've said back in Part 1, I wanted a pixel art/cellshaded artstyle. And to commit to it even further, I looked for palettes to use for said shading. Limiting the choices helped with making things have a unified identity, as well as stick out from the background and other objects. The surfaces are all made of a similar base material, which creates cells based on the light level and then applies a dithering effect between them (i.e. some pixels of each color blend into each other, between two different cells, as old games with limited palettes did to make smooth transitions). They also had different colors under the two sets of lights: one being "white" for the default look, and the other being "blue" from Bard's glow. This helps with the illusion of the soul actually having its own light. On top of that, I also added an outline to most materials, based off the dark color of the material. This kind of breaks the convention for pixel art, since I'm relying on how Blender generates the alpha for those outlines, but it certainly makes objects much more readable. For each outline, I had to handpick values for the thickness and color – sometimes having to deviate from the palette to do so.

<figure>
  <Image src={imageBriefcase} alt="A leather briefcase filled with gold bars." />
  <figcaption>
    A gold-filled briefcase, one of the many items that you fish in Crossing Over. Notice the dark yellow outline around
    the gold bars, and the dark brown one around the light brown bits.
  </figcaption>
</figure>

The individual items that you fish were straightforward to model, using some low poly techniques, and then applying a subdivision surface modifier (to add more geometry and make shapes more curvy, therefore more realistic). For the fishing items themselves, the modeling was done late into development (once I'd started work on writing, which we'll get to in a later part) – so most of my early modeling was into the two characters and the boat.

Speaking of, the "wake" effect that you see sometimes while Akhirah is moving (i.e. the foams behind the boat) was easily a day-long chore. For starters, I couldn't remember the word "wake" – so I've spent an embarrassing amount of time trying to remember it, having to go back and skim through my YouTube history (looking for a Minecraft video showcasing [a mod that implemented wakes](https://www.curseforge.com/minecraft/mc-mods/wakes), haha!). Anyway, it was an interesting experience to implement them, [going off of a tutorial](https://www.youtube.com/watch?v=14SNmHvVBio) and having to get more acquainted with some intermediate-level topics from Blender such as conditional shading and using noise displacement. They didn't turn out perfectly realistic, but I think they made the somewhat dull pink environment of the river feel more natural, and the end result was well worth the effort. In fact, the boat doesn't ever move around in the river – and when it does look like it's moving, it's just a bunch of tricks with the camera and the wakes!

<figure>
  <Image
    src={imageBoatWakes}
    alt="Marco sitting down against the railing at the back of his boat, without a mask and keeping his hands underneath a hovering Bard. Behind him are wakes, being made by the boat moving over the water."
  />
  <figcaption>A late-game shot, displaying multiple light sources and wakes behind the boat.</figcaption>
</figure>

But as I've hinted at before, Marco's model was the hardest challenge. His model is far from perfect – his arms are too short, his feet are just bricks, his thumbs are in unnatural spots, his lips are wonky, and his body often clipped through his trenchcoat –, which is understandable given my inexperience. But most issues I've managed to cover or fix in an image editor. Despite the inexperienced modeling and rigging, he still turned out decent enough to pose around. It definitely taught me a lot about animating, the hard way! At the very least, my amateurish experience was complemented by retro look that I was going for, so I'll take that as a win.

## Part 5: Music

Before I even went too far into modeling, there were two aspects that I wanted to nail down early on: the soundtrack, and the interface. I'll touch on the latter in the next part.

There were two things that I had stuck in my head before February rolled over: the general idea for what the story was going to be about, and a short musical phrase. "A3-A4-G3-E3 / A3-E3-C3-A3". A short and simple sequence in a minor chord, which would serve as the basis for the main leitmotif in the soundtrack. Although I was afraid it would sound too similar to the theme [Hand Covers Bruise](https://www.youtube.com/watch?v=9SBNCYkSceU) in the movie Social Network (although that one actually goes "A4-G3-Bb3 / D3-C3-F2" when transposed, though I only checked way after I'd released my game); regardless, in the end, it was too striking to not use.

I've had some amateur experience writing music before – but not on the scale of 17+ minutes combined over the course of a month, and not with MuseScore! Still, getting acquainted with the software (by transposing an old composition, a few days before the jam) certainly helped me when it was time to actually put it to the test.

When it comes to making music, my process focuses more on individual voices (i.e. each note played by each instrument, including duration and pitch) than harmonies, only falling back to chords in a few cases, such as arpeggios or some fancier harmonization. But sometimes, a chord will simply be the tonic key, or tonic + fifth. I feel that too many voices can muddy the melodies, and make it harder to follow the motions – which, sometimes, can be the desired effect! Percussion is not my strong suit, so you may notice throughout the OST how I often resort to simple (but hopefully effective) rhythms.

<figure>
  <Image
    src={imageLooseThoughts}
    alt="Part of a page containing sheet music, entitled Loose Thoughts, and composed by Bad Manners. The instruments include low trombone, piano, harp, and strings."
  />
  <figcaption>The first musical bars that ever were.</figcaption>
</figure>

The very first track I composed was "Loose Thoughts" – a slow song that starts with a piano and plucked strings. It plays in introspective moments, and it helped me define a few other leitmotifs that would be used ad nauseam in the other tracks, as well as the general vibe. I really dig the orchestral vibe that MuseScore's sound library has to offer, and made a lot of use of violins, cellos and contrabasses in other tracks. Over the first week, I also made "Aboard the Akhirah" (the jazzy song that plays in the more "I don't know if I should trust this ferryman!" moments, with an electric bass and a plucked contrabass before the Hammond organ joins in, and an extended sax solo alter on) and "Fulminant" (the more energetic and catchy main menu song, with a violin and simple drums joined by an electric bass and an acoustic guitar). These three songs really helped steer the general vibe I was going for, in terms of the game's atmosphere.

Then, as progress was made on other parts of the game, and I had a good idea of how the game would be laid out, I added a few more songs that fit each moment. Often building up with the musical phrases I had so far. I created one song for the fishing minigame ("Under the Surface", a silly and almost childish song), another for Bard's traumatic memories ("Scars", a song that personally evokes feelings of grief and desolation that can't be easily consoled away), and another for the intense moment as Marco scrambles to save Bard ("Eruption", an energetic and messy song that relies heavily on GarageBand's automated drums and MIDI orchestra hits to make the moment feel more urgent).

Compared to other parts of the project, the soundtrack probably went through the least amount of iterations – though I kept listening to them on repeat, nonstop, to make sure I was happy with them, and make sure that they looped correctly in-game. The whole reason why there's a "music room" as a post-game bonus (you can find it in the "Credits" screen!) was that I could ensure the quality of the loop.

There were a few tracks that went through a somewhat different creative process. The main one is, of course, "Entangled", which plays during the animation. It wasn't made to loop like the others, since I wanted it to play once while Marco vores Bard. Midway through, the song transitions into a tango (pun intended), playing off the somewhat silly 'choreography' that the pair of characters participates in. I knew that I didn't want to use vore sound effects for the scene, and it was the perfect reason to compose a special track for this special moment. I had originally intended to make a storyboard of the animation; but with the song as the background, I didn't even need it – it was as if the song told the whole story by itself, if that makes sense! It was fun to imagine the vore scene, and then sync the actions to the song itself when animating it.

The second oddball of a track is "Stars". It was supposed to simply be a lighthearted version of "Scars" (I can't help myself with all the puns, sorry), even starting with a glockenspiel like its sibling, and in the same key but major instead of minor. However, as inspiration struck me, and I started adding more and more instruments, it turned into a whole mini-orchestration. The name alludes not only to the other track, but also to Bard's love for space stuff. Emotionally, I relate the song to a little story: at first, the innocence of childhood, which turns into a memory, and the eventual bittersweetness of nostalgia, coming to a resolution which accepts that not only that our recollection of the past is distorted, but that we eventually have to move forward and create new memories. It was by pure chance that this song was made, but then it didn't fit its original purpose of being a happy tune, but something much more grandiose. So I quickly composed the happy "Afloat" – yep, immediately after! It was past 1AM when I was done! "Afloat" ended up as a simple yet cozy song with an acoustic guitar duo. "Stars" ended up being used in the more impactful and uplifting moments at the end of the story.

There was one song that I had planned but didn't make it. It was supposed to play at the very end, when the game was over – and I even thought of including lyrics, too! Sadly, after composing 9 tracks, I had exhausted all my creativity in terms of songwriting, but I'm still happy with the ones that did make it into the final game.

## Part 6: UI and programming

One of the first things I started working on in the project was the textbox. Compared to other game genres, coding a VN is probably simpler – but I still wanted to nail it down, since I wasn't familiar with Godot. Learning the ropes for development with all the Control and 2D nodes would have been a huge challenge if not for the extensive tutorials out there (I relied on [this nearly 12-hour video tutorial](https://www.youtube.com/watch?v=nAh_Kx5Zh5Q) a lot!) – but the basis for the textbox and architecture was done fairly quickly.

<figure>
  <Image
    src={imageArchitectureVn}
    alt="A crude digital drawing showing multiple components communicating in order to bring functionality to the game, with emphasis on the ones named visual_novel and VNInterpreter."
  />
  <figcaption>
    Basic overview of my visual novel architecture. There's a lot that I would have changed in hindsight...
  </figcaption>
</figure>

Which isn't to say that implementing more and more features was a breeze. By the end of the first week, when I was handling the load/save system (which took a LOT of work to get right), I was seriously considering switching to something other than Godot, just because its pain points can be annoying. Meanwhile, its strengths – a robust animation system, good input handling, and easy export to multiple platforms – incentivized me to stay. After all, I'd joined the game jam mainly as a learning process, and for better or worse, I was definitely learning a lot.

<figure>
  <Image
    src={imageTextbox}
    alt="Screenshot of a game screen, with a blue text box displaying the name 'Bard' and the parenthesized text 'Okay, that's enough...'. The background is completely gray."
  />
  <figcaption>One of the earliest implementations of the text box.</figcaption>
</figure>

Still, I managed to stumble my way through some messy logic, often going for quick and messy fixes because of time constraints. With the basic visual novel architecture and load/save system in place, I added more features – a main menu, prompts, autosaving, music support, backgrounds, text log... When it came time to implement the fishing minigame (by that point, I had scrapped the idea for other puzzle-based minigames), it thankfully wasn't too bad to implement.

I knew from the start that I wanted a game that ran in the browser (although if that proved too cumbersome, I'd happily ditch it and only release a desktop version). And I also wanted it to support a wide range of devices, to be as accessible as it could be – mouse only, keyboard only, touchscreen, controller. This choice influenced how, for example, the fishing minigame works (with two sets of controllers, depending on if you're using a mouse/a touchscreen or a controller/arrow keys). There was originally going to be a launching mechanism for the net, but I opted for the simpler drag-and-drop. Less models to make, less code to write, and less testing to do.

Getting the vore animation to work was very frustrating, since Godot's support is very barebones and not well optimized. But at that point, there were only a few days left, and I wasn't going to switch to a new engine. The version that eventually was released for the game jam had some stuttering issues – and the eventual 'fix' (simply handling audio and video streams separately) wasn't really ideal, but it was the best I could come up with.

## Part 7: Writing

At this point, one might wonder why I took so long to reach the "writing" section of my postmortem, given that: a) this is a narrative-focused game; and b) my main work so far has been vore stories.

Well, the truth is that I only started working on it quite late into the project... As in, more than halfway into it! Not that I intended to. I've tried to make a few drafts of the story early on, but I was struggling to figure out the vibes I was going for. In fact, it even took a while to come up with the name "Crossing Over"! I settled on it for a couple of reasons – because it represents a journey not only of going to the Hereafter, but also of pushing forward despite feeling chained to the regrets of the past. Plus the word "over" is an anagram for "vore", and that played a small part in it. Lmao

So instead, I've left the actual writing for late into the project – once I had established a visual and musical identity for the game, to work off of. Normally, I wouldn't recommend pushing back such a pivotal part of development. But I was confident that I could make it in time, given my previous experience. I thought that the script-like format would be easier for me to make than a full-fledged story.

And my bluff eventually paid off, as I managed to ruminate on the setting and the characters and their arcs, and I was a lot more confident when it was time to put those thoughts into words.

<figure>
  <Image
    src={imageScriptWordCount}
    alt="Screenshot of a text editor containing the start of the game's script. It shows that there are 14139 words in the document."
  />
  <figcaption>Word count for the script's draft, with ~1000 different lines, and ~13000 words of dialogue.</figcaption>
</figure>

Aside from the unique challenges of writing for a visual novel (perhaps more akin to stage play direction, having to integrate audiovisual aspects into the script between the lines, with the added challenge of doing it with algorithmic precision), I generally followed the same process for regular stories. I wrote an outline first, breaking the story into different parts and deciding what happened in each one – and choosing the differences between each route, adjusting it until I decided to have four different ones.

The main drive of the story was the character's both slowly deciding to commit to vore, which is implied perma endo. I wanted the vore to be accessible even for people who don't like vore (and given the feedback from non-vorarephiles on how cozy it felt, I think I succeeded in it!). As for themes itself, obviously I wanted to deal with acceptance of death, as well as some reflection on my own experiences of self-doubt, depression, and dealing with trauma. I wanted to reflect on those feelings in a state of relatively emotional stability, where I could have better hindsight and acceptance about the way that I felt. Mainly, I wanted to show people that these feelings (which are almost never articulated out loud) are not unique to them, that others can understand what they are feeling; and that they aren't wrong or broken because they feel this way. That they might feel guilty, but that guilt is misplaced; that they are still deserving of love, no matter how debilitating their self-deprecating thoughts can be.

My intent was to make Bard relatable (and making them implicitly non-binary, as well as all the people in their life, was part of it), although a bit anxious and entitled. The "fake amnesia" narrative device served as a way to push forward the narrative in small steps, and explore their mental state, even though I think "character with amnesia" is a common cliché in visual novels. I tried to give it my own spin, but I might've just reinforced the trope instead, lol! I tried not to rely too much in Bard's inner thoughts, trying to focus more on "show, don't tell", unless it was inevitable to convey some crucial information of their mental state. The last third of the game (when Bard falls into despair, then jumps into the river, and finally gets vored by Marco) barely features inner thoughts, reflecting some of the distancing that they put between them and Marco, as well as their own feelings. Although it may be hypocritical to boast about trying to "show, not tell", when I didn't have the time to actually make the animation of them jumping into the water...

Marco, meanwhile, reflected some of my more positive outlooks on life and nihilism. In a way, he was supposed to be an ideal – a model on how to live optimistically, in my opinion. Early on, I struggled with his personality, as he'd often be too confrontational about Bard shutting themselves off to him. I knew that the key to the story would be the blossoming mutual attraction between Bard and Marco (which culminates in the wholesome and mutual vore scene), so in the end, I've settled on making him a smart and curious soul ferrier, who wants to learn as much about mortal life and how it relates to his own thoughts about his unique nature and relationship with death. And, as always, even he shows some insecurity, such as about his looks or his knowledge, and especially his feelings towards Bard.

Being set in a limbo-like location – between the mortal life and the Hereafter –, one theme that I toyed with is dealing with Bard's and Marco's unique circumstances as a kind of prelude to a second death, and the uncertainties surrounding it. Bard, still not having overcome their physical death, has to come to terms with the unknowability of the Hereafter (or even about being vored); and Marco, fully aware of his fragile nature, also has to deal with the consequences of shirking his duties vs. denying himself from enjoying life, knowing that he doesn't even have a "Hereafter" to look forward to and that his memories will only last for as long as himself. This kind of tension serves as a metaphor for real death, and how each character comes to terms with what meanings (or lack thereof) they can take from life.

As for the fishing minigame, it was what I eventually settled upon after giving up on making several different puzzles. Both for time constraint reasons (and the Godot engine really helped with all the in-built physics simulation...!), and because I thought it would be more consistent and engaging than a few slow word-based minigames. Frankly, I dunno why it took me so long to settle on a fishing minigame, given that I'd decided from the start that the entire story would be set on a boat! I created a bunch of objects of desire (somewhat inspired by the "treasures" that you steal in Persona 5, a game which itself has a lot of references to psychoanalysis), often for humorous or referential reasons, and tied them all together to the characters – but mostly Bard, in a way that develops not only them but the people they knew (the different "routes", per se). Coming up with these objects was what eventually led me to Bard's love for space (which relates to their body being inspired by black holes, too), tying that love to certain story beats and deepening their character.

As I've mentioned back in Part 2, I wanted the choices the player makes to be impactful. At first, there were going to be much more complex conditions to reach one of the routes (the cousin one), and slightly different endings. But since most people would only play the game once, I chose to make these routes more homogeneous, so that they are all valid/canon conclusions and players aren't unjustly punished for accidentally picking the "wrong" route. On the other hand, they all deal with different moments and people in Bard's former life – and the extra lore rewards those who replay the game. They all follow a similar structure, with four "forks":

1. First, Bard relates some possibility of afterlife to someone in their life;
2. Then, they share a memory about that person that gives a hint into Bard's mental state (while also hinting at a darker memory);
3. There's the reveal of the abusive experience that solidified their insecurities;
4. After being rescued, Bard explains how their life was impacted negatively, and Marco finally puts forth his own insight with a message of love.

(Perhaps I should record a video showcasing the differences between all of the routes...?)

The "cousin" route was initially intended to be a complex route, but was eventually adjusted as an option on fork 2, as an alternative to the route picked in the first step. It's also somewhat different from the rest – instead of them being an abusive figure, they were a tragic victim that nevertheless reinforces Bard's self-harming tendencies –, thus giving a stronger hint into Bard's own death.

Most of these narrative decisions came about in the "outline" portion, to decide how each character should act. Their actual personalities came about when I was writing the script's draft, which would eventually become the actual lines in the visual novel. The draft also included how each character reacts ("Marco feels dejected", "Bard blushes", etc.). These emotion prompts were very useful for posing the characters and creating sprites – I knew beforehand if I had to make them look happy, confused, sad, and so on. I made the sprites in one go, before the draft was implemented as a visual novel. Although later on, I had to redo all of the sprites, because I messed up the shaders...oops.

<figure>
  <Image
    src={imageMarcoSprites}
    alt="Three screenshots of Marco. From left to right: tilting his head and holding a closed fist underneath his chin; facing down and putting his open hand over his chest; partially covering his smiling snout with his open hand while facing forwards."
  />
  <figcaption>A few of Marco's sprites, respectively named "curious", "clutching chest", and "playful".</figcaption>
</figure>

There's a lot more that I could say about the story, but it's kinda hard. Writing this was emotionally taxing (I was literally sobbing when I finished it). It always gets me when Bard says "Thank you." at the very end, and I dunno why...! Funny enough, it's hard to explain what I'm writing – instead of explaining which emotions I'm trying to rouse, it's much easier to just rouse them in story form. The story was very personal and dear to me – I've added lots of moments that would make me laugh, cry, ache, and reflect. I could write ten times as many words to go over everything that went through my head when I worked on it. And in some ways, I think this is the best that my writing has ever been.

## Part 8: Final Days

With the first version of the script done, as well as most music and character sprites, I've spent the final week putting everything together. I've adapted the draft of my script to fit the format that my Godot code expected, while also creating background sprites (stills and animated) and adjusting individual lines as I worked my way scene-by-scene – while also fixing the occasional bug here and there. It was at this point that all the separate things I had really started to feel like a game – and I was proud of it!

<figure>
  <Image
    src={imageSceneInFinalGame}
    alt="Marco and Bard sitting in the boat, with two sprites overlaid. Within those, Bard is taken aback and sweating, and Marco is having a hearty laugh. According to the textbox, Marco says: 'Haha, of course not! How would a butt plug bite a fishing hook?'"
  />
  <figcaption>
    A scene from the final game; finally putting UI, dialogue, sprites, music, and backgrounds all together.
  </figcaption>
</figure>

With a single setting, it was easy to make several animated backgrounds and work with interesting angles and poses – a process which certainly helped me get used to Marco's rig, for the greatest challenge to come. I often replayed each chapter up to 12 times (at least 3 times for each "route"...!), to make sure the dialogue was to my liking, and that effects like bouncing sprites or screen flashes/transitions looked proper. I worked on each scene in sequence, only going back to fix the occasional set-up in the lines. It was a slow but satisfying process.

With about 4 days before the game jam's deadline, I had ~95% of the project done – I had just added support for sound effects, and only the animation remained to be done. My friend Hans had asked to playtest it, and I wasn't sure I would be able to handle the feedback in time. But at his insistence, I decided to let him play it, as well as our friend Desiran. I wasn't sure how useful their feedback would be, but they managed to give some pointers on some dialogue and bugs, which were relatively easy fixes. And I'm glad that they did play it beforehand, because it meant I could fix these issues that I missed before I ended up publishing my game...!

And the animation was still a big challenge. I had set aside the last 4 days of February '24 to work exclusively on it. I imagined that it would take a long time to get a minute of animation done – especially since I had to rely on it syncing up with the music that I had done ~2 weeks prior, at that point. But it really wasn't as bad as I thought it would be. I honestly had a blast working on it... And I didn't even need a storyboard! After listening to the track over and over, I had a pretty clear idea of how the scene would go in my head. In just two days, I managed to animate everything (and even dedicate some time to make a nice internal shot, hehe), fix the occasional clipping, and render it all. After struggling to deal with the .ogv video encoder, I managed to get it to work relatively well in-game (with a slight hiccup in the audio that would eventually be fixed in a later release).

Nevertheless, it was done. About 250 hours of work, and I'd done it. I'd finished my first game...!

## Part 9: ...Then What?

I was pretty restless after finishing my game. I'd finished it on the 27th (two days before the deadline), but I was too nervous about releasing it, and decided to leave that for the 28th. A part of me felt that I had made something special, something I was really proud of – and another was very scared of how other people would take it.

But quickly enough, that anxious side of me was proven wrong. People I knew and people I didn't know messaged me, telling me how much they enjoyed my game. How they've never played any vore-themed game like it, or how they've never seen something that represented their emotions so well. Other people who needed a message like this in a tough moment of their lives. They were touched by the story of Marco and Bard, and in turn, I was touched by their comments. That alone made the month-long effort worth it.

And I got some criticism, too, especially from other jam participants who were rating the other entries like mine. I'm glad that I did, though! While still generally positive, a lot of the things they pointed out were definitely weaknesses in my final project – for example, how Marco's attraction to Bard was a bit unrealistic, or how the fishing net looked out of place compared to everything else –, and I definitely agree with them! It certainly gave me pointers on how to try to make even better content in the future.

Although now that it's over, I can't help but feel kind of sad. My depression got worse through the first weeks of March '24 – and I felt guilty that I was feeling down after such a self-accomplishment. It's hard to say why. Maybe it's because I can never hope to make something of this magnitude again. Or that all of my regular writing from now on will pale in comparison to Crossing Over. Or that I can't share these accomplishments with my family and non-furry friends. And that now I have to work as hard as I have for the entirety of February to be seen as valuable by others.

I know it's ironic, given the messages I tried to convey in the game – that one's accomplishments don't make them deserving of love or not. Maybe it's hypocritical of me to feel down, especially given how well it fared in the game jam, ranking at #1 in Narrative and #2 in both Sound and overall. Well, technically it ranked #1, but only because Itch's ranking algorithm heavily penalized [the contender, which was a whole album of goodies](https://itch.io/jam/strawberry-jam-8/rate/2513403). I think it deserved to be the winner of the category, and I'd still be glad to simply get second place!

Nonetheless, I can't deny that I feel this way. I've been trying to write more stories since I launched my game, but I can't seem to do anything right (other than fixing every bug I could find in Crossing Over). But maybe I just needed to take a break after working so hard, and not judge myself too harshly over it...

Well, I managed to finish one other thing, at least: this postmortem! And despite this current slump, I still want to make stuff – more stories and, maybe, even more games. I know that these negative feelings will fade from memory, and that I'll remember this project fondly for months and years to come. I want to make more art – not just for myself, but for others. I want to improve my skills, and I want to bring people joy.

At the end of the day, I would be happy to become even a fraction of who Marco was for Bard in their darkest hour.

---

Oh, hey, I didn't expect you to read all of this! I hope it was enjoyable. By the way, since I first wrote this retrospective-slash-postmortem, I've [released the source code for this game](https://gitgud.io/BadMannersXYZ/CrossingOver)! If you are interested in an even more hands-on look at how it was made, or want to make your own visual novel in Godot, feel free to peruse it to your heart's content.
