Post Mortem - Story of a Mother (visual novel)
Team?
Originally, I was going to participate in the jam with a team, but everyone had so much school stuff to do, so it wasn't certain if the team would get formed. In the end, the team was not to be, so I decided to tackle the jam by myself. I didn't go for the Compo, because I knew from experience that I'd need all the time I could get to finish a visual novel alone.
1st Day: The Planning Stage
- Game type: Visual novel
- Game engine: TyranoBuilder
- Theme: something cyber punk-y
When the theme came out, I wasn't too pleased. "Your life is currency" didn't sound like an easy theme for a visual novel, but I started anyway.
I scrapped the first two ideas just because I thought someone else might do something similar: 1. The player can buy cybernetic body enhancements, but he'll pay for it by getting older. 2. The player can buy cybernetic body enhancements, but he'll pay for it by exchanging his remaining years, making him die younger.
I settled on the third idea, which was the most interesting to me:
- The player can buy cybernetic body enhancements for himself and his dying mom, but he has to pay for them with his memories. The older the memory, the more money you get for it. The player would be presented with dilemmas, and he would have to choose if he sold the memory or not to get money. I wanted to keep the branching small with yes/no choices, like in Reigns.

I started thinking of how to represent the plot in a visual novel. I thought of writing it in a diary/blog format, so I wouldn't have to use character sprites. I wanted it to have a similar feeling as in Digital: A Love Story, where the player operates an old windows-like system with messages and all.

To make selling the memories morally difficult for the player, they would somehow have to be significant to the player. There were a few solutions to this:
- Make the player write their own, real memories in the game. (Fill a questionnaire)
- Make the player play and experience some of the memories that they would have to sell later on in the game.
- Use pictures to represent memories. (Stock photos? Drawings?)
There was a problem though: they were too difficult for me to implement by myself. They were too time consuming for both the player and for me, so I scrapped the whole idea. I had wasted a few hours already, so I thought I should pick an easy story idea (like "life of a slave") and stick with it. I soon realized I wouldn't have enough time to write a story from scratch, so I looked for some public domain stories for inspiration. I also scrolled LDjam's front page for ideas from what others were doing. I think I saw something about selling your body parts, which inspired me. (heh)

I remembered an old children's story I had once illustrated. It was H.C. Andersen's "Story of a Mother". In a nutshell, Death comes and steals away a baby from his crib, and the mom goes after Death to save him. On her way she asks various people where Death has gone, and they ask something from her in exchange, and she ends up giving her eyes and hair for information. It fit the Dare's theme, so I settled on it and decided to make a futuristic version of it.
Story Outline & Branching
I used Twine (online version) for outlining and sketching out the game's branching storyline. I've used it before, and found that it helps my workflow. It's easier to see visually how your branching goes, and what you need to write next.

I spent the rest of the day outlining the story in Twine, and planning a simple branching structure for it. I split the story by the NPCs, and made it so the player could choose which one to go to. Now that I think of it, I didn't spend enough attention to the detailed branching I needed, because the end product got a complicated branching structure in the first half of the game. If I had tested it out in Twine, I would've noticed it earlier.
2nd Day: Art
I took a risk and decided to spend the second day making art. I started with what I thought was the "easy and quick" part of the art, which was background images. I counted that I needed about seven background images, and that the easiest way to make them was using free photos with filters. I had recently played with G'MIC-Qt-filter plugin in Gimp, so I was pretty sure what kind of effects I wanted. I used Pixabay to search for free photos that would fit my game, and got some help from a friend in the searching. I got carried away with the images, and ended up downloading a whopping 125 photos. I used CoolText.com to make the game logo.
I picked and edited around 23 backgrounds, of which I thought I'd use about 18 in the end. I had spent ~7 hours making the backgrounds, and I still had the character sprites left to make. I was worried, that the characters would take way too much time. Luckily, my part-time job requires me to draw and color stuff quickly, so I just utilized the same technique to make the sprites, and they all took about 5-6 hours to make, with versions for two of the characters. To make the characters easier to implement, I saved them all the same size, and oriented them in the direction I thought they would be in the game. It saved a lot of time in TyranoBuilder. Still, I was pretty sure I wouldn't be able to finish the game with just one day left and no coding and dialogue done.

The Last Day
The last day consisted of coding, implementing and writing dialogue. I wasn't too worried about coding, since I thought I had simple branching. I was more worried about writing dialogue, because I have had trouble with it in my past projects. I started writing, and the more I wrote, the easier the dialogue poured out! It turned out that the outline I did in Twine really helped to keep the story strong. I did have to add and change a few parts, which turned problematic when I started coding in the branching. Especially the two main routes in the first half of the game turned into a nightmare code-wise. I wanted the player to be able to see both main route options, before they decided where to go. That required a lot of backtracking and flagging visited branches.

Even though the dialogue was surprisingly easy to write, I had no time to properly test the backtracking and if-tags. I had to trust that it would work somehow, even if the code for branching looked like spaghetti. I tested some of the main branches, and hoped that the small ones would work. A friend helped out with finding some free music for the game, though I doubted that I'd have time to implement them during the jam.
The rest of the jam was spent writing the dialogue and implementing the art. I finished writing the last ending a minute before deadline, and spent the next 40 minutes trying to fix the bugs in the endings, but to no avail. I had to submit the game, bugs and all, but it was still playable in the way that you could get to two of the four endings.
Conclusion/TLDR;
In the end, I finished the game just in time before the jam ended. I managed to write in all four endings I had planned, but unfortunately I couldn't get the code for them working. I had hoped that I could make the UI prettier and replace the TyranoBuilder art with my own, but there just wasn't enough time. It's a buggy mess, but it's out there. I should've started coding and writing the dialogue earlier, and made the backgrounds as they were needed. It would've saved a lot of time.
I'm planning on fixing bugs when I've recovered from the jam, and I will also add music in the game when the rating has ended.
What went well: - Character sprites were all used and fast to make - Photo filters for background art was easy to use - Story dialogue was easier to write than I thought - I got enough sleep during the jam - Using Twine for story outline was important - Brainstorming and help from friends (thanks, Berit!) - Focusing on the jam (didn't get distracted much)
What didn't: - Amount of time spend on backgrounds - Time wasted on a too difficult idea in the beginning - Had to leave out one route of the game (no time) - Endings don't work - No time for ui art - No time for implementing music - Didn't prep food for the jam beforehand :/ - Cleaning the code (it's still spaghetti)
Art Stats
Art planned: - 7 backround images - 7 character sprites with 3+2 versions (total: 12) - 2 UI backgrounds - 2 special backgrounds
Art made before coding: - 23 background images - 7 character sprites with 4+2 versions (total: 13) - 1 UI background - 1 special background - game logo - 29 public domain songs
Art used in game: - 19 background images (of which some originals were scrapped and 5 new were made during coding phase because needed) - 7 character sprites with 4+2 versions (total: 13) - 1 UI background - 1 special background
Unused/Wasted art: - 7 backgrounds - 1 logo element - 29 songs