I began work in January of 2022, expecting development to take 2 to 4 months. Instead, it took 2 years! Why was I so wildly wrong and what can we learn from it?
Hi, I’m Paige. I’ve been working in games since 2012. In December of 2023 I released Yurivania 3: Circle of the Polycule, the fourth title in a series, and by far my most ambitious solo work to date. I grew a lot as a developer while creating it, so I want to look back at that process. In this article I’ll describe what worked and what didn’t.
About the Game
Yurivania 3 is a story-driven exploration game.
It features loads of chatty NPCs, a basic crafting system, various minigames, item collection, recipe learning, a hint system, fast travel, and swimming & flight mechanics. Menus track player progress, knowledge, and quests while providing backstory.
It has no combat and no respawn or failure states. By design, the player cannot become locked out of the ending.
The script is approximately 14,000 words long. The platforming area consists of 340 distinct 160 px by 144 px screens, together with 44 menu screens and 12 minigame screens.
Where I Was When I Started
I fell in love with GB Studio when 2.0 beta was released; it was exactly the right level of complexity for me to get games I liked done quickly on my own. Since 2020 I’ve been using GB Studio to produce the Yurivania series of queer narrative platformers.
In December of 2021 I released Yurivania 2: Josette’s Quest, the largest solo project I’d yet worked on.
I liked it but wanted to make something even better. In particular, each Yurivania game so far featured its own map. I wanted a game where these areas interconnected, allowing the player to fully explore the setting.
I decided to focus on polyamory and the work it takes to keep a relationship healthy, as few games highlight either topic.
I began work in January of 2022, hoping to release before summer. Well, as I mentioned above, that didn’t happen!
Why It Took So Long
Some clues to the issues were found in my git history.
- I underestimated the work it takes to integrate finished content from prior games. For example, I reused layouts. While I’d designed everything to fit together, I knew that the seams between games would need tweaking. I didn’t realize just how much tweaking they’d need!
- With each Yurivania, my standards for quality rose. In the beginning “runs and is technically finishable” was my criteria. For Yurivania 3 my metrics included everything from code quality to NPC count. More polish meant more time!
Git history didn’t reveal everything; another issue occurred to me as I reviewed my design documents.
- Initially I wanted exactly one minigame. That grew to 3 minigames with numerous variations. This is scope creep and I knew better but was swept away by my own excitement.
The biggest culprit of all emerged as I reflected on my task estimation.
- A lot of Yurivania 3 development consisted of tasks I’d done many times before: UI coding, aesthetic design, tile drawing. Reasoning that as these are all easy for me at this point, they shouldn’t take much time. This was wrong. I’d conflated simplicity with speed.
Other Things That Didn’t Work
- Starting Player Testing Too Late
Related, the game had been in production for an entire year before I began any serious play testing. I should’ve gotten feedback much, much earlier, even if only from my own household. Doing so would have alerted me to every other item on this list. - Insufficient Minigame Prototyping
While the platforming got lots of play-testing, the minigames didn’t. In retrospect, this is probably the thing I should have done first: prototype every minigame and iterate on them until they were rock solid.
- Keys Are Kinda Boring
Exploration where the major impediment to progress is simply not having a key in your possession isn’t gripping gameplay. - My Best Writing Is Hidden
I wanted each in-game night to feel distinct, so characters move around, change activities, and say new things. As a result, most dialogue is only available once. Missing these small conversations means missing out on flirting, personalities, lore, and most of my best writing.
This could work for a huge game in which players spend hundreds of hours, as hidden details will be found and enjoyed. But for a small game that people want to experience quickly, it doesn’t. - Flight: Too Much For Too Little
Flight was meant to reward players who dug around for all the extras. And it was fun, just not that fun. The thing is, it took many hours to code and to adjust level geometry to accommodate it. Then a critical bug emerged late in development that I wasn’t able to solve, requiring adjustments to nearly every scene at the last minute.
Things That Worked Well
- Bounce Instead of Respawn
Yurivania is about conversation, exploration, and romance. It took me four games to figure out how to mesh this effectively with traditional 2D platforming, but I finally got there.
Instead of dying in pits or spikes, the player character looks distressed and flails wildly. This funny reaction reinforces that Yurivania is not a precision platformer. The minor jumping challenge gets out of the way quickly so the player can get back to the content they came for.
- Elaborate Cut Scenes
These required custom animation and choreographed actor/camera movement, which did require a lot of time to make. However, players liked them and the ending sequence in particular offers a big payoff, so the time feels well spent. - Ad Hoc World Building
I began this series with a mission: put the player in the shoes of Castlevania enemies. As a result, I always knew where I was going and I could write freeform.
For example, in Yurivania 2, Josette has to reschedule her date with Tibby at the last minute, which required a brief but believable explanation. As Josette is a Palace volunteer, I said she had to work on “the Witches’ Grotto”, a site never previously mentioned. For Yurivania 3, I’d decided on a new player character with many long-distance relationships. Who could that be? A witch from the grotto!
This writing method was fast, frictionless, and produced enjoyable results. - Asset Reuse
An advantage of producing a game series rather than a bunch of one-offs: as I said in a 2022 GB Studio Central interview, I didn’t have to draw any bricks for Yurivania 3 as I already had those tiles from Yurivania 1! - Passionate About the Core Concept
As an old guard Castlevania player, former goth, and pop horror fan, even the most tedious aspects of Yurivania development have been pleasant. - Ludonarrative Harmony
Players enjoyed how the mechanics fit the themes. One even said that Yurivania 3 tied for best mechanics in Yuri Jam 2023! This was an organic result of making games that play queer as well as represent queer people. - Writing from Experience
I’d hosted major portions of my own polycule at my home in the past. Drawing from these experiences gave me plenty of plot ideas and quickly generated mechanical concepts. - Contracting Someone to Make the Music
I can’t do everything on my own! Working with Ember Bland increased the quality of the audio while allowing me to focus on other areas. - Chill Jams
Releasing my games as part of ongoing, noncompetitive jams offered a relaxed environment to develop in, introduced me to like-minded developers, and provided structure without forcing an unsustainable pace. - Tools
In general, all of the tools I used on this project worked extremely well.- GB Studio 2, though limited compared to version 4, is easy and I know it thoroughly.
- Aseprite is uncomplicated yet provides every tool needed for most pixeling jobs.
- Tiled fits well with my workflow of building scenes from tiles.
- Notepad++ is a simple, customizable text editor that can handle large .gbsproj files.
- I don’t love git but I do love version control and it’s the industry standard.
Markdown to the Rescue
One tool worthy of special mention is markdown.
In prior projects I’d used many tools (Draw.io, MS Excel, Codecks, and more) for planning, prototyping, and project management. For Yurivania 3 I decided to do all of this in text files, right in the repository.
The markdown format enables rapidly sketching ideas at the keyboard; I seldom render these into HTML as Notepad++’s syntax highlighting allows scanning large documents easily.
This helped in several ways:
- Focus
Switching between apps less frequently meant fewer context switches and less cognitive load. - Record Keeping
I already make frequent, small commits to track changes to my .gbsproj file, so keeping my notes and task lists alongside it ensured every project element was backed up and readily retrievable. - Organization
I kept a Notes.md file with all of my ideas organized into sections. Loads of development happened in this unified space; for example, while reworking the game progression I could swiftly update the list of NPC locations. - Succinctness
Tables allowed for many sorts of data to be collocated with their relationships visualized, while employing a comprehensive font allowed for complex ideas to be encoded as single characters.
This technique might not work on team projects but as a solo developer I’ll definitely leverage it again.
Take Aways
The biggest single lesson for me is that easy does not mean quick. Next in importance is clearly the need for early player feedback. Beyond this, the well-known perils of scope creep and incautious estimation are clear.
But on the bright side, Yurivania 3 is a great example of the multiplying effect of creating a series, the power of producing something personally resonant, and the happy marriage of low pressure with high structure. Perhaps most noteworthy of all is the utility of low tech, low ceremony production and design tools.
Coder, producer, pixel artist, events organizer, and music fan.
(she/her)