Anniversary Postmortem


Introduction

Hello! This postmortem will double as a belated devlog where I’ll be covering my experience trying to create a visual novel with no background or knowledge of what on earth I was doing. I’ll be covering what I did, the decisions made, the resources I used (people, programs, websites–all bolded), and a metric ton of amateur mistakes I made along the way in getting this thing to launch. I’ll do my best to break it into major sections (Story, Art, Programming, Audio) so that it’s easier to get through (for you AND me!). Keep in mind that there will be more spoilery content at points, so don't read it if you haven't finished!

Story Writing

Inspirations

I knew from the start that I wanted to write a murder mystery because it was a dissatisfying ending to a murder mystery which inspired me to write a story of my own.

I was a big fan of Arthur Conan Doyle’s original Sherlock books, as well as the BBC program, along with Agatha Christie’s Marple and Poirot series. With Sherlock, it never felt like the reader had any chance of solving the case, but when reading how to write a murder mystery, a tip I saw was that the reader should feel like they could’ve figured it out if only they had just a little more time, so I decided to skip out on Sherlockian stories and focus more on Christie’s works.

The three biggest inspirations for the plot of Murder at Hen’s Roost were the following Agatha Christie stories (or at least the BBC rewrites of them): Three Act Tragedy, Cards on the Table, and the Mystery of the Blue Train, with the first two being the most referenced. I liked the idea of going around and collecting varying but similar accounts of the same event from three separate parties, an idea which became the formula for the VN’s story.

In addition to this, I also enjoyed the world of the Professor Layton series, so having it set somewhere in the UK was a given. The Layton inspirations come out more in the art style, which I’ll talk about in the art section. The location is also set in the countryside because that is a common setting for most older detective series. The relative isolation of it also lent to narrowing down the suspects and the scope of the story I had to write, as chasing characters around London would’ve gotten tedious and required a lot more background art.

Owing to all of these sources, the time period was set to be somewhere in the early 20th century on what I consider to be a floating timeline between the 1930s and early 40s. The Layton series are set in a nebulous 50s-70s period where the technology is as advanced as the plot demands it to be. Limiting the technology also made Ilia’s vast knowledge of stories more valuable and impressive than if she could just Google everything, and it meant that her and Gatz had to piece things together only with the information they could collect in Chiffling. A clue about the time period is planted in the opening prologue where Gatz’s grandpa offers him a buffalo nickel, a coin which was minted from 1913-1938.

For the older and learned readers, Edmond Healey’s “exploding car” might’ve sounded familiar as well, as it was based on the famous story of the Ford Pinto, a car where a rear-end collision could cause the fuel tank to rupture and catch fire. Like Healey’s car, the Pinto was released despite the dangers of its design because it was cheaper to pay off lawsuits than to redesign it. Using this non-fictional story as an anchoring point felt like it would add believable weight to this large component of the story.

Agatha Christie was also the queen of poisons, so I borrowed some of that when deciding on the means of murder. Poisoning someone was a method that any of the suspects could’ve easily employed, so it made the writing easier as well. The idea of having the victim consume a drink spiked with a poisonous plant actually came from Socrates being forced to drink hemlock after being sentenced to death. From there, it was just a matter of finding a plant that one might keep that also grew in the UK. If memory serves, Agatha Christie’s estate featured plenty of the poisons she herself used in her stories.

Planning

My friend asksuyo early on mentioned to me a program called Twine for planning the story out, saying that it was technically possible to code a text-based VN in the program as well if I wanted. I ended up using the program to plot out the main story beats–what chapters they’d be, where important information would be revealed, etc.

The story overall would not be terribly complex, as it was my first time writing both 1. A full story, and 2. A murder mystery. To be realistic, I kept the scope small, and I wanted it to be easy enough that the reader could solve it, but still have fun with the big reveal, which was always the most fun scene of any Agatha Christie adaptation.

When it came time to write out the plot, I was actually very uncertain of how the middle portion would go. The introduction of the characters was easy enough because it was to establish their personalities (though admittedly it was a very long intro), but when it came to the meat of the mystery, I didn’t know how to structure it. I had once read that it’s sometimes easiest to write the ending and work backwards to know what’s important to include, so I wrote the “And the culprit is you!” scene first, decided what evidence Gatz would present, and then planned where in the sequence of events each clue would be revealed. From there, it was a matter of writing the dialog for it and making sure that information was presented in an order which wouldn’t contradict anything (unless it was a plot point that it should).

That being said, there are a few unresolved elements/plot holes which require additional suspension of disbelief: 1. How Gatz’s grandpa got all of the information (slightly hinted at in the epilogue)

2. Why none of the suspects press on the letter writer’s identity when it is read to them

3. Neither Gatz’s grandpa nor Sir Ashton being charged with some form of involuntary manslaughter or negligent homicide for knowingly setting up an environment which would prompt a murder to occur

4. Why no one could track things back to Paul Lunt (and how Healey knew enough to blackball him)

Additionally, there is a point in the final night where Ilia and Gatz are sharing theories where they say one or two things which don’t line up properly, or contradict their own statements. This scene and the above plot holes are the consequences of my amateur writing.

