The first post in a year! OOPSIES! SORRY!
Apparently it’s been a year. OVER a year. I’ve been bouncing between projects (have you tried Thrilled To Be Here yet?), trying to get even slightly on my own feet, and also doing commission work. So I haven’t had a ton of time to do much organized dev work on Spin Crypt / Somervault / Whatever I Was Calling It, just lots of opening the project, prodding at it for 20 minutes, then closing it.
But recently I’ve been touching it more than just the occasional prod! Actually quite a bit!
Very technically, the “tutorial level” has been assembled.
This one.
What have I done in the past year?
Firstly, I tinkered a LOT with the grapple whip. Not a lot to say there. Just subtle timing stuff, nothing major. Along with that, though, are some new random mechanics I made for fun, including a much-improved version of those swings from earlier! They make a lot more sense now and are just slightly (very) janky.
Weeee!!!
They’re like checkpoint bats with no bell to carry! So they grab yours! The game juice on this came out so good. I’m real proud of how these came out. Kind of hellish to make them work from multiple distances, since the radius/arc of your swing would change sizes.
I mostly just made this one for fun. I needed to make something that looked so awesome.
Originally the jank of these came from that you can swing from them at ANY distance - not a fixed one. And I feel like usually people would use some kind of physics simulation, but Gamemaker doesn't really do that, so I had to fake it really well. The initial issue came from that whenever you'd enter a "swinging" state, you'd snap into position, and it couldn't really account properly for your distance.
However far away you were, that would affect how large your swinging arc would be.
Initially I was using a parabola by squaring your distance from the center point, but because of that you'd swing REALLY high near the edges.
I ended up rewriting it to calculate your height (Z position) based on a cosine wave instead! Since the length of a wave is just 1, all I had to do was multiply the wavelength by your distance from the center point! This at least gave you proper arc sizes, but you'd still snap vertically into position, so for that I just accepted the jank and had the player object smoothly slide into position as they swung. It's barely even noticeable now! Still some weirdness but, like, it's totally working now! You even catch on walls! And don't dip inside the floor!
I also began working on the first level, but that required a few mechanics that I hadn’t added yet, the most important being: candles.
(ignore the checkpoint info, it’s weird and evil and didn’t end up being applicable yet.)
Adding candles required a few features to be added: objects you can pick up, a particle system for burning stuff up, and those leaf piles you can burn up. Writing this is real difficult because I’m bouncing around from topic to topic to topic but that’s kind of been the process of development, adding one thing but needing to add another thing to add that then needing to add another thing to add THAT… et cetera…
And I ended up with this. Candle you can pick up that slowly melts, along with leaf tiles that burn as you walk over them. Like an optional breakaway!
Making carriable objects completely undermined anything I'd made involving respawning objects when they're offscreen. The intent was that when an object is offscreen, it would despawn - for optimization sake! Loading that screen would have everything respawn again. Totally good and worked!
... until you start bringing objects BETWEEN rooms/screens. Because carriable objects can be transferred between rooms, this was hellish and created so many issues. I had to rewrite not only the disabling offscreen stuff code but also the respawn system entirely. This kept me away from the project for a VERY long time, it was a huge conundrum. I'm honestly still just scared that I'm gonna be testing and randomly an object will have duplicated itself. I'm terrified. It's terrifying. Everything was so broken. I don't even know how I fixed it. It's like I just kept trial and erroring slight changes until something WORKED. But it works now. Everythings unloading properly, things are respawning properly. It's been months of this.
That particle system also allowed for lots of leaves! Yay! No lag!
And then I built on the leaves, giving some fun leaf piles you can pick up and throw! If you’re not moving, it plops them right down in front of you too.

And with those features added, I was free to actually start making the first level! I did still add features as I went, like traffic cones! That’s actually it I think! They technically behave a lot like the pumpkins in the demo but I’m not going to spam them like I did there. Horrible horrible flashbacks.


Fast-forward like a month or something and the level’s done!

