POSTMORTEM & BEHIND-THE-SCENES


finally i get to join the Cool Kids Club by writing a postmortem for my own game! i've combined it with a behind-the-scenes because—as my first finished game project—i'd like to share what i've learned in the creation process as well. now let's get right into it, shall we?


INTRO

before we begin, i just wanted to say thank you so much for playing the game! it was an absolute blast to create CALLING CARD and to see how much attention it's gotten. i thought the only people who would be interested would be my own friends (and maybe friends of my friends?), so every download, rating, review, and comment means the world to me!

in truth, i'm not really the kind of person who participates in game jams. deadlines are not my strongest suit, and joining O2A2 VN Jam was a last-minute decision for me. i didn't even plan on participating at first, but my friend raumv (whom you may recognize as the beta reader/tester for this game and also the brain behind its name in the first place) wanted to! …before real life got in the way, that is.

i recall we were both talking about something else before i was like "huh. doesn't o2a2 usually happen around this time of year?" under the assumption that the jam had already begun and ended and we were like "rip. oh well! there's always next year."

and then i went and checked, and bam! 13 hours before the jam begins. combined with the fact raum couldn't participate even if they wanted to but i could, i ended up grabbing them by the shoulders and saying something to the effect of "On God I Gotchu Bro. I Will Personally Submit Something To The Jam In Your Honor Myself"


THE ACTUAL BEHIND-THE-SCENES PART (I THINK)

…and then i did! i did join around 11pm the night before the jam began though, so i spent my very short amount of preparation time deciding what sort of story i wanted to write in the first place. i already had a presentation style vaguely in mind but not a story, so all that was left was to think of one.

but, while i was trying to think of a story…

obviously the final story turned out slightly different from my original premise, but it's clear which idea won and which one didn't lmao. at least i kept the iconic "dats awesome boss 👍 u 2 should totes kiss" line!

as for the script, i actually finished it on the first day of the jam! there were a few edits here and there after that, but it was mostly just changes in phrasing. i didn't have much of a hard time writing the dialogue because i already have lots of experience writing well-spoken characters such as valerius, and agape's texting style is directly based off of the way i type when texting my friends (albeit exaggerated further for comedy's sake).

everything else, though? Oh Boy.

it was definitely compounded by my busy daily schedule (and the fact i had to go on a flight halfway through the jam and everything), but calling card is the byproduct of many and many hours on my part. i had doubts on whether or not i'd be able to finish it in time before the submission deadline, but i'm glad i pushed through in the end! otherwise, it'd probably have joined my "Yeah I'll Totally Finish It Soon I Prommy" pile of unfinished projects by now…

speaking of which, i've gotten much praise for the art in the game as well!

to be honest, i don't draw finished illustrations often because i have a bad habit of agonizing over even the smallest of details? i'm lucky that o2a2's art restrictions actually worked in my favor here, but i'll definitely have to do away with the aforementioned habit if i ever want to participate in a more "conventional" visual novel jam and meet the deadline (lol).

either way, like much of the rest of the game, the art for calling card is also so very self-indulgent on my part it's borderline shameless! from valerius' design to the UI to the color scheme—even if the art did take 5 days to finish (6 if you count the main menu and all the UI elements), it was at least an enjoyable 5 days!

as for the programming side of things… i've already been tinkering with renpy on-and-off for the past 1.5 years, so i didn't have much trouble finding my footing. that being said, i'd say getting the dialogue to show how i wanted it to was the hardest part of the programming section?

i used nighten's yet another phone for renpy script, and it worked well for agape's dialogue! i modified the script to suit my needs and trimmed away everything i didn't need, and voila! that's agape's dialogue down!

the real issue? valerius' dialogue.

you see, the way i wanted valerius' dialogue to show up was for it to show up in a fixed area like it does in the final game. however, nighten's phone script uses renpy's NVL mode which causes every line of dialogue to be shown on a scrolling list and stay shown until it scrolls off-screen.

works great for agape! not so much for valerius, though. what i wanted for valerius was more akin to renpy's ADV mode (e.g. most visual novels you find on itch), but renpy doesn't allow you to have both ADV and NVL mode active at the same time.

by that point, my choices were to either:

  1. give up on this idea entirely,
  2. modify renpy's source code; or
  3. go crazy go stupid

luckily (or perhaps unluckily?), i'm an incredibly stubborn person! i wasn't going to tamper with renpy's source code unsupervised while in the middle of a jam though, so option 3 it was!

in the end, my final decision was to pass all of valerius' dialogue to a variable named "v_what" before passing said variable over to a screen named "v_text" which displays valerius' dialogue the way you see in the final game! since his dialogue isn't actually considered "dialogue" by the engine, it can be shown simultaneously with agape's without any weird stuff happening!

of course, these sort of hacky solutions tend to lead to more problems… i already had a pretty solid foundation by now, but i really wanted valerius' mouth to animate while he was talking to sell the illusion of him being on a video call more.

every source i could find on how to accomplish this effect assumed i was displaying dialogue in the traditional way… which i unfortunately wasn't.

but hey! i was already using a hacky solution—might as well go for gold and use another, right?

what i ended up doing was manually telling the engine to animate valerius speaking for a certain amount of time depending on how long his current line of dialogue was

…after (almost) every line of dialogue spoken by him.

maybe next time i make a vn, i'll just have the dialogue be shown in a more conventional way…

anyway, all the programming i did after that was just the UI. it was rather time-consuming because i had to carefully position every element, but i don't mind! i wanted the UI to feel welcoming and "lived in" after all, which is why i constructed the structure of the in-game menus almost completely from scratch. they're based on the ones from other games i really liked!


CLOSING NOTES

all in all, i don't regret participating in o2a2 2023 one bit! the restrictions helped motivate me to create and finish something i was—and still am—proud of, and who knew it'd be so much fun to see everything slowly come together piece-by-piece? in fact, i'd say i've learned a bunch of stuff on how to make a game from this jam; things like planning stuff out beforehand, and being able to tell myself enough is enough when it comes to fine-tuning.

i don't have anything planned for valerius and agape as of writing this, but who knows? maybe you'll get to see them again sometime in the future!

for now though, that's all i got to say. special thanks to raum again for being my inspiration for joining this jam, beta reading/testing the game, and also listening to me ramble nonstop about this game while i was in the middle of making it lmfao

and thank YOU for playing CALLING CARD and also reading this far! hopefully i'll catch you all again once i release my next project!


until next time,
Valentine / HOPJAM





(PS. did you know this entire post is longer than the script of the game it's about?)

Get CALLING CARD

Download NowName your own price

Comments

Log in with itch.io to leave a comment.

WOOOOOOOOOOOOOOOOOOOOOOOOOOOO