Cheddar Beach (2024)

My Visual Novel for Mobile and PC

  • Project: Cheddar Beach 0: Party on Mango St. (2024)
  • Role: Game Design, Art, Programming, Writing, Music (team of 1)
  • Engine: Godot
  • Language: GDScript, python
  • Studio:  Sokay
  • Platform: iOS (iPhone, iPad), Android, Steam (PC)

Cheddar Beach 0 is a story about finding a party on a Friday night, in a world before the existence of cell phones. So you have to know somebody that knows somebody, and find that particular somebody to achieve life's goals!

Goals

  • Write my first story-based game
  • Design a game around UI to leverage my UI expertise
  • Create a world of characters and locations, like my favorite Saturday Morning Cartoons
  • Learn a new game engine and test its capabilities
  • Create a game playable on any device with casual gameplay

Created designs and key art for 20 characters. I drew 28 backgrounds representing many locales of Cheddar Beach.

Writing an Episode


I wrote an over 150 page script that takes into account various dialog options throughout the episode. I learned firsthand about writing dialog for a game. I learned that because of how I designed the game to not have a narrator, and the limitation of not having character expressions and character animations, I had to express the story of the world primarily through the dialogue of the characters.

For example,  If a character "gives" a player something, there's usually a "Here's the thing!" line and a "Thank you for the thing!" as a response.  In some cases, some parts of the story needed to be communicated through the staging of the background illustration.


Processing the Script
Although the Dialogic tool that I used to handle the dialog had a built-in editor, I ended up inputting the script for the game into a spreadsheet. This was primarily to provide a method for handling localization and an easier way to convert the dialog format if necessary.


I created a python tool to convert the spreadsheet's game scene dialog conversations into individual plaintext data files that are loaded in at runtime.


Drawn on a Digital Tablet
A goal of the project was to "separate myself from the computer." Not literally of course (because how else would I live without a computer?) but a separation from "sitting in front a computer all day" to be productive. This led me to decide to create all art for the game on an iPad.


Character Art


For my independent games, I've primarily relied on Sokay's character designer Ricky Enriquez for character designs and artwork. For this project, I wanted to do most of the artwork myself. I'd been programming for so many years that I didn't draw much anymore, and I had basically stopped creating characters myself.

With the main character Hamston, it was easy, he's similar to characters I drew back in 1995. Elementary school days. Once I drew him, it was easy for me to imagine what other characters were in this world.

I primarily sketched out characters as thumbnails in my sketchbook. For the most part, I took photos of those and redrew them in Procreate. A couple of characters I tried drawing in Clip Studio Pro.

Beyond the main characters, it got a bit tricky deciding which types of animals each character would be. And beyond that, which color should they be? Having too many characters of the same color is such a huge concern for me! haha


Background Art - Show it, Don't Tell It

For most backgrounds, I started to sketch thumbnails of them in a sketchbook. Once a first pass of the script was written, that gave me enough information to draw out the backgrounds. I had to decide which elements needed to be communicated in text, versus elements that were visual or contained elements of both.

For example, in the party scene, it's established that the party takes place in a mansion in a "well-off" part of town. To give a sense of the characters making this realization I decided to have a visual gag of a chocolate fondue fountain as soon as they enter, as well has the characters making a comment about it. Later on, the characters remark about the refrigerator in the kitchen.


Programming
I coded Cheddar Beach with GDScript, similar to Python. I leveraged the open source Dialogic 2.0, which is a dialogic system that was reaching an alpha stage as I started development. This allowed me to get a system for bringing characters up on the screen with dialogue pretty quickly. After building a prototype of what the game would "look" and "play" like, I had to build out a system to describe the world to actually make it a "game."

An Early version of Cheddar Beach


The game primarily works by taking the player's current state (character, location, area), which flags were set, and determining which background to display and which actions are available to the player. I created a data format using JSON that describes locations, characters, and items. And each of these types can appear in different states depending on which flags have been set within gameplay.

When talking to characters, entering locations, interacting with objects - various flags are set, which then move the scenario forward. A great deal of time went into establishing these sequences and testing the ways they could go wrong.

While I consider Cheddar Beach a visual novel, in design, I designed it to be less linear than those types of games typically are. Well, the story is pretty linear, but I aimed to give more player agency by giving them the ability to move around and find conversations that aren't essential to the main storyline.

The game's script exists in a spreadsheet. I created a python tool to extract each of the game's conversations into data files in a format that Dialogic can understand.


The Sound of Music

I created the soundtrack of Cheddar Beach on an iPad with Korg Gadget 2. It isn't my first rodeo, as I created Thugjacker: Half's soundtrack with Fruity Loops back in 2004, but since then we've been working with dedicated musicians since 2008, primarily Cryptic Circuitry. I had been experimenting with making beats in Korg Gadget and ended up having a few tracks that could fit in this game so I went all in with the soundtrack.

I aimed to give the game a kind of chill, laid back vibe. Most of the music is set at around 100 bpm. I mostly experimented with sounds and made simple melodies, and selected places where tracks would fit based on the story in the game. I aimed for loops that were around 1-2 minutes long.

Available Now


Back to Work