As mentioned previously, I wanted to isolate the setting of the story so that everyone would be in one place. In many countries, police have the ability to detain suspects for a limited amount of time without formal charges, so I had to ask the reader to suspend disbelief and accept that everyone would be restricted to Hen’s Roost for a full 72 hours, and that that would be enough time to solve the case. Likewise, they’d have to believe that an autopsy could be quickly completed, which is not realistic (but the audience is likely primed by crime dramas to accept such things for the sake of convenience).

With a small cast in a small location, I needed to come up with a reason for why Gatz and Ilia couldn’t be witnesses to the events leading up to the murder, which is where Ilia getting drunk was written in. Aside from being amusing to write and also showing off some of Ilia’s major insecurities, it acted as a good excuse to remove them from the situation so that they’d have to get everything secondhand from the suspects’ accounts.

Lunt’s poisoning almost happened at the gala itself. While the eventual situation looked like a classic locked room puzzle, I knew I wouldn’t be able to write it well, so I let everything hang on the order in which people would’ve had access to the flask. Missing from the investigation though was the means by which the monkshood was handled. As Mr. Gibbs mentions, monkshood isn’t to be handled with bare hands, so something must’ve been used–gloves or a handkerchief–but no one pursued that angle (whoops!). Also, realistically, the flask would’ve been delivered the next day rather than with Mr. Healey…

One regret I do have is that Lunt was not more of a character before his untimely end. For a murder victim, most of what the reader knows about him comes from stories of his past, but there’s never really any time to get attached to him while he’s alive.

Otherwise, many little things were foreshadowed as early as Gatz’s first meetings with characters, though they wouldn’t prove too important until the final scene.

The epilogue itself was never planned. It came to me as a way to explain why Gatz’s grandpa had any involvement in the story, and it also felt like a bittersweet and heartwarming endnote. The story was already complete and the VN was basically 80% done by the time I added it in.

Dialog

That Gatz would be the only American sans his offscreen family meant that everyone else would be speaking with one accent of the British Isles or another. For him and his grandpa it was important to limit the slang they might use, so I didn’t rely too heavily on contractions, or even grunts I wouldn’t see in writing at the time. Since he never showed up on screen, it was important to emphasize grandpa's playfulness in how he spoke in comparison to his straight-laced grandson.

Multiple dictionaries were open at all times when writing, as I was very careful to (with the exception of words where a U might be used in British English) use the vocabulary of each country, so one might say “among” while another “amongst.” Phrases were also checked against for things like “green fingers” versus “green thumb,” or “a man called” versus “a man named,” all in an effort to make the difference in accents and dialects seem more noticeable and authentic, though I’m unsure if people picked up on it. Regrettably, I couldn’t really find any native Brits to proofread for me, so I’m unsure just how many Americanisms slipped in.There’s also a number of lines where I researched period appropriate words, such as when the constable uses an archaic term for comics to describe what he found in the archives. 

Dorothea spoke with a more posh accent, Felix a more relaxed and jovial style, and Ilia with an Estuary accent more commonly found in London. For Maggie and Inspector Higgs, things would get slightly more cockney with letters being dropped here and there. Healey’s English was almost more American to the point I wasn’t sure if it made sense for him not to be one.

Some of the characters’ names were also conceived using a list of British surnames, and even London census data from the early 1900s.

I did my best to make everyone speak in a very natural and conversational manner because I wanted it to really feel like two people casually chatting, especially if someone were doing a Let’s Play of it. It was incredibly important to me that I avoided common VN speaking patterns like I’d witnessed in Danganronpa where characters would repeat the same information a dozen times for no reason, e.g. “(Sakura-san seems really sad. I should ask her why she’s so sad.) Hey Sakura-san, why’re you sad?” Gatz’s inner monologue was somewhat modeled after Kyon from Suzumiya Haruhi no Yuutsu who would often make non-vocalized snarky responses to what a more eccentric character was saying.

Ilia and Gatz are also the only characters who would be allowed to have internal thoughts, and Ilia could only do so when Gatz was not present.

Characters

Beyond this point are massive story spoilers. Read at your own risk.

The Magnificent Lee/Baruch “Barry” Lieber/Grandpa

A (retired) world famous stage magician who adores his grandson and wants to see him realize his potential. He’s also shrewd despite his laidback attitude, and knows a great many people and things.

He was inspired by Harry Houdini, including his heritage. Houdini was a Hungarian Jewish immigrant, and like many of the early Jewish artists and entertainers in America, he adopted a stage name to increase his appeal and also potentially hide his background from those who would discriminate against him. Some similar examples would be Gene Wilder (Jerome Silberman), Stan Lee (Stanley Lieber), and Natalie Hershlag (Natalie Portman). Gatz is also technically Jewish (his real name is Daniel), but this having significance to the story was abandoned before writing began. His stage name is also a simple pun (Magnificent Lee=Magnificently).

He was created as a means of setting the stage for Gatz’s adventure and also seeding things to keep in mind during each day in the story via his conversations with Gatz that are recalled whenever he goes to sleep. In the epilogue it is explained that he knew John Holland from one of his final interviews, and that that’s part of why he attempted to solve the mystery of his murder.

Gatz

A listless, handsome young man with a sharp mind and good observation skills.

Gatz was originally an “Ilia delivery vehicle”--he was created because Ilia herself was too abrasive to exist on her own and needed a straight man to play off of, which is how he ended up being the protagonist. His personality was meant to be a mix of Oreki Houtarou (Hyouka) and Cloud Strife (FF7 Remake), combining their blasé, sassy, and antisocial qualities. 

Because he’s very introverted, he usually spends most of his time in his head, though as the story progresses and he becomes comfortable with Ilia, there are far fewer instances of him talking to himself. Along with this, he starts to share his theories with her to show that he trusts her. Whether or not he returns her romantic feelings is left ambiguous, but he does acknowledge that she is attractive.

Gatz’s observational skills were originally going to play more of a role in the story. The scene at Tellings between him and Dorothea was supposed to be much longer as well and include more instances of him psychoanalyzing her and her motivations, but this, like many things, were cut out because the intro was already abnormally long. Every character commenting on his squinting was inspired by how people used to think I was glaring at them when I didn’t wear my glasses (I had no idea I was doing it!). 

Similarly, he was meant to be a counter to how Americans are usually portrayed in European media (loud, arrogant, stupid, etc.), though he is still treated as a foreigner–a novel oddity, or assumed a simpleton. His fashion sense and long-ish hair (compared to every other male character) was also meant to provide some visual contrast. All women in-universe finding him attractive was also a fun way to poke at how he doesn’t like drawing attention to himself.

His last name (and preferred name) of Gatz comes from the real name of Jay Gatsby (James Gatz) from The Great Gatsby, one of my favorite books. Gatsby was also the pseudonym I’d often use whenever I didn’t want someone to know my real name back in college. His first name is kept secret for two reasons. One of them is from the rejected idea that his ethno-religious background would be referenced by Healey (more on that later), but the more accurate reason was that I couldn’t settle on a first name for him for the longest time. Some potential ones were Arthur, Lucas, and Nathaniel.

Ilia Baker

Aspiring professional journalist, self-conscious tomboy, and relentless flirt.

Ilia was the first character ever conceived, and her purpose was not originally to be used in a story. The VN angle actually came as a result of daydreaming interactions between her and Gatz and trying to think of a way to actually flesh them out beyond character designs since so few people ever actually do anything with their OCs.

The first set of names I came up with for her were abandoned because they turned up search results in Google. “Ilia” may have been in the back of my mind as a character in The Legend of Zelda: Twilight Princess, but I attribute it to the fact I was studying figurative anatomy at the time and the lecturer kept mentioning the ilium and the iliac crest of the pelvis, so I like to think she was named after a hip bone! Regrettably, without a serif font, most people don’t realize how her name is spelled… Her last name was almost Page.

Her personality was a combination of Luke Triton and Emmy Altava from Professor Layton, and if Gatz was Cloud Strife, Ilia was absolutely Jessie Rasberry. I loved how blunt and flirtatious Jessie was in FF7R because she knew what she wanted, but a lot of people found her thirst to be overbearing. The original draft of the story had an Ilia that was even more flirtatious, but the earliest feedback I got was that it made her very unlikeable, so I had to cut a lot of it. If she’s still too much for you, be glad you didn’t get the original!

Along with the Emmy Altava inspiration, she was also a lot of Lucy Stevens, the under-utilized character from Detective Pikachu who performs a very similar function to Ilia. I had a hard rule though that Ilia could never use the word “scoop,” partially because I hate the word, and also because every amateur journalist character says it as if it’s the only word in their vocabulary.

It was sometimes hard to pin down how I wanted to present her. I wanted her to be sassy, flirtatious, and super extroverted to contrast Gatz and push him, but I also wanted her to be a little petty, insecure, and capable of being genuinely sincere and serious. With that mix, there were admittedly times where it got clunky. 

It only comes out once or twice in the story, but she’s very self-conscious about her femininity, specifically that any attempt to appear “girly” gets her made fun of because it contrasts her personality and general nature. When she does dress up for the gala, she remarks that it’s a costume to her since it’s so different from how she normally looks. Her playing the harp was also to show a softer side of her that one wouldn’t expect (especially not Gatz!). Her not feeling feminine though also played a large part in her aggressively hitting on Gatz. Originally she was treating it like a game or a fling while on holiday that she could boast about, but when drunk she reveals her actual insecurities about not feeling attractive or good enough, even to be a one-night stand. By the end of the story though, her feelings for Gatz are genuine.

If there were ever a sequel, I’d make up for the fact that she was mostly relegated to taking notes (she did quote Sherlock’s “I’d be lost without my Boswell”) instead of conducting her own interviews. While it may seem like she only knew about the articles in the story for their relevance to the murder, she is supposed to be the in-world encyclopedia, and she is very knowledgeable about things that have been reported on. “Murder at Hen’s Roost” is actually the name of her first front-page story.

Edmond Healey

Automotive business (co)owner and antisocial misogynist.

