Bodeville Logo
TWITTER   |   DISCORD   |   BLOG


Dev log #6. Writing with Twine and Yarn

We’ve been writing a lot of content for Chief Emoji Officer lately. As the amount of dialogue and branches got bigger and bigger, it became hard to visualize the story progression. To make our workflow easier, we stitched together two powerful tools - Twine and Yarn. Here’s what we did.

Yarn is a Unity-based dialogue engine. It supports most of the features that you’ll need off the bat, like conditionals, jumps, and multiple-choice responses. It was a natural tool to start writing with and it sufficed for a long time.

Yarn text format
Writing content in yarn

But as our game got bigger and branchier, it became difficult to visualize all the different options. So then we tried writing in Twine.

Twine's visual text editor
Twine's visual text editor

As you can see, twine has a really great visual text editor. The fact that it shows the links between nodes helps immensely.

But we were limited by the fact that the Twine execution engines are only written for web browsers. I couldn't find an easy way to execute the twine dialogue in Unity. What to do?

At first, I started writing my own C# parser and execution engine for the twine format. I got a proof of concept up and running, albeit with very limited features, in a day. It was promising until I realized the sheer number of features I’d need to support - conditionals, basic math operations, setting and getting variables. When I finally started researching parser generators I knew I was too far down the rabbit hole.

Then I thought - Yarn has a great execution engine. What would happen if I dumped Yarn-formatted text into the Twine nodes?

Twine's visual text editor
A Twine node with Yarn-formatted text

Twine doesn’t care much what’s in your nodes - which is a great thing in our situation because we can put Yarn functions and commands directly in the Twine nodes without alteration (see {GetPlayerName()}). Coincidentally, the Chapbook format recognizes curly brackets and gives us nice purple highlighting.

The only non-Yarn syntax was for jumps. I really wanted to use square-bracket jumps in Twine such as [[orientation2]] so we could see the links between nodes in the Twine editor.

With the text in the twine, it is time to translate. Twine publishes files in HTML so I had to write a converter to parse the Twine HTML files and write Yarn files from them. That was actually pretty straightforward, except for the part where I had to remember how to use regular expressions

Here’s the regex I use to extract the node content from the Twine HTML (which are stored as <tw-passagedata> elements).

A regular expression for parsing twine nodes
Regular expressions were never my friend

I only had to make very minor changes to the node content to make it suitable for yarn. It has to be HTML-decoded first of all. Then, I replace any instances of Twine-style jump operations such as [[orientation2]] to yarn style <<jump orientation2>>.

Screenshot showing our tool in a Unity Window
Adding the Twine-to-Yarn converter as a unity menu option.

Finally, I made a Unity menu item for the Twine to Yarn converter. And that’s it! We get the best of both worlds - Twine’s visual editor and Yarn’s Unity execution engine.

Bo
1/25/2023



2022, Wrapped

That went quickly!

Bodeville’s first few months have come and gone, and what have we done in that time?

By the numbers, with a grand total of 43 tweets, the activity we’ve done the most of is tweeting. We frequently share game updates and occasionally an epic fail. Our most favoritest tags are #indiedev, #gamedev, #screenshotsaturday and #followfriday. Find us on twitter @bodevillegames.

In a distant second, with a total of 5 entries, our second most frequent activity is writing dev logs. We’ve written these to give some insight into the game development process here at Bodeville. We showed off our first and second games in development, talked about efficient game development, and how we create characters for our games.

The bronze medal for third place, with 2 under development, goes to making games. We showed off prototypes for our narrative adventure game Watchmakers and our corporate text-adventure called You are CEO! We hope to ship CEO in the spring, followed later in the year with Watchmakers.

Thanks for being a part of it. We can’t wait for the new year and all the excitement that it'll bring! Hope you all had a great holiday season and we’ll catch you in 2023.

Alexia and Bo
12/27/2022



Dev log #5. Creating Characters for Narrative Games

We've got a lot of characters to create in each of our two narrative games. Here’s a summary of our process and our progress so far.

What's the world and game like?

We started by answering general questions on the game. You Are CEO is a tongue-in-cheek game that's made to poke fun at the corporate world. The tone we had to find was going to be somewhat funny, not too serious, but a little too positive. The world didn't matter as much visually as it does in Watchmakers since it's a 2D text adventure game, but we plan on making it consistent and making puns throughout the game in the text to build the world around the player.

Then we chose a theme to constrain the types of characters you'd encounter in the game. In You Are CEO we chose to go with animals. Inspired by Bojack Horseman, they'll turn out amusing, a little dark, and irreverent. For Watchmakers, we landed on demons/magic characters.

Start with References

I typically start with references to get inspiration, create a moodboard and collect a bunch of assets to pull from. I'll either browse Sketchfab or look through google images, but this time I used references from DALL-E, in an attempt to generate a lot of different looks, compositions, and styles. I've tried Midjourney but it's trained on a different dataset, and I've found that most things I get from Midjourney are either sad looking or too serious. So we landed on a cartoony look since our game is tongue-in-cheek.

Generated image from DALL-E Generated image from DALL-E Generated image from DALL-E
Generated images from DALL-E

Combining inspiration from this, we write a blurb about the character, their gender identity, social class, their role in the game, and whatever makes them unique, including key attributes, visuals, silhouette, and voice.

Finding the Art Style for Concepts

I like to tinker with art style while doing concepts so I can find myself a direction, including materials, color, composition.

So for the CEO characters, I researched brushes for Procreate and found the color palettes that would invoke the mood we were going for.

I imported a file into Procreate of some concept art (Moebius) I liked the colors of so I could use this palette across the characters.

Image from which the color palette was sampled Applying the color paletter
Importing a color palette I liked

And I'm using a specific set of brushes to achieve the textures of the fill and style of the lines

Final character icon Final character icon Final character icon
Final character images

Naming Characters

Sometimes the names just come to you. Other times you have to see the character in front of you before you know the name. And sometimes you need a road trip to really get inspired. I like to make the visuals and description of the character and then get inspiration from the things around me to come up with the perfect names.

Alexia
12/13/2022



Dev log #4. Bodeville’s second prototype!

Today we’re sharing a new game that we’ve been working on - a text adventure in a corporate messaging tool, where the goal is to become CEO by only using emojis! We’ve had a lot of laughs developing it so far. It’s much needed therapy after years of corporate life. Its working title is You Are CEO.

You Are CEO gameplay

You may ask - one game seems like enough; so why are we developing two?

When we launched Bodeville, it seemed natural that we’d just start out with one game. Alexia and I collectively dreamed up game ideas and eventually narrowed them down until we landed on an open-world narrative about a character who delivers magical watches to people who wish they could revisit some of the decisions they’ve made in their lives.

So we went full-steam ahead with Watchmakers. Things were going well and we were making steady progress. But I started to notice that we had to deliberate over almost every decision, big or small. Not only did that take a lot of time, it consumed a lot of mental energy. That energy drain is something I first noticed during the pandemic when I was a manager sitting on Zoom meetings all the time. Building things gives me energy, but talking about things drains it.

I was looking for ways to solve the too-much-negotation problem when a crazy idea struck me - what if we made a second game in parallel? The decision-making process on each game would be much simpler and we could still help each other out with engineering, art, game design as necessary.

It was a few weeks into Watchmakers development that I ran that idea by Alexia. Two games seemed daunting, but she agreed to try it out. She’d take over Watchmakers, and I’d run with a new game. I already knew which game I wanted to make - a tongue-in-cheek game where you’d climb the corporate ladder over a slick messaging platform.

The shift to two games has been working well so far. The development of Watchmakers will take longer but our overall velocity has increased. Alexia and I still talk everyday but we no longer need to haggle over creative decisions. Instead, we focus on planning, feedback, and how we can help each other out. And if one of us needs a break we can go spend a day working on the other game.

Bo
11/29/2022



Dev Log #3: Finding the Right Team to Start a Game Studio

This is part 1 in a series about the business side of indie games. If you like this kind of post, please let us know on twitter (@bodevillegames) and we’ll keep writing more like this.

Unless you’ve got the courage to go it alone, finding your business partner or partners is step one. Don’t take this part lightly! No matter how much you like someone on a personal level, they might be the wrong business partner.

There are a lot of questions that need to be answered before you determine that you’ve found the right partner. As exciting as it is to start a game company, don’t get dreamy-eyed until you’ve answered these questions as dispassionately as possible.

What are your goals for the company?

Any indie game developer wants to make games in complete freedom. After all, this is our liberation from the constraints of AAA game development. But sharing that sentiment does not mean you’ve found the right partner.

Get to the more existential questions - what is the goal for the company in five years? Do you want to be acquired, take rounds of venture capital money en route to an IPO, or stay private? Any of these are valid options, but if you and your partners are not aligned on this fundamental question you will have conflicts later on.

Money is a big issue! You won’t have any revenue until your first game ships. How long is each person’s financial runway? Before that runway ends, you will need to have shipped a game or raised money.

These are critical conversations to have with your potential partner. The differences here can be irreconcilable and may sink the partnership a year or two down the road. Talk about them first when you can still walk away.

How well do you work together?

It’s no coincidence that the founders of many companies have worked together in the past. Having worked with a person in the past is the only reliable way to know how well you will work together in the future. Knowing somebody socially does *not* mean that you will work well with them.

Alexia and I worked together previously and realized that we share many traits that make us work together well - a strong work ethic, a distaste for bullshit, a willingness to wear many hats and always be learning.

Starting a company with an acquaintance is safer than starting a company with a close friend or family member. If things don’t work out you can go separate ways with less of a mess.

What skills do you bring?

Opposites attract here. It’s much better to have one good engineer and one good game designer than two good engineers and no good game designers.

A single part of any game that is not done well - whether art, game design, or engineering - can sink the entire thing. Also, marketing is increasingly important for indie games these days - if you make a great game in a vacuum nobody will know about it.

If your team is missing a skill set, you need a plan. Contracting this work out is fine for some parts of the game (e.g. some types of art, music, community management). But you will still need somebody on your team to have the vision and make sure the contract work is up to par.

If you prefer not to contract then you better buckle up, watch some Youtube tutorials and become an expert, quick!

Okay, go!

Once you’ve found your partner(s), there’s still a lot of work to do! Among other things, you’ll want to record all of these decisions in the company’s Operating Agreement. But that’s a topic for another post another day.

Bo
11/22/2022



Dev log #2: Efficient game development

Building an entire game with only two people means we don’t have the luxury of wasting time. Here’s some insight into how we develop at Bodeville.

Decisions happen fast

Alexia is the game designer of Watchmakers, and she is empowered to make all creative decisions. Having a single leader means that we don’t spend endless hours debating every detail of the game.

Meetings

On average Alexia and I talk only once a day on voice chat. Having so few meetings is one of my favorite things about tiny companies. The conversations we do have typically fall into one of these buckets.

  • Play testing. This is one of the most critical parts of game development. Alexia is amazing at seeking out feedback and learning from it.
  • Sounding board. When working solo, it’s quite easy to get stuck or doubt your decisions. Having the other person to bounce ideas off or confirm decisions has been helpful.
  • Helping out. Is there anything we can do for each other? Engineering, modeling, art, blog posts, etc? Alexia and my skills are totally complementary so we each need to help each other often.

Always make forward progress

A blank canvas is intimidating. I’m always worrying “what if it’s not perfect?” We try to overcome this by encouraging each other to get something done. You will learn from what you’ve built and you will always improve it later. Sitting and spinning your wheels keeps you stuck in the same place, watching that blank canvas.

