POSTMORTEM



SHELLIE'S SECRET was a game I created over a few days in August 2024 for the SCREAM SECRETS jam. As a host of the jam, it was the first time in several years I'd independently created a game outside of collaborating on projects with Kitsch Digital and formerly Caveware Digital. Having made a bunch of fairly light-hearted, comedic games in the past, it was interesting to work solo on a more narrative, serious title this time around.

Designing the graphics and sound 

SHELLIE'S SECRET is a game about a lot of things, but primarily it's about the strange, uncanny spaces carved out by early computer games. Very early computer graphics are uncomfortable to look at, use and listen to. Personal computers in the early 1980s were much more for computing than for entertainment. One of my earliest memories of experiencing this era was playing Dancing Demon on a Tandy TRS-80. They're fascinating machines, and ones that have long been subject to the analog horror trend of video games that explore that vibe. 

The Tandy TRS-80 Model 4 (1983) 

So, naturally, SHELLIE'S SECRET is a game set to be a fictitious Tandy game, wrapped in the mystery of a homebrew title. Although it does things that exceeds the capabilities of those machines, everything in the game is meant to be evocative of them. I tried thinking of several ways to evoke the tactility and uncanny experience of playing a game on an old computer. Some of the key design choices were:  

  • Coding in a primitive boot sequence and command as if the game were started manually from the terminal. 
  • Creating sound effects from videos of Tandy machines, including the computer whirring to life and emanating a dull hum throughout. 
  • Using the HotCoco font, meant to reflect the one used on a 1980 TRS-80 Color Computer. 
  • Using SAM, a primitive speech synthesis emulator, to reflect the novelty of early audio, distorted by dropping the bit depth.
  • Dithering all of the assets into a grainy monochrome mush to really frame the game as something early-mid 80s in setting. 

Although I will get to the meaning of the game's ending later, the visual of an ultrasound was inspired from the 2013 film Computer Chess, an awkward comedy-drama about nerds at a computer chess competition. In an unusually uncanny moment, one computer is asked if it has a soul as its user begins to suspect it may in fact be sentient - only to be met by a split second of a heartbeat. That scene stuck with me. There's a few times where the game behaves in ways that a computer of its time is not meant to behave in homage to that aesthetic. 


Scene from Computer Chess (2013)

Designing the narrative  

The narrative of the game is an ambiguous one. I hope it makes some sense. Although the game is linear, it draws from a tradition of strange, non-linear storytelling games with moral ambiguities. The game Who's Lila? was a strong inspiration. It's similarly a dithered, uncomfortable title in which the character interacts with the world through molding the facial expressions of a psychopath. The ARG elements in Who's Lila? were an influence in deciding to toy around with using the game's files to help tell the story beyond the scope of the game itself. 


Who's Lila? (2023) 

In short, SHELLIE'S SECRET is a game intended to deconstruct the police interrogation genre. The game is framed as a detective parser title that tasks the player with questioning witnesses of a car accident. The apparent objective of the game seems to be that by asking the right questions, and performing a successful interrogation, the player will uncover the 'secret' the main suspect is hiding and win the game. In practice, there's two sections where you sort of play 20 Questions against the parser to make sense of the context and find clues. 

Once upon a time, I was a law student and graduated with a focus on criminal law and criminology. The ways in which fiction and crime depict investigation as an epistemic exercise are very interesting to me. Forensics are fascinating to audiences as we like to believe that the law can reveal truth. But in practice it isn't so simple. Most criminal investigations rely on what we call circumstantial evidence. Many crimes are investigated and prosecuted on the word of witnesses and coloured by the perspective of what they see - or what they say they see. 

So I wanted to create a morally ambiguous game where the player is never quite clear about the intentions or culpability of the characters. So whilst the main suspect seems quite guilty, there is really no hard evidence involved in the investigation. Law enforcement have made up their mind. The one witness is, pressed on questioning, enormously biased. And the protagonist is even unsure whether they made the right call. The game's penultimate monologue imagines a character in the position of the player who is haunted by that uncertainty. 

The ending of SHELLIE'S SECRET is uncomfortable and has some shock value, and I was very unsure whether to make a plot point around what is clearly implied to be a miscarriage. Men have long needlessly aestheticed women's suffering for art. The obvious twist is that Shellie isn't the perpetrator, but the victim. This turns the notion of the game on its head that the 'secret' is the mystery capable of investigation. In the end, the game jolts into the victim experience: one that the investigation genre is horribly unequipped to process or respond to. 

It's a hard sell and the game's layers aren't entirely too clear. I leave it to players to assess how well the execution worked in practice. One point of feedback is that much of the game's narrative depends on the player picking up keywords in the parser. I like how this makes the game slightly open-ended by design, but agree an on-rails approach and heaping the story onto players encountering the right hints through keywords and poking around in the game files is a big ask. For a jam game though, I think I was able to cover a lot of ground. 

Designing the game 

SHELLIE'S SECRET is a super simple game. So simple, in fact, that it's coded entirely in Python! A lot of the game's tricks are really just doing things with the tkinter GUI toolkit and making the graphics and audio appear to be more primitive than they are. As a result, the code isn't too sophisticated, and with my limited command of Python, trial and error resulted, such as the persistent bug in the code that doesn't allow the font to be used if not installed on the system. Python also isn't well adapted to seamlessly transitioning between .py files in the same way that could have been done with HTML. Otherwise, it was mostly smooth sailing putting the game together, given a copilot was used.

An excerpt of the parser. 

In terms of complexity, the parser is actually quite simple! It's directly calling phrases and spitting out a response with a limit of 20 inputs per stage. There's about 50 words in the parser per stage. I would have liked to make the dialog more complex, but the time constraints of the jam made it important to prioritise the narrative as a whole. If I had more time to complete the game, I probably would have focused on making the parser stages - which are really the only aspects of gameplay - more purposeful, guided by clear hints or prompts, and fixed that pesky font issue. Otherwise, I think the game works as a cohesive if cryptic narrative experience just the way it is. It's been motivating! 

Other Q&As you might like to know: 

  • What was the deal with the upper/lower case text? The HotCoco font is all-bold and highlights lower case words, which were how I wrote them to identify words captured by the parser. Because of the bug mentioned earlier, if you didn't have the font installed, the text would just appear in a default font and the keywords would just be in lower case, which doesn't look too hot. 
  • How did you change the dates of the game files? It's an easy PowerShell command to change a file's creation date. I wanted to set all of the the dates to be random to make it realistic, so I think I used a utility I found online to do that instead. 
  • How did you do the effects at the end? The distortion of the face and the font work on the same principle of shifting pixels. For the face, it's shifting a random polygon(s) of pixels within the screen. For the font, it's much easier and increasing the intensity of the shaking every time the dialog is progressed. 
  • What was the source of the image at the end? It's a archive recording of an ultrasound being taken of a normal, healthy baby in the womb the 90s. That baby would, I presume, be about my age now. Thanks for being part of the cast of SHELLIE'S SECRET, random baby!  

Afterword

If you've somehow read this far, thank you for being interested in the game I've created. I hope to keep making games independently and learning from these experiences to build bigger and better. I already have plenty of ideas on where to take things next. If there's any aspect of this article or the game that piqued your interest or you have any questions or feedback, please reach out. Thanks again! 

Get SHELLIE'S SECRET

Leave a comment

Log in with itch.io to leave a comment.