Healey was one of the first characters conceived after Ilia and Gatz. He was originally from another VN idea that predated Hen’s Roost, though very different. Originally, each of the suspects was supposed to be from a different country, and he was going to be German (quality automobiles and engineering tending to be associated with Germany). Since his car was based on the Ford Pinto, there were also early plans where he’d hate Ilia because she was a journalist, and Gatz because he picked up on his Jewish heritage. (If you’re unaware, Henry Ford was a virulent anti-semite who distributed his own newspaper blaming the Jews for every societal issue, even stocking them in all of his Ford facilities and dealerships.) To keep things from getting a little too historically real and complicated, this was dropped before pen was ever put to paper on the story, and he was made British.

He was made to be hated, and it was pretty blatant that he is supposed to look like the villain… which he still is, just in a different capacity.

Dorothea Kettering

Beautiful fashion designer, cosmetic company heiress, and Ilia’s rival.

Dorothea was supposed to contrast Ilia’s lack of femininity by going the opposite direction. She’s sharp, confident, and knows what she wants–including men. Her petty exchanges with Ilia were some of the most fun to write, as were the parts where she makes her sexual desires known and flusters Gatz. She is very much the (BBC Sherlock) Irene Adler character. If there was a character who I’d bring back in another installment, it would probably be her.

All things considered, she was the most innocent of all the suspects, and the most justified in her hatred of the others. As mentioned elsewhere, there were supposed to be more scenes with just her and Gatz before I had more of an outline of the story.

Felix Gray

Entrepreneur, former groundskeeper, affable company.

Felix was meant to be the character who got along with Gatz best. He never pushed him out of his comfort zone, he was never rude or cold, and he was generally friendly, even to those who greeted him with hostility. His character design was technically the first out of everyone, being based on a drawing of The Great Gatsby I did in 2006.

I don’t recall if he was originally supposed to be romantically involved with Dorothea before the story, or if it had always been her sister, but I like to think that while he was fine with lying and manipulating people, he genuinely didn’t want to hurt Dorothea, or even her sister, and he constantly defended Dorothea whenever Gatz and Ilia were suspicious of her. 

That being said, his lines, especially towards the end, were some of the most fun to write (and some of the only ones I wish I could’ve voice acted myself!). He is also the one who exercised the most immediate scrutiny after Sir Ashton read the letter the day after the murder. In some ways I was hoping he was so suspicious that it would be seen as a red herring, but only my readers can tell me if that’s the case! 

Paul Lunt

Blackballed engineer, alcoholic, gambler, and dead man.

Every murder mystery needs a murdered person, and Paul had to be it. Apparently “lunt” can refer either to a flame used to light a fire, or the act of lighting/kindling one, which is appropriate, seeing as how things begin to move after he is killed. Unfortunately, he was a character who didn’t get a lot of screentime, so the reader likely wouldn’t remember what he looked like, or have much attachment to him. Other than how he links Gray, Holland, and Healey together, he’s usually referred to as “victim” or “drunk,” as everyone remembers him for his excessive drinking. Felix is the only one who actively uses his first name since they were on good terms in the past.

How he would die was originally up in the air. While I mentioned the reasons I went with a poisoning, I wasn’t actually sure how likely it’d be that he’d ingest enough of the monkshood to die, since I don’t drink myself and don’t know if the flavor would be detectable! That being said, he probably would’ve swallowed it all anyways.

The scene between him and Felix is never directly shown taking place, and I’m not sure if that would’ve made Felix’s position even more obvious, or lent more to the intrigue. I really wasn’t sure how to write scenes without Gatz or Ilia present.

Sir Ashton Norwell

Wealthy aristocrat, veteran, friend of Gatz’s grandpa.

Sir Ashton was created to be a character with enough authority to both gather everyone, and force the police to play by the rules of the mystery. It’s thanks to him that Gatz and Ilia are able to carry out the investigation without being seen as suspects themselves, which helped, because it would’ve been complicated to have them prove their own innocence while also investigating the others.

He is also fairly unperturbed at his own involvement in organizing everything, and of the eventual murder, likely as a result of his previous enlistment, though the details of that (and if he actively fought alongside Gatz’s grandpa in a war) are left vague beyond Sir Ashton being referred to as a “Tommy,” old slang for a British soldier which was common around WWI.

His last name may be an unintentional reference to the Wall of Norwell in the fifth Professor Layton game.

Inspector Higgs

A laid-back police inspector for the town of Chiffling.

Along with Sir Ashton’s political influence, there needed to be some other authority who could enforce the conditions for the investigation, and also do something once the culprit was discovered. Higgs is, for all intents and purposes, a wider version of Chief Inspector Japp from Poirot–one of my favorite characters in the show. Funny, experienced, but also easily thrown off track and constantly misses small details that the detective catches. Him and the constable also allow Gatz and Ilia to get information from the outside world while they’re stuck under house arrest.

Maggie & Henry Gibbs

A quaint couple running a bed & breakfast in the countryside.