Maximize cost/benefit

Time is precious for indie devs. We try to get the most return on every single day of work. For instance, suppose that spending six hours working on a shader will make the game better. Should we do it? Maybe, maybe not. If, instead, spending two hours on that shader, three hours writing more story, and one hour playtesting will make the game even better, then that’s the best route. It’s not only about making the game better; it’s about making the game better in the fastest way possible.

A couple good GDC talks

The developers of A Short Hike (video) and The First Tree (video) each gave a GDC talk about making their solo games. I highly recommend you watch these if you’re making an indie game with a small team. Both contain great pearls of wisdom; I particularly like “play to your strengths” and “never have a 0% day.”

Bo
11/15/2022



Dev log #1: Our first prototype!

Thank you all for the warm wishes when we announced our company last week! We weren’t expecting to get articles in multiple press outlets already… pretty cool! The disbelief is just starting to fade away.

Today we are giving a sneak peek of our first game! Its working title is Watchmakers. We’re still a long way from launching but it’s exciting to show what we’ve been working on and talk about how we got to this point.

First look at Watchmakers

When you start a game studio there is an awful lot to do. You have to register the business, talk to a lawyer, an accountant, a banker, etc etc. It’s a lot of work, but it’s all been done a thousand times before so it’s pretty straightforward.

But then you get to the point where you look at each other and say “what should we build?” Out of the universe of possible games to build, how on Earth are we supposed to pick one?

Our first attempt to answer that question was to play a lot of games and talk about them. Two of our mutual favorites that we played were Firewatch and A Short Hike. They are both reasonable in scope, beautiful, and have an awesome story. We also loved the story and art style of A Night in the Woods. AAA games like Breath of the Wild and (one of my favorites) Horizon: Zero Dawn are amazing but far too much scope. The music from Celeste is beautiful and inspiring.

We learned that we both love open world narrative games and decided to focus there. Even so, the universe of open-world narrative games is still huge. So we had to figure out how to narrow it down again. We threw a lot of ideas at the wall, wrote up game design documents, but still didn’t have “the one.”

We spent a while spinning our wheels thinking of random game ideas until we asked ourselves “what is the story that we need to tell?” Our first game couldn’t be just any story, it had to be one that means something to us.

There are so many people that, for any number of reasons, don’t make the jump that could change their lives forever. What if we can inspire one or two people to do so? This is the story behind Watchmakers.

Alexia and Bo
11/8/2022

P.S. This is the first of our dev logs; we’ll aim to publish a new one here each week. Please send us any feedback you have or topics that you’re curious to hear more about.

P.P.S. Look out for updates in the next few days on Twitter (@bodevillegames) and in our newsletter (sign up on our home page). We'll be doing regular visual status updates that we hope will show off our design process, get us some early feedback, and keep our momentum going



Welcome to Bodeville!

Today, we announce the launch of Bodeville, our very own game studio!

Bodeville is founded and owned by Alexia Mandeville and Bo Boghosian. Alexia brings a wealth of game design, marketing, and art skills, having come from the Florida swamp by means of Niantic and Meta. Bo, previously an engineer at Niantic and Google, will also attempt to be a finance guy and composer in Bodeville.

Though our skill sets may be opposites, we have two shared goals as a company. The first is to create beautiful worlds, stories, and characters. The second is to always be fair to our players and listen to you.

We believe that being a truly independent company is the best way to accomplish these goals. There are no investors, financial projections, focus groups, or exit strategies in Bodeville. Just beach umbrellas and fruity drinks. Our hope is that enough people will enjoy our games that we can remain independent.

We'll be in touch here and on twitter (@bodevillegames). Also, feel free to sign up for our newsletter to get the latest updates (we don't sell or share your info).

We look forward to the journey with you!

Alexia and Bo
11/1/2022