Dev Journal: Thinking and Writing

So where are we with Project Wild One, in the grand scheme of things? After anticipating it for many years as a complicated but exciting new project I’d hoped I might get to someday, I finally gained the skills necessary and took the time to hammer out the most incredibly simple prototype for the idea and named it v0.01. It’s hard to overstate how much it was basically a bundle of placeholders ready to be expanded into the game I wanted to make, but it was enough to give a very rough idea of the direction I was going in.

But figuring out how to build that basic framework to be expandable and to last the long term was just the first challenge. I’ve been learning more about what’s possible every day working on this project, and my expectations and goals have slowly shifted as I’ve figured out the many details necessary for this project to happen. I’ve come to understand more about what this game would be like when it’s closer to finished, and I’ve tried to better understand how it will feel, what the challenges will be for the player, where the attention will focus, and what I can do to shift that, to try to understand where these things should lie and how I can get the player there. It’s still really hard to predict that very well this far ahead, but I’m making a lot of the big decisions for that right now, so I need to keep it in mind.

I have plans for expanding and changing just about everything, and some things will have to literally be changed in waves to expand and improve further as other things build supported by them will then support the new parts. Choosing what to even do next is tough! I get a lot of requests for making changes to this or that, but a lot of that I look at and I can only say “that won’t even be there for long, don’t worry about it” or “that would mean adding/changing a lot of stuff in another system that’s about to get totally revamped.” It feels silly. I try to work in quality of life changes here and there to keep the demos reasonably fun as they roll out, but it feels far too early to be spending too much time on that.

I settled on adding multiple NPCs for v0.02 as it felt like one of the most fundamental shifts in how the basic gameplay works, and a lot of changes will have to revolve around that groundwork in the future. I really wanted to develop a more advanced AI system, but I knew it would make sense to have everything in place for interacting with multiple NPCs first for that anyway. Once that was done, I spent a long time thinking about how to actually make a more “realistic” AI that can think and feel and read situations, which is itself one of the most tremendous challenges programmers face to begin with. I can only go so far with it, obviously, but there were other problems coming up to make it more complicated.

I’ve dreaded the possibility and told myself I wouldn’t have to deal with it, but performance issues started coming up with v0.02 and there was no denying I’d have to start facing it and designing with the limitations of systems in mind. That was never much of a problem with MVOL besides maybe storing all the art efficiently as it got bigger, but the sheer amount of data PWO tracks has started causing problems on some devices.

So not only do I need to find a good way to make an AI that can understand your (and others’) intentions and develop its own attitude with thoughts and feelings, but I need to make it so multiple AIs can do that at the same time, both in your presence and in the background, and all without using so much memory that it locks up on your phone. So… it’s a challenge. I ended up doing research to learn more about how memory actually “works” and where the bottlenecks are, what I can do to minimize my usage and what things will or won’t be possible, and that started filling up my to-do list with support systems and alterations I’ll need to make to make this AI system possible.

But the next thing I knew, I’d spent almost two months figuring all this stuff out and had almost nothing actually, physically coded. It was all pure concept work for wrapping my head around just how big a challenge this would be, and trying to find ways to compromise and pare things down to their essence so it wouldn’t become too impossibly large a goal for me to actually accomplish. But I didn’t have anything to show for all that work.

So I shifted focus. For the changes to AI to be “visible” I knew the text output system would need an upgrade, which was already desperately needed, and which would also overlap very nicely with one of the core technologies I need to get running to track things in the background and make a more involved AI possible. My recent experiments with Project Voice has also prepared me for this, helping me get a new system for parsing content from a CSV file running with much more confidence and a more robust approach. That has been my main focus in the last month or so, and I’m happy to say it’s coming along well! It’s turned into quite a project building out some of the “logic structure” for the game to understand itself that will hopefully also help with AI, but I believe I’ve passed the biggest hurdles in getting it all online. Just the other day I finally got it all to the point of testing feeding actual spreadsheets into it, and after maybe eight rounds of refinement and fixing bugs, I got a clean test parse, which I was very happy with.

That means a few things at this point. That means that from this point, I just need to polish up a few more pieces and flesh out all the options for what a parser can read and what the game can “figure out” based on the input, and it’ll be time to start writing actual content for the first time in what seems an age again. This new text engine should be capable of a great deal, but at the most basic level, it will allow for a given action to be described many different ways depending on the situation. As an example, pushing deeper during sex might have very different lines depending on if you’re near orgasm, or if they are, or if others are involved, or if the person you’re having sex with is exhausted or wounded. It should allow the prose to feel much more “alive,” detailed, and interesting, I hope, and it will be the first step toward making the characters, in turn, feel more reactive and “present.”

But perhaps even more exciting, to some, is that this will open the door for possibly adding some very basic user-generated content. I’m not sure if this will make it into v0.03, but I’ve been building all of this with the side goal in mind that players will be able to fill out a spreadsheet with other text lines specific to various situations, feed them into the game, and see that content play out on screen. That content could be shared with others and consolidated into packs of fresh content or maybe even stuff specialized to folks’ interests to help people have more fun with PWO while I’m still working on this super base-level stuff. I’d certainly be interested to see what folks come up with when given the tools to add their own content, and if writers consent, I might even add in or adapt some of their content for the game for everyone to enjoy.

So that would be a pretty exciting prospect I think! And there are more potential surprises in store besides that, but I don’t want to promise too much while everything is still shaking out. Project Wild One is still changing quite wildly indeed this early in development, and I think you may be quite surprised to see how it expands from here on some counts, but a big part of the game’s goals is to offer a flexible experience, so hopefully if I do go in some directions you’re less excited about, you’ll still be able to customize the game into something you enjoy!

Still so much to do, and those side things are still creeping in on me now and then. I appreciate your patience as I try to bring something very new and very special into the world. Thanks for reading!

Leave a Reply

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