Archive:
After cogitating over the weekend, I pulled the Utility AI
out of the Snake. It’s overkill. It’s either moving, dizzy, or dead.
I’ve done the world’s filthiest hack to get around the lack of Root Movement in the animation: a timeline, triggered by an Animation Notify
.
As bad as this is, it turned out to be super tweakable. I could sit in the timeline’s curve editor until I got it how I wanted. The result, with the sand particles and sound effects added, is decent!
I also added foot-fall particles, and little decals under the player’s feet that leave indents in the sand:
The idea for this room is to make a small, multipart sequence:
My intention, today, was to get the Snake responding to the dive bomb, but it opened up a can of worms…
Since the ForceInteractives
went in, back in [[Week 17]], there’s been a tiny difference between falling into a float naturally – from a jump, or by running off a platform – verses being thrown into the air by a spring. And by tiny, I mean a few frames. Enough for me to feel, but not quite enough for me to dig into and fix. Yesterday, as I was messing about with the diving board, I realised this was a much more serious bug, that could, under a specific set of circumstances, prevent the player from cancelling into a dive bomb entirely. And we can’t be having that.
Hands-up; the Player Character’s jump grew arms and legs. There’s a Finite State Machine [FSM] in the C++ class that does the heavy lifting. And this is referred to by the animation blueprint, controlling the transitions. Over time, I’ve layered Gameplay Tags
on top of the whole thing, resulting in cracks for race conditions and other timing problems to fall into. Like the different ways you can enter into float.
So I’ve stepped through everything, cleaned up Jump/Float Cancel and tweaked the ForceInteractives
. As far as I can see (and feel), floating and dive-bombing is consistent.
I re-wrote how the camera shake works when you make a heavy landing, and added dive bomb detection into the Camera Origin
so it responds to the character’s fall more quickly. Oh, and the Snake goes dizzy if a ground impact is “heavy” enough.
Maenhir’s BFI Certificate for Video Games Tax Relief expired, so I’ve had a fun day reconciling the company accounts, working out costs spent to date (under my original budget estimate, woo!) and filling in the paperwork for an extension. Fair play to the BFI, every time I’ve dealt with them, they’ve been wonderful.
Solicitors, less so. It took me a while to find one that wasn’t charging 50 quid to witness me signing a statutory declaration.
Oh, and you can kick the snake if it’s dizzy.
Another day spent on feel. This one’s a bit more complicated than the Float/Dive Bomb stuff from Tuesday: Jumping and Double Jumping. To get the Jump to feel nice, I do a couple of checks; one for early button presses, and one for late button presses. It makes the internal FSM a bit more convoluted, but it works, and it’s solid.
Double Jump’s rules were a little fuzzier (probably because I added it later) and the changes to float have made it obvious where it wasn’t doing what the player would expect. So I’ve spent most of the day pulling it apart and putting it back together again. Now it’s 100% consistent, whether you’re jumping off the ground, off platforms, or Leeroying into the wild blue yonder.
It also dawned on me; I was being a dumb-ass by putting grass textures on the first couple of rooms. The map’s called Sandy Whites. That’s the joke. Derp.
Friends:
If you like any of my work, please consider checking out some of the fantastic games made by the following super talented people: