Home Artists Posts Import Register

Content

We're finally breaking through this movement code nonsense! Holy crap it took a minute. This solution not only fixes the original problem, but also addresses other upcoming features like multiple p*netration. 

Also there's a stream starting now!

FYI we're gradually moving to subscribestar, which is less censored. Plz swap over when convenient! <3

To new patrons: We’re in the middle of an absurdly-long update cycle. Here’s the summary and how to access content.


What's being worked on?

Exciting stuff! I've found the end solution (for real real this time) for the movement code issues I've been facing the past few weeks. It also propels us forward toward multiple p*netration mechanics much faster than I anticipated.

It's taken a while. The original problem was that two different game mechanics needed different position information on the same game object. That doesn't seem bad until you have a bunch of other systems, including other game objects, acting upon that position information without being able to distinguish which position is the one they're looking for.

The deeper issue

My game objects are just so friggin complex. That's why I ran into this, and also why I didn't anticipate the cascade of problems it created. In normal games you can usually describe a game object with a small collection of data:

ENEMY: name, position, health, speed, weapon type, damage, status effects, sprite, current animation.

Not really much room for ambiguity there. Using the ECS (entity component system) you can separate each of those pieces of data out into their own systems, and have the game do predictable logic on each piece of data. It's a way of designing highly reusable, easy-to-maintain code.

But this game/engine is unique. A single body part on a single character is far more complex than the example enemy above. That's because every body part is capable of all sorts of squishy biological things, and everything can be interacted with.

I feel stupid. I've been running on this assumption that the patterns that work for other games will be good here. I've been treating complex game objects like they're simple. 

It was actually a combination of problems that I could've solved somewhat early on, but stubbornly refused to because the solutions all had a code smell- they felt hacky in a way that might grow into an unsolvable mess later on if I didn't find a better way. 

The better way

After 4 different rewrite attempts on the movement code, I was pointed toward the actual (for realsies) solution- to break the game objects down even further, into as many entities as I need to, until each entity is simple again.

If there are six different positions being tracked on the game object, I'll break it down into six different sub-objects instead of trying to grapple with how to sort through the conflicting information. 

It's a massive relief. I didn't realize it, but I've been running into this same problem with more than just movement and positions. It's been stretching out the seams in the game's engine for a while now, and I kept finding ways to avoid a cascading failure until now.

So, yeah. I fixed that yesterday. Still cleaning up the code for a real testing and debugging phase, but the stress that's been building up at being stuck here has finally dissipated.

So, what now? When is the next release?

Honestly I just need to finish up this current code before I know anything. I've been stuck in it too long to have a good overall view of where things are. As a reminder, my Trello has the release checklist.


... and that's all for now!

I'll get to comments and messages over the course of this week. This has been a stressful and somewhat humiliating journey over the last month or so. It felt like such a dumb, basic problem to be holding up the entire project.

But yeah, that's actually pretty normal. I need to be less self-critical over things like this, cause it's detrimental to my well-being and productivity, which can create a very de-motivating spiral. I'm getting better at not doing that, but argh bad habits >.<

Thank you all for sticking with me. I can't believe y'all are still here, but I appreciate the hell out of you. 

<3

Comments

VitAnyaNaked

<p style="color: #008600;">Thanks for posting. Yes, now it’s a bit difficult for you, but I think you will cope with this all soon. Cheer up and thtink positively. Best wishes!</p>