Dev Journal: Near the Peak

On the long, strange grind of tackling this, arguably the greatest challenge of this entire project and maybe even of my career, it’s easy to lose track of time. When the last update came out, I mentioned that my next big goal was to finally and truly tackle the centerpiece of Project Wild One: an NPC engine capable of, in some basic way, interpreting the actions of others around it and choosing from the many different courses of action available to it in a way that actually makes sense. I’ve been calling it AI, but I know you hear that term used a lot for systems based on machine learning these days, and that has nothing to do with my work here– this is all hand-crafted.

A couple months ago I checked in with supporters about how immensely challenging this process has been, and how things were coming together, but it was still such a monstrous task that I could only barely even estimate how much work remained at the time. Since then, I’ve made several significant breakthroughs, and I’m close to a big turning point. Let’s talk a little about the pieces of this system.

First, as I’ve described a few times before, there are a few different major chunks of work of different types to be done with the AI, similar to with the text parsing system I used to warm up and prepare for this: the Core, the Content, and the Infrastructure. The Core requires a lot of heavy coding work to set up how exactly things will be processed in the game. The Content is what I write up in spreadsheets for all the little details– in the text system this was descriptions of actions, but for the AI, it is all the little logical connections for different ways to interpret what’s happening, the specifics of memory and emotion that react to each event. Lastly, the Infrastructure handles all the connections between the Core and the Content, reading the spreadsheets, interpreting them into useful code at runtime, and filling in all the gaps.

I use this approach, separating the game into major chunks that interact with each other, to make it easier to make adjustments and additions to this system in the future. It also opens the door to potentially make it easier to add user-generated content in the future! But right now, I’m most interested in the flexibility it offers me. I’ve been hesitant to add new actions to the game for a long time because making NPCs understand how to use and react to them properly with the existing system is a big, fiddly mess, and even with the options NPCs have now they tend to be very inconsistent and flip-floppy. One of my big focuses with this system has been to make the process of adding new actions and mechanics to the AI’s understanding as simple as possible.

I put a lot of time in developing my ideas for this system ahead of time, but I’ve still been learning a great deal about the possibilities and how best to fit it all together as I’ve worked my way through it. I’ve actually made a great deal of changes to my original concepts at fundamental levels– the way all the pieces fit together is becoming clearer as I finally start clearing away the mist of ambiguity and uncertainty to nail things down with code and sheets. I’ve stripped some elements out, combined others together, and simplified things on several counts where I realized I could do more with less– which is always better, when you’re trying to make code that will be running constantly in the background. It’s felt strangely liberating to let go of ideas, or to realize that some can just be shelved as a “maybe later” and the system will still work just fine for now without it.

One of the big milestones I passed recently was that the main bulk of the Content has been finished– I’ve written out a first draft of all the things an NPC might need to think about to interpret the various actions currently in the game. I actually tweaked it to include a few new additions that I realized should be easy enough to include as part of this whole process, that I think should make general gameplay more rewarding for the player as well. Actually writing out this Content was a huge help in focusing in on what the system needed, and what it didn’t, and since I’m still struggling with some design questions in the Core, I’m thinking about writing out a little more for the next step in the AI thought process– the conversion from Input to Logic.

The other obvious way to divide up and talk about the AI system I’m building is the different parts of the “mind” I’m trying to build: the Input, the Logic, Emotions, and Planning. A lot of this is fuzzy future stuff still, but the basic idea is that I’m focusing on Input for this coming update, just making sure the AI can understand what’s happening around it (and plugging that better understanding into the existing, hodge-podge system), while Logic will be the next big step after, where I actually build out how the AI makes decisions on its goals and how best to accomplish them. I want to get this update out faster (especially since just getting the foundation built is the biggest, hardest part of it all) so I’m sticking to the smallest portion of the AI I can get shipped at once, but it looks like building out just a little of the Logic’s material might help both with plugging it into the existing system and with figuring out some of the last big design questions I’m facing. The Core is coming together as well, I’ve got everything mostly built for how NPCs will physically store memories and interpret them, but how they store and manipulate the abstract ideas those lead to still needs work, and I think that exploring how those pieces will interact with a bunch more of themselves in the Logic section will help me put the puzzle together.