The Gibbses gave extra flavor to the location and also acted as local experts in the behavior of the town around the gala, and about the flora that could be found in the area. They also acted as extra characters for Gatz and Ilia to interact with. Ilia and Mrs. Gibbs almost had a scene together when Ilia was getting food for Gatz, but I decided that didn’t really add anything, so I never wrote it.

John Holland

Freelance journalist, loving father, murder victim.

I had to try hard to avoid thinking of Tom Holland every time I wrote his name. I’m honestly not sure when he became a part of the plot, or his hat became significant (Ilia was already wearing a hat in her pre-VN design). I also don’t know if it made sense that no one around him knew about the story he was working on (including his wife), what made him investigate Gray, or that he didn’t take any work home with him that could be used as a clue or evidence. His epilogue was added to be a bit of a gut punch and also to establish his connection to Gatz’s grandpa, the person who gave him his big break.

Art

Style

The overall visual aesthetic of the VN is borrowed from the Professor Layton series with some manga elements thrown in. For the characters themselves, with the exception of the eyes and some patterns, and under the chins, there are no shadows on the characters, and almost no hatching at all. The colors are also somewhat muted, with the more brownish/sepia tint that is featured heavily in the Layton art style.

Originally I had devised a somewhat more unique style for drawing the noses, but several people were unable to read what I was going for, so those had to be changed, eventually towards a drawn diamond that would normally be a lineless highlight. Apparently this was also a questionable decision, but at least I know what I was going for!

Characters were usually themed with a main color, which I also used to keep track of them in the script by highlighting their text in their corresponding color.

Sprites

Since I am not only the writer/programmer, but the artist, I also took advantage of the fact that I could make as many poses as I wanted/needed for each character. I wanted to have a lot of options available, especially for characters with a lot of energy… or really just Ilia. Being the golden child, she has the most unique poses/sprites of any character at a whopping 13, followed by Gatz with 8. Some characters were designed to be more modular as well, such as Felix who has a dozen arm poses so that hands can be in the air, in pockets, etc. to make him seem very active and conversational, whereas a reserved character like Healey only had about three poses.

Making all of the characters face forward was a somewhat unorthodox decision, but the way I saw it, it eliminated the need to flip sprites if characters moved around, and I didn’t want to redraw sprites based on flipping them (yes, I know I don’t have to do this, but it always looks weird to me when an asymmetrical design is mirrored). This also made for an interesting challenge, because straight-on designs can be awkward, and the lack of shading meant I really had to lean into the flatness of the sprites. The symmetry tool came in handy for the characters it worked well on, which is one of multiple reasons the character designs themselves are rather simple (beyond the Layton aspect).

This is touched up on later in the programming section, but each sprite was broken down into the components that would change the most often: Poses, heads, mouths, eyes, and eyebrows (in order of expectancy to change). Any VN sprite artist is going to know to keep their faces on a different layer/folder so that they can be swapped in at will, but I added heads as well so that a character could look up from what they were doing, or turn their head in frustration if need be, really maximizing the amount of things I could do with a single pose.

UI

The UI wasn’t altered too much from the Ren’Py defaults. 

The frame around the text was meant to look like gold art deco designs from the 20s, and the character names are all using a free font that’s similar to Futura to further invoke the feeling of that era. The blinking arrow to let players know when to click was also added because I was worried pauses inbetween sentences may make people accidentally move too far ahead. It was almost a typewriter icon or envelope, but an arrow seemed simplest.

Backgrounds

Like most character artists, I don’t know anything about perspective or making backgrounds. One of the biggest hang-ups on whether or not I’d be able to make the project work actually came down to “can I make backgrounds?” The answer I originally came up with was to load up a program I’d used almost a decade prior called SketchUp–a free-ish in-browser 3D CAD program primarily used for making mock-ups of buildings, rooms, and general architecture. It was a bit unwieldy for someone like me who had 0 experience working in 3D software, and it was also limited in how a free user could export out of the software (why I said free-ish), so I couldn’t easily move it to another program like Blender. The program itself allowed for me to turn off all textures and make a line version of my render, so I could essentially treat it like a coloring book. Even when I did end up with something passable though, I still wasn’t good with painting, colors, and lighting, so I was in a bind.

After some googling for artists with experience making backgrounds for VN, I discovered ange.la.ange. They had a number of different samples on their commission sheet and had a style that felt like it would mesh well with the Layton aesthetic. I basically made a big folder of Layton backgrounds that they could reference, and I came up with a list of about 10-12 locations that would need backgrounds, sometimes for night scenes. Some backgrounds were cut because they would delay the overall project, and they wouldn’t be on screen for long. 

Our normal workflow was that I’d come up with a render for a scene and its angle, and I’d send it off to them with some notes about what colors they should use. From there, they’d do a rough painting under the 3D lines to establish the general look of the scene, along with adding paintings, flowers, carpets, etc. to make the sterile render look more lively and lived in. I’d review the rough and then run it by asksuyo since they were much more experienced with this sort of thing, and I’d pass on the feedback to Ange. From there, they’d do a more detailed rendering with redrawn line art, and we’d tweak it until I (with the approval of asksuyo) were satisfied. One of the nice things about the backgrounds was also that Layton allowed for lines to be wobbly and of different weights, along with objects (like picture frames) not having realistic, or even balanced proportions, so it gave us some freedom to not always be super precise.

