[Blog] Vampire Killer Beaumont Engine - November Update #01 (Patreon)
Content
Since the start of November, I've been doing game development a bit each day (sometimes all day) instead of drawing. It's nice to be productive in other ways besides drawing, but I still feel uncomfortable because, like... It feels like I'm not working and I will upset the consumers.
Anyway, here's some recent developments concerning the Beaumont Engine.
Stairs Detection Range
Stairs are very particular in the classic Castlevania games, with so many interesting details I hadn't considered until I started to actually study them. Even then, I have come to notice a detail I forgot about.
In CV, holding up / down within range of a staircase will cause the character to auto-walk to the staircase. Only when they reach a certain point will they start to enter the staircase state, in which they can ascend or descend. Although I've had this feature a long time now, my range was completely off.
In the screenshots below, you will see two characters by a staircase. Their positions represent the closest distance required to "auto walk."
My Engine:
While the left distance is reasonable, the right is not. That's way too far away from the staircase - almost an entire block away from the entry point. This is a problem if you're trying to do any other type of action, like crouching to avoid taking damage. Imagine trying to engage in combat, only for the hero to turn around and face their back to an enemy that's attacking you.
For reference, here is the range in the games serving as our inspiration:
Castlevania | Castlevania 3: Dracula's Curse | Bloodstained: Curse of the Moon 2
The second position is much closer to the staircase, at the halfway point of a single staircase tile - between the first and second steps.
Although it took a bit of work (because my staircase system is poorly designed), I managed to accomplish that in my engine. The circles represent the detection range, and I've moved the collision mask of the stairs to the corner of the tile.
Duct Tape Solution
Despite this, I am still afflicted by the dreaded "Skywalker Bug," in which the player can climb into the sky indefinitely. I've created a solution, but it's a BAD solution - like slapping duct tape onto something that's falling apart, and you can still see the cracks spread out from under the tape. Now I understand how Bethesda must feel...
So, I'm sure I'll have to rewrite my entire staircase system. But it may require more advanced techniques than what I'm currently capable of...
My current solution is: "if you're not in this orange square, you can't be in the stairs state." This doesn't necessarily fix the bug, it just shuts it down before the player can ascend into the sky, so you can still see the character TRY to do it. I don't like how I'm now relying on 5 separate objects to make stairs function either... Those objects add up and the stairs will break if I forget to include all 5 for EACH staircase.
That's discouraging.
The Beginnings of a Sprite
Creating pixel art sprites feels a bit like painting in some ways. I need to get used to the reduction of detail however, since these images are very small, almost the size of any of the individual letters in this sentence. That means some detail won't show up or they'll make the image harder to read.
The sprites still need more work, and they can take a long time (especially since I'm not actually skilled at pixel art). It's a little sad though, because I've gone through over 30 different variations, but it's difficult to show just how much work this one sprite is because it doesn't look like a whole lot of work...
Anyway, that's it for now. Don't forget to eat & sleep.