So. The Core is mostly built. The Content is mostly written. The Infrastructure is just waiting on the Core for its final pieces. I’m getting excited, because we’re nearing a big turning point: I should finally be able to turn this thing on, soon. Oh, it’ll be a buggy mess and I’ll have to spend a lot of time fixing things, and there’s still plenty to do to expand it and add other parts on before it’ll actually be useful. But this is a big moment! Not just because it’s a huge milestone, but because when I’m struggling through the thickest stuff, getting to the point I can actually compile whatever I’m working on is huge. It’s a massive morale boost just to be working with an actual working engine and not a big mess of theories and text, and it makes it so much easier to add and modify parts when I can just slap something in, test it, and see what happens. When I talked about what a monstrous challenge this update would be before, I likened it to climbing a mountain. There’s still plenty to do, but going by past experience, you might say I’m nearing the peak– it’s going to be a lot easier and faster going down the other side!

I don’t know how soon I can get the new update out, but in many ways, I can say that the hardest part is behind me, or will be soon. And after I’ve been both looking forward to and dreading this process for… years, now? it is just an incredible feeling to be able to say that much. Part of me isn’t ready to believe it, part of me is afraid to celebrate prematurely lest I hit some new, even greater wall when I still ache from smashing through so many. But it’s enough to put a smile on my face and a sting in my eyes. I’m doing it. I’m getting there.

I’m sorry it’s taken so long, though I can’t say I didn’t expect it. This has been something I’ve been training myself for, shaving pieces off it and analyzing it from every side for a long, long time. For a long time, a small part of me was scared that this was hubris, that I should know better than to aim so high, that I’ve seen that destroy other devs in the past. But I guess I bet everything on me being too stubborn and wanting this too much to let a little thing like it being completely impractical stop me. Apparently that’s what I did with MVOL, too.

Well. I’m talking it up now, but it probably still won’t seem like all that much even once it’s ready. The big thing is that this should be the hardest part to build. The foundation, all of the most fundamental pieces that everything else that comes later will build on. Like a lot of this project, the work will be nearly invisible at first, but you’ll see more of it shining through bit by bit as I build out to take advantage of what I prepared before.

I do hope it’ll shine through, at least a little. I don’t need it to give you some big wow moment. Just little things, little moments where the NPCs surprise you, and you feel more… comfortable, more rewarded for engaging with them. Fewer of those awkward moments where nothing makes sense and you’re snapped out of the fun. I’ll settle for that, for now. It’ll never be perfect, but I think I’m building something I’ll be proud of, hopefully something that feels special to you.

Thank you for your patience and your support as I put myself through all this. I know I’m slower than a lot of other devs, sometimes I feel bad seeing how often they ship stuff out. But they’re pursuing their kind of beauty, and I’m pursuing mine. It might be a strange thing I’m making, but I think it will have value to some folks out there. I deeply appreciate your joining me on this journey. And I thank you for reading. Keep an eye out for more news, hopefully things will be picking up speed soon!

4 thoughts on “Dev Journal: Near the Peak”

  1. The amount of effort and dedication you’ve put into this is quite inspiring, I must say. I’ve been watching you along your journey into making this for a decent while now and I really find in quite amazing. I really hope to see you be able to finish this. I’m rooting for you and hope everything goes as well as it can.

  2. Man I am very impressed jow the things are going. Please take your time as you said its a hard project! If somehow this game you made gets a mod support man I cant even think how things go! Ty lithier, for all of the things you do!

  3. To one of my personal heros,
    Lithier,

    Finding MVOL was literally life-defining for me. It set me on the life journey of self-acceptance as a furry.

    Also,

    I never was taught by anyone, not parents, not teachers, not church leaders, no one, how to:
    Envision my own project.
    Plan it.
    Work it.
    Find ways to bring my focus when needed (every month)
    Never stop working on it.
    Complete it.

    After I found MVOL in 2017, I started on a cooperative story-telling project with 3 other writers. It took us 14 months, from 2017 into 2018.

    Thinking back now, finding MVOL and realizing it was your own creation of your own mind, out in the real world, likely showed me the way. To realize it WAS possible, and then and only then was I also able to do it too.

    Please know this:

    Your work is pivotal for some of us out here. Please do not stop. Please never give up.

    I know there are other people out there like me. Just less vocal.

    Your work is important, more than you can know.

    Press on to the ‘top of Mount everest ‘ my friend.

    Press on.

    ->Wulf Canavar

Leave a Reply

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