Dev Journal: Juicy Options

We’re putting the final pieces together now! It’s been quite a journey, and I’ve accomplished a lot I wasn’t expecting, as well as faced setbacks and challenges I didn’t see coming. Let’s catch up.

I talked about this a lot more in my previous supporter journal, but the short version is that Portland took the crazy weather in January pretty hard and I had several problems come between me and my work, but I’ve made a lot of big upgrades to how the Text Parsing system works, and the Logic Parsing system behind it as well. A lot of those upgrades will help with setting up the AI overhaul as well! So while it’s been frustrating working so long on something besides directly building the new AI, I’ve at least indirectly been advancing that side of things.

After that update, I started looking at actually writing new content for the Text Parser. This is all the descriptions you actually see in the main window, describing what you and other characters do. Until now, basically all the content I’ve written has been very simple and generic, by necessity– I needed something to at least describe the basics of what’s happening, so it was mostly a matter of filling a thousand little gaps so you could get basic information.

But I wouldn’t exactly call it prose. I was writing like a short-order cook, filling demands as efficiently as I could, maybe trying to at least make it a little nice here and there. Even when I expanded the descriptions before, it was still largely “bottom-up”: I needed to describe a certain scene, so I came up with a basic description that was basically as generic as possible.

While it’s true I didn’t want to spend forever on the basics, there were also several reasons that was necessary. First, you need fallback descriptions that can handle a million different situations. Characters can be many different shapes, in many different situations, in many different emotional states and relationships when a certain action happens, and it’s better to say something simple than to say something that contradicts the situation. If I write a description, I need to make sure it only appears in situations it describes accurately, so while I can add more specific descriptions later as higher layers, I need a bottom layer of extremely vague descriptions to catch all the corner cases.

The second part of this problem was that I didn’t have all that many tools for actually assessing the situation so I could write more specific descriptions. The parser only had basic tools for reading things like whether you’re having sex at all, what your health is at, all the simple stuff. Even if I wanted to add more specific description layers, I could only go so far.

The changes I’ve made have kicked the door wide open on that front. Not only do I have vastly more powerful tools for reading the situation, but I’ve overhauled how the tools themselves are organized in the code so that it’s about ten times easier to add more tools. It used to be I’d get frustrated a lot trying to describe anything because if I came up with an idea that sounded fun or sexy, something like 80% of the time, I’d realize I didn’t have the tools to set the parser for that situation, and adding them would be such a massive amount of work, it wouldn’t be worth it. With these changes, I probably only run into that issue about 15% of the time now, maybe less.

This means I finally have the room to actually get creative with my writing again! I can brainstorm descriptions that sound exciting in some way and usually I can make them work! This allowed me to actually approach my writing in a “top-down” way again where it can be driven by some measure of emotion and desire rather than just filling empty boxes on an assembly line.

Of course, it’s still true that every description needs to match its situation, and I still need to try and make them as vague as I can to make sure players will actually see the line while they’re playing. If I describe an orgasm in such a way it only makes sense if you’re having sex with two werewolves a specific way, while also fighting them, and you have a certain trait and a dragon is watching, then sure, it’ll blow you away if you see that line… but almost nobody will actually get to see it. It’s a balancing act between making it compelling and making it a wide match.

So I’ve been experimenting on that side of things with writing more evocative descriptions, and it’s been nice to flex my writing muscles a little, though it’s still pretty different from just writing a full-on story, or the long narratives of MVOL, especially when things need to be “as vague as possible.” The process has basically been a big alternation between writing content, then coming up with ideas to add more tools to the code, then those new tools opening up even more possibilities I hadn’t thought about for writing content. Finally, I got to the point where I’d written new content for just about everything, but by the end I’d developed so many new ideas I was tempted to go back to the start and expand the sections that only got a little love! But I know this update has gone on long enough, and I’m sure there will be many waves of extra content added in the future, so I’m not in a big rush on that.

As it is, I’m happy to report that the written content for the game has more than doubled! And hopefully it will generally feel higher quality now that I’ve been able to put a little more juice into it. I wasn’t sure what sections most needed improvement, so I had a survey for my supporters to map out the sections most in need of expansion by vote and take some general suggestions and feedback for what kind of content they’d like to see added. There were a few sections that I need to work on mechanically before I can expand, and a few that I was especially motivated/inspired to expand despite them not getting that many votes, but otherwise I largely used their votes as a map for where to focus my efforts! Hopefully the game will be a lot more fun and stimulating to explore now!

I’ll talk a bit more about what has been added in the actual update announcement. Fingers crossed, that shouldn’t be too far off! I’ve sent a spoiler of the raw text of the new content to my proofers while I work on finishing up integrating the content into the game proper and tying up a lot of loose ends with the code. I’ve got a few tools I’ll be trying out for refining how the parser chooses which descriptions to use, to make sure they’re all getting used a decent amount of the time over enough situations. Once the game is in a decent spot, it’ll be off to the proofers for a final checking over!

It frustrates me every time I know I’ll have to ship another update with the old AI, I’m sick of how janky it is and all the problems it makes for players. I’m hoping v0.08 will at least feature a partial replacement, and I know the changes and upgrades I’ve worked on will help make that more likely. I’m excited to tackle the overhaul again, partly because I just want it to be done so I can move on to a million other things! For now though, things are shaping up, and I’m looking forward to putting some meaningful improvements in your hands for all the back-end work I’ve been doing. Keep an eye out for that! Thanks for your support and your patience, guys!

2 thoughts on “Dev Journal: Juicy Options”

  1. This. Is. AWESOME!!! I’m so glad I’m backing your work Lithier, you’ve made such brilliant games and hearing about your journey of going through this game and improving, modifying and remaking everything to be better and more of what you want is incredible! Not to mention all you’ve discovered and implemented already, which is insane.

    You’ve powered through a lot to make it here, and thank you so, so much for everything! I’m so excited to see what you have planned for after the AI is fully overhauled. It’s going to be amazing, that’s for sure.

    1. Thank you for your kind words and your support! Yeah, I knew when I built the framework that I was going to be replacing just about every part of the game at some point, but the journey has been a lot more intense than I expected, and I’ve learned a ton as a programmer and designer since then. And I still have a long way to go, it’s hard to even imagine where we’ll be when I can consider PWO a complete experience!

      Thanks for sticking it out with me through all this craziness! I hope you enjoy what’s to come!

Leave a Reply

Your email address will not be published. Required fields are marked *