A tough week

I will not lie; this was a tough week, perhaps the hardest since development started.

Last week, I mentioned that writing is hard, and now I say that writing a branching narrative is really, really hard. So hard, at times I wondered if Outsider is even feasible. To fully understand why, you will have to read more about branching narratives.

Outsider is not a traditional “Choose your own adventure” game, but its basic structure is similar to the so-called “Branch-and-bottleneck”. This is a fairly easy structure to implement in most games. For instance, you ask “Do you want to go to the castle or the cave?”. If you go to the castle, you fight a knight and get his magic sword. If you go to the cave, you battle the bear only to find a magic sword belonging to a poor warrior who unsuccessfully tried to kill the bear. Either way, you have a magic sword when you’re done.

This is a trivial example, but it shows how you can make the narrative modular while easily tracking the player and story state. Outsider, unfortunately, is a lot more complicated than this because it can’t be this modular. Each path follows an intricate narrative equivalent to finding a good reason to place a sword, a farmer’s almanac, a candelabra, children’s toys, and a rug inside the cave. One can always create a story, but if even one element is off, the entire narrative falls apart… Either because that element makes no sense or is inconsistent with the rest of the story.

Another example would be a conversation where someone says: “I had already told you I like bananas”. But has the player heard that before? If they have, I must say “I had already”, but if they haven’t, it will sound weird. These little details make conversations interesting and not robotic like in many games out there. But if I want to add these, I must remember to track everything previously said.

Some games have offered solutions for this problem, and I’m standing on the shoulders of giants. This is a tractable problem, but it’s really hard to get this right while writing a cohesive narrative that doesn’t feel like a “Choose your own adventure” book. Outsider is a lot more complicated than these books and most such games.

Additionally, Outsider is one of the few games with dynamic narratives that tries very hard not to surprise the player. I hate nothing more than “Do you want to go to the castle or cave?”, two reasonable choices, but I get killed for no good reason simply for choosing “cave”. As with this case, I hate even more when a single choice silently locks me out of an ending, especially when the choice is seemingly unrelated to the ending.

I want Outsider to have one of the most intricate, “pull no punches” dynamic narratives ever done in a video game. But, as I realized this week, this will take time. The “writing” isn’t just “put words on paper”; the gameplay code is a mix of writing and code. It’s stuff you can’t simply ask on Stack Overflow; you have to “git gud” yourself.

After all this doom and gloom, I actually have some good news. I spent last weekend building not only one but two VS Code extensions to help me be more productive. Last week, it took me three days to deliver 4800 words; this week, I delivered 7000 words on Monday and Tuesday alone. With increased productivity, I was able to spend two days polishing narrative branching points and fixing consistency problems. As this was exhausting, I diverted one day to work on music, and I have a good starting point for the official Outsider main theme.

This said, Chapter 1 isn’t done yet. I didn’t plan to be done now, but I planned to be “2 or 3 days away from being done” so I could wrap it up quickly in M4 and then sprint towards the demo release. Right now, I have no idea how long it will take to finish Chapter 1. Maybe 3 days, maybe another 10 days? Hard to tell. It’s all written, but I’m not happy with what I have.

I find it unlikely that I will release the Chapter 1 demo before Thanksgiving. I think the work will be “there” by the 15th, as I promised, but I doubt it will be at the quality level I want. I think I’ll meet my milestone artifact goals, just not the quality goals. Until I know for sure how long it takes to get the story super nice and polished, there will be no public demo. Let’s cross our fingers and hope for better news on the productivity front going forward.

I also decided to do a very limited “tutorial playtest”. This will be devoid of graphics and music and only intends to test one aspect of the game. It will be ugly because I will take out a lot of the code I have. While it could be disappointing for the amazing playtesters who volunteered to help, it will be immensely helpful to the game. Explaining why would take another 500 words so I’ll ask people to just trust me on this one. :)