March 2021

Screenshot from a Studio Spacefarer game.

I’m back!!!

Oh man it feels good to be doing gamedev again (and actually enjoy it).

So first things first, we had a baby!

This lil guy is super cute and has made an awesome addition to our family. As you can probably guess, this is why I spent a few months not doing gamedev. Even when I had time, I didn’t have the emotional or mental bandwidth to work on ProtoDungeon. And that’s to be expected!

But there was another issue: a weird bridge bug. Essentially, you could walk under a bridge… and if you tried to walk on it, you’d fall through it. I could not figure this thing out. Collision was working, options were all set up correctly, etc. Every time I thought about working on my game, I knew this bug was facing me down and I’d have to address it. And I couldn’t get over the mental block.

So I took another tack (I make it sound like this was a choice, but it was more a compulsion): something I’d been thinking about for a while was learning 3D. I wanted to see if I could get some kind of fusion between 3D and pixel art. I won’t go into all that here, but I had a good time, and it really primed the creative pump. If you’re interested here’s my twitter thread, and here’s a thing I made:

At last, around mid-May I had worked up enough courage to finally address the bridge bug back in ProtoDungeon. My 3D journey not only got me some cool skills, but warmed me up. And also the more I thought about it, the more I was sure it was due to one particular piece of code: the edge slip.

This was here so you didn’t run into scenarios like this, where you’re “floating” on the edge:

Basically it would slip you off the edge if you were that far over it. Makes sense, right?

Well, unfortunately, there are a LOT of weird edge cases (haha) where this is straight up broken. Like the bridge. The bridge was so narrow that it just always assumed you were on the edge, so it’d just push you off (rude). And there were plenty of places where you could fall off and just get horribly stuck.

And, sure enough, deleting that code made all of these things miraculously start working.

That felt really good. And even better, I felt like I could keep going! I decided to listen to something my instincts had been saying about the lv3 boots: the dash roll wasn’t working.

The lv3 boots, while equipped, would transform the roll into a dash, making it faster and giving you i-frames (invincibility).

This was fun, but it had problems. It wasn’t intuitive or consistent with how the other items worked. I could’ve figured out a way to teach the player how to use it, probably, but it also wasn’t particularly useful. It meant, first, I’d have to contrive some kind of environment mechanics to make the dash useful, and I don’t want to get too contrived. And second, it meant the standard roll was not actually very useful at all.

I brought this up on the Studio Spacefarer Discord server and after some discussion, I decided to go back to one of my very early ideas from years ago: adding a Pegasus Boots-style dash which the player uses by holding down the item button, “charging it up” via a jump and sprinting on hitting the ground. It sounds complicated, but it feels really good. No invincibility, just crazy speed. Then the roll could get the i-frames, making that more useful too. So behold, the new dash:

And, uh, yeah, this is SUPER fun. And while it’ll be useful in puzzles and stuff, it’s also a good way to just get around (as long as you don’t crash into anything… or maybe even if you do). The boots are all about travel and movement, and while a dash-roll could be included in that, I think a dash-sprint gives a lot more bang for your upgrade buck.

I’m happy to say I got a lot of other stuff done in March, even though I only worked about two weeks total. Here’s the full list…

Changelog:

  • Fixed some incorrect z-object cliff placement .
  • Added bridges that work with the new system (can go over/under them).
  • Fixed a bug that caused bridges to be submerged at the wrong level.
  • Things fixed by removing the edge-slip code.
  • Fixed coming out of the water onto a ramp.
  • Fixed umping up to a ramp.
  • Adjusted the ground logic to prevent getting stuck when falling down a ledge onto a ramp.
  • Completed moving the beach “down” on the z-axis to accommodate tide rising and falling.
  • Removed the old roll dash for the lv3 boots and replaced it with a sprint dash which can be “charged up” with a jump.
  • Added i-frames to the roll.
  • Force the switch to the “item get” state to prevent issues with sprinting and rolling into items.
  • Started testing various other previous bugs to see if they were resolved with the latest changes (a few are, so far!).

That’s all for this month. Thanks for reading!

Also posted on Tumblr.