… done-ISH!
The main things that’re missing are 1: playtesting. I had my bestie test it for me just to see if there were any glaring issues, and when there weren’t I went forward with just finishing things as much as I could. I likely won’t be tiling anymore levels til after I’ve had them tested a lot, but I really really wanted a level to be FINISHED!
And 2: Cutscenes. I haven’t actually added cutscene functionality yet. I don’t really remember how I did them in the demo, and I don’t expect it to actually be very difficult, just kind of time consuming. Like a few days’ of work, which is more than I like working with normally LOL. I did actually finish up textboxes for the most part! They still have some sliiiight jank sometimes, but I can fix that later. Hopefully. I’ve hit a few serious walls with them.

Dialogue with actual talk sprites!
I decided very early in that I wanted some stuff to kind of exist outside of the “game world”, specifically UI and character related stuff. Stuff like signs still use the retro style pixelated black textboxes though. And both have totally different code! Which means I have a ton of issues with the retro boxes that for some reason DON’T EXIST IN THE NORMAL HD TEXT DISPLAY!!! But yeah actual in-game cutscenes haven’t started happening yet. So I mostly can’t move on til after I’ve added that.
Lots of bug squashing happened, and I do not feel like explaining any of that, but as far as I know save for the textbox-related bugs everything is in working order! Ignoring the weird bug where leaf-piles fall into a pit and just don’t turn into the walkable tile. But other than that.
I’ve even been writing the dialogue in my phone notes app.
What’s next, then?
Firstly, I need to finish the first level. That’s the most important part. After the first level is done, I can finally move on and start doing new levels -- which will be organized kind of like a Banjo game, from what my friend told me. I’m making if Zelda was Banjo. Again, according to my friend.
Once you finish the tutorial level, and the short graveyard course that serves as another basic tutorial but for your whip, the game is going to open up a lot. I probably sound insane talking about this like I’m the Scope Creep Queen or something. But the general plan is to introduce a hub world, and offer different routes based on which levels you finish.
First attempt at a map of the villain Noctelle’s manor, the hub world, including different routes I considered.
• Finishing a level gives you access to a level key, which is some kind of object you have to carry or drag or transport in some other way to the entrance of another level - adding unique pathing through the hub world depending on how your movement is limited! My friend Taffy says these are like Jiggies. So in this map, you finish the “caves” level and are given some kind of a key that gives you access to the “ice” level! Then you finish the ice level, and that gives you access to the balcony with a route up to the roof where the key to the water/sewer level is. Generally I want full completion to be incredibly optional, with late-game levels being much harder than what you have to do.
• Levels contain candy, which are the main progression item. The game’s win-state is dependant on finding a certain number of it! Which are supposedly kind of like Notes. A little?
• And I also want to include a simpler coin-like collectible, which currently I’m thinking are candy corn. Because Noctelle doesn’t like candy corn. I’d like for you to be able to turn those in for counterfeit candy. Like purple/blue coins in Mario Odyssey/Sunshine!
Noctelle (bat) and her mean older sister. I wanted to name her after crepuscular sleep cycles (like Noctelle -> nocturnal) but Crepuscula is a hilarious name. And bats are crepuscular! SPIDERS are nocturnal!
I’ve also added proper controller support with remapping in the options menu! Now no one gets to complain about anything!
So yeah, things are actually progressing a reasonable amount! I’m concepting very early iterations of the next three stages, and hope to get into a proper designing groove with adding new mechanics -> throwing together a level -> having testers try those.
I feel sooo guilty asking friends to test for me, especially REPEATEDLY, but I don’t have the money to like offer anything. So for now I have to just feel bad and torture my lovely friends.
Aaaand that’s it!
Thank you for reading another awesome blog post! I hope the next one won’t be a year from now!
I likely won’t be showcasing every cool new thing I add, that sounds incredibly depressing and I LOVE SURPRISES, but since 90% of what I’ve done has been mechanics I kind of had to showcase all that. I hope I can find new stuff to talk about on here even without just blankly reciting every new thing I put in the game. More process stuff!