Programming

Engine

When it comes to making a “game” of any variety, a choice has to be made about what platform it will be programmed for/distributed on, and what engine to create it with. With a VN, there’s a handful of choices, but the three I knew of were Ren’Py, Tyrano Builder, and Unity. Each of them came with their own learning curve, and I was a complete and utter novice with all of them.

Initially, I was drawn to Tryano’s promise of being more of a GUI-based VN maker that would be more beginner friendly and require very little coding if any, however, after reading a lot of reviews, it was apparently quite buggy, and the EN version had become vaporware with the dev only caring about maintaining the JP version of the product. I asked around about it, and one or two people told me that they’d wished they’d learned how to code in Ren’Py and saved time rather than tried to troubleshoot everything they’d made in Tyrano, so eventually I settled on that. After all, Ren’Py was the first one I’d heard about over a decade ago, and it seemed to be the indie standard in general. It had abundant documentation, old forums, a Discord, Youtube tutorials, etc., so I decided I would go with that, even though I’ve never been able to do much more than some basic HTML tags. 

Getting Started

Did you know that Ren’Py has a built-in tutorial in the launcher? I didn’t. My eyes were completely blind to it like it was a banner ad on a website. I don’t think I’d noticed until I was many hours into the project, so I was learning everything from their web documentation, which made a lot of assumptions about how much programming you knew how to do.

The website will walk you through a lot of the basics and then give you the more advanced stuff, but it fails to give you a lot of that in context. For the type of person I am, if I could see the code in practice, I could usually MacGyver it to do what I needed to, but a lot of the time that was not the case–it would give you the variable and assume you knew where in the code it went. Googling old forum posts certainly helped bridge the gap a bit, and once I finally discovered the tutorial, which was really useful for a lot of basic functions. It would show you what it was doing and then give you a menu to copy and paste the exact code it used so that you could carry it over to your own project–something which would’ve helped if I’d paid attention earlier!

For everything else though, there was the official Ren’Py Discord server, where there’s a ton of experienced devs along with other novices trying to find faults in their code, or just keep each other motivated while we made our own projects. I definitely wouldn’t have been able to complete the VN if it weren’t for a few folks in that community who entertained what must’ve seemed like baby-level questions.

For the love of god though, if you decide you want to make a VN, view that tutorial first. What happened for me was that I would code about ⅙ of the VN, discover a more efficient way to do something, and then start back at the beginning to add in the new stuff I had learned. I did this many, many times before I was confident I knew what I was doing. Even then, all the way until launch, I was still finding little things to optimize that no one would ever notice.

Dialogue

One of the very first challenges I encountered was how to import all the dialogue, which I had written in Word before I’d ever even opened up Ren’Py. Because I knew nothing about scripts and automation, I was worried I’d have to copy over everything and then put speaker tags in front of over a thousand lines, which would’ve been an amazingly time-consuming activity. 

Enter asksuyo. She was able to quickly write a script which would ingest all of my documents, parse for the labeled speaker for each line (or if it was on a new line without the tag, carry over the speaker tag) and output it all in the proper Ren’Py formatting (dialogue in quotes, special characters, speaker tags). For something she wrote fairly quickly, it did 95% of the job on a single pass!

From there, I moved on to detailed formatting, which included things like adding italics, deciding when to include line breaks (sometimes purely for aesthetic reasons, like not having a single word dangling on a new line), and pauses. So many pauses.

It was important to me that because the VN didn’t have any gameplay elements, I wanted to control the pacing of the experience to make every pause feel natural and deliberate. Was a character thinking? Pause for effect. Comma in a sentence? Pause for effect. I wanted it to feel like the pacing of the spoken word, which is one of the many reasons I view the VN almost like a play rather than a game or book. I must’ve done a thousand of these pause statements, which probably adds at least 20 minutes to the overall playtime, even if most of them are between .3-.5 seconds in length–there’s that many of them!

Sprites

DO NOT DO WHAT I DID. I cannot emphasize this enough–you will hate yourself and have to clean up so much code later.

In the same vein of wanting to control the pace of the action, I wanted all my characters to be super reactive to whatever was being said. If one character says something that catches someone else’s attention, they’d have an expression that would go with it, which meant that I made a lot of different expressions for everyone… except…

My brain is a Rube-Goldberg machine: I find the most inefficient ways possible to end up at the correct end result, and this was no clearer than in the first draft of doing the sprites for the VN. People in the Ren’PY Discord thought I was insane, and they were mostly right. I hard-coded each sprite rather than making them modular, which made the project’s file size unnecessarily bloated, and added a lot more code than needed to be there.

To me, what I was doing made sense, because I understood my own logic and naming convention. Other people would’ve done “Gatz Happy,” “Gatz Concern,” but I had so many unique variables that I formed a hierarchy of Pose Head Mouth Eye Iris Brow. P1h1m1e1i1b1 was basically the most neutral a character could get, and every time I needed someone to speak, their mouth would change to m2, m3, etc. based on how I wanted the expression to change, which also meant I needed to change the code out every time the sprite changed. The more intelligent means of doing this is what you can see in the first screenshot: turning each expression element into its own variable. This way, if only one element of the sprite changed, I would only have to write that specific variable, and the code would maintain the rest of what was already on screen. 

Fixing this required going back and saving each individual component for every individual character as its own PNG, registering them all as variables, and then doing a massive Find/Replace All on the script, and took quite a while. My naming convention was preserved, but the project’s footprint was greatly reduced, and I was able to make changes to sprites faster (especially if I changed the art for any features). It’s still probably a mess to more experienced programmers, but it was easily readable for me.

Adding transitions also added to the overall playtime, but I preferred how they made characters feel a little more alive than simply static sprites that changed every click. This also helped add the performative aspect that went along with the pacing of the dialogue. I coded my own transitions here and there when I wanted something to be faster or slower, same with unique sprite positions for when multiple characters were on screen. 

The toughest situations were always those with more than two characters involved, as I had to keep track of when they faded in and out, and all the expression changes. I played through individual scenes dozens of times over to make sure everything was synced and moved at the right speed, often making changes on the fly and refreshing the game client to check them.

All in all, it took significantly longer to code all the sprites and timing than it did to write or make the art for the VN, but that makes sense, doesn’t it?

Voice Acting

Casting and Recording

Voice acting was the last feature to be included in the project, and it nearly didn’t happen at all. Instinctually I went to Reddit to see what the voice acting community was like, but it felt relatively small. From there I had to ask “what voice acting places have I heard of?” Voice123, Fiverr… most choices were either expensive, or didn’t yield good results beyond the same 4 character voices in a demo reel. It was by some complete accident that I stumbled upon CastingCall.Club, which is an amazing site which I will definitely turn to again should I ever need actors on another project. The site allows you to recruit for all sorts of positions: video editor, artist, voice actor, programmer, etc. Each lets you specify a budget you have (or don’t; there’s an option for folks who just want to be a part of a project), specify how many words you think a project will be, list audition lines, and many more things. I highly recommend it!

One of the big things for me was that I needed to have a good Ilia and Gatz. If I couldn’t fill those two slots, there would’ve been no voice acting at all, since I need my star players to be cast. Casting started in October of 2021 and was open for about three weeks, during which I got all sorts of different takes, from folks with professional microphones to others using a potato, but I listened to all of them and combed their other auditions to see if they captured the right sound in their other auditions. Gatz, Ilia, and Felix were the hardest ones to cast.

Treating voice acting as an afterthought was probably one of the larger mistakes I made, as it did cause some delays. My actors were from across the country, and some even in the UK, so timezones rarely matched up, and lines came in at different times since they were usually recorded and submitted for review. 

Probably the biggest overall mistake I made was that I only told my actors when I needed retakes, but I failed to actually tell them which take I selected, so if anyone’s personality seems to change between takes, it’s likely a result of me not giving them consistent direction. In my defense, I’d never been in charge of voice actors before, and like most things in this project, I only learned halfway through the process what the best practices were.

Not all lines recorded were used though. There were some instances where in the interest of both parties' time, it was easier to cut a line than do infinite retakes, especially if the line wasn’t important to the plot. Just like singing, there are some deliveries which just aren’t in everyone’s range. Sometimes I also had to manually pitch shift or fade out parts of a sentence to fix a delivery, which is noticeable in one or two places (but hopefully not too bad!).

The VO work ended in early February 2022, at which point I began doing what I knew how to do within Audacity to try and make a handful of actors with different setups sound similar enough as to not be jarring. For future projects, I’ll also pay more attention to audio quality. All things said and done, I’m grateful for all of my actors (listed in the About menu in the VN) lending their time and talents to the project.

Lines

In terms of selecting the lines of dialog, I had to make some choices. There were some lines that I knew I wanted voiced, but a lot of lines that seemed less important surrounding them. My voice actors were also contributing to the project out of kindness, so I didn’t want to abuse their time by having them voice entire scenes (like the conclusion of the investigation, which would’ve been huge). For that reason, I tried to be selective, though this sometimes led to random lines being voiced in the middle of a chunk of silence, which, while not unusual in something like Danganronpa, is still somewhat jarring (I know when Game Grumps play VN, they would pause and realize a line that actually had voice acting, and it would always catch them off guard).

Also, I totally made some of them do the cringier exchanges on the off chance that someone wanted to stream the game and wouldn’t have to, like, flirt with themselves, so my apologies to any of them that are reading this!

Reaction sounds were originally used much more sparingly to really strengthen their impact when a character growled or became pensive, but they were doubled in the week prior to launch based on feedback from asksuyo about how there needed to be more noise to break up the long stretches of talking. This would also make it easier to keep track of who was talking in a scene.

If I were to make a sequel, I think I’d want to be much smarter about the voiceover work and would probably either do entire small segments, or make special scenes (more detailed images, typically static) where it would be highlighted and self-contained.

Music

Square One

Background music was one of the parts of production that began, in theory, relatively early in the coding phase of the project. I knew the game couldn’t take place in absolute silence, but I was also trying to do as much of this project as I could by myself since I had little in the way of a budget. I had never composed music before, nor had I so much as read sheet music since 2000.

My research took me all over the place. I was watching youtube videos on music composition and theory, I was looking into DAWs (Digital Audio Workspaces), VSTs (Virtual Studio Technology), affordable MIDI keyboards, trying to remember how to read sheet music, and trying to think of what kind of sound I would want. I eventually installed Garageband on my iPad just to play around with making some melodies, but it was hard to not accidentally play songs I already knew, and I wasn’t great at plotting things in the timeline. 

It took a while, but eventually I had to give up on doing it myself, meaning I needed a new plan of attack. 

Finding Music

The main thing I knew was that there was going to be a waltz scene, so I needed something for that if nothing else. To a much greater extent than the sound effects, I needed to make sure whatever I used was royalty free in case I ever wanted to sell the VN, or someone were to stream it, which mostly meant looking for something classical. I quickly realized that “royalty free” was sort of a misleading term. A song might be public domain, but the recording of it was probably not. To try and deal with this issue, I found MuseScore, a sheet music site that had an option to play a song as a MIDI, and that’s where I acquired the background music at Tellings.

For songs for a waltz, it was difficult to find a good waltz song that wasn’t too long, and I didn’t want to drastically shorten and loop a song that people knew. The waltz scene shouldn’t go on for 12 minutes, so it didn’t make sense to include a audio file that would never be used, especially when I wanted to keep the project’s memory footprint relatively low. I eventually found a song from a composer on Youtube that I was going to use, but then I was presented with an interesting opportunity…

A Waltz of Our Own

Asksuyo put me in touch with gyoumoo, who had dabbled in writing songs and was interested in writing for videogames. He was willing to work with me on the VN to get some experience and a larger library of completed work under his belt, so we started talking, and I decided that the waltz was a good test for if we could make the music work. This way, I also wouldn’t have to be reliant on pre-existing music that didn’t quite fit my needs. He started by coming up with a melody and building upon it until it was a short, loopable waltz track, which is the one that’s featured in the game.

While this worked out, there were a number of things I needed to consider: How many songs would the game need? When would I know to transition between them (if they were emotion-based)? How long would writing music delay the game itself? The waltz track was completed mid January 2022, and the project was very near completion just shy of a year from its start. To be honest, I started to just want the thing done, so I had to make yet another decision.

Ambience

Real life doesn’t have background music, as cool as that might be. The gala having music made sense, the waltz having music made sense, but did Hen’s Roost need it? Did the train need it? I decided that instead of trying to come up with a unique soundtrack for all the locations and situations, it was easier to fall back on the realism of the real world. What was the natural soundtrack of the world? The answer: Ambient noise.

Crickets at night, birds chirping during the day (muffled when indoors), the soothing clacking of a train going down the track–these things became the background audio for the VN. While not as exciting as an original score, I think it still worked. If I ever decide to make another VN, I’ll definitely look into music far earlier in the life of the project.

Sound Effects

When it came time to find sound effects, I needed to find some good libraries full of royalty-free sounds, and after some hunting, the three main resources I found were: http://www.freesfx.co.uk, https://gamesounds.xyz, and https://www.soundeffectsplus.com

All of the ambient soundscapes (train station, birds chirping, crickets) came from the websites above. Some sounds were made from repeating a single effect (the dinging of Sir Ashton’s glass) and others from merging multiple sounds (Ilia’s drunken fall at the gala). All of the editing was done in Audacity v2.4.2 (pre-”spyware”).

I knew early on that I wanted the text chirp to be a classic typewriter, though in order to keep up with the text display speed, it had to be slightly sped up, otherwise it would continue playing after the final punctuation of a line. I tried to reinforce it by making the alert chime (!) an end of line bell to keep the whole thing feeling vintage. I played with the idea of a carriage return noise immediately following an alert to “reset” things, but that began to make things messier, especially if a character had a reaction sound immediately following their shock.

I contemplated having a foot shuffling noise for when people entered and left a scene (a-la changing screens in Professor Layton) but it then became an issue of timing the movement, if each individual character got their own footsteps, etc., and was dropped to keep things simple.

Overall, I opted to keep sound effects to a minimum and only use them to enhance a scene or suggest something that sprites themselves couldn’t (opening/closing doors, setting plates down on a table).

Final Thoughts

This project was quite the undertaking, taking a full 365 days from start to finish, but it was a rewarding experience, even if it’s not read or finished by many. It’s always good to challenge yourself to a project, but I don’t know if I’d recommend learning to write, code, and everything else all at the same time! It might be a good idea, should you decide to make one, to split responsibilities amongst at least one other person, that way, it’s not you against the world.

At this point in my life I don’t see myself making another one of these even though I still think of little scenes with Ilia and Gatz from time to time, but who knows! Ilia, at least, has become one of my mascot OCs now, so she’ll always appear on my social media (nearly always out of character). At some later date I might do a post about how the characters were designed, but we'll see.

In the immortal words of Mario, thank you so much for-to playing my game!

Get Murder at Hen's Roost

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.