Really wasn’t feeling it, today. Managed to replace all the stairs in the dungeon, sorted out proper collision for them, and got them textured up. They look nicer, but nothing special. Started on some floor indicators for the Sticky Mitt totems, but didn’t get them finished.
Much more productive, today…
The sticky mitt totems now trigger indicators, that light up to tell the player something is happening. The indicators act in sequence, in this example, two totems need to be powered up for the conveyors to be turned off. If you don’t do both in time, you have to start again. Nothing too fancy at this point, as it’s the player’s first encounter with them.
A couple of things have fallen out of this.
First, my camera is way too busy. The problem is specific to the dual actor follow mode, and I’ve been aware of it for a while. This mode tries to pick a safe point between the player character and something of interest, while moving the camera smoothly to and fro. It’s fine when the “something of interest” is relatively static, like an NPC during dialog, but when it’s following something active, like the fishing float or the Sticky Mitt, it’s snapping.
Part of this due to the distance the camera is moving away from the player, the return is too far for the camera to cover, comfortably, in the timeframe, so I fixed that by adding a definable offset. It’ll default to the mid-point, but if I want to bias it to remain closer to the player then I can pass in a different divisor.
I was also being a bit heavy handed by moving the camera to focus on each event the totems were generating. The golden rule is “Do Not Fuck with the Camera”, so I’ve rolled back from that and try and freeze the camera in place as much as possible.
I need to add one more thing to all this; a lazier “return to player” mode, for those times where I know I’ve blocked player movement. I might be able to jump straight into the existing “Player Idle” update for this, but I’ve run out of time today.
My other issue is with ZTargets. When I changed the arm/disarm to being automatic, the ZTargets ended up being hidden most of the time. I’m going to go back in and flip this so that you can ZTarget actors when unarmed/unencumbered. This’ll allow you to ZTarget things you want to throw the Mitt at. Like Totems…
ZTargets are now much less selective about when they appear, and a little more robust when being used. The changes ended up being a mix of small improvements and code deletion. (I love the smell of burning code…)
I’ve not been happy with the sword’s auto-disarm for a while. It was a timer that fired after a sword swipe, with a series of checks for events that could block it, like moving through doors. Nice idea, but in practice it was rubbish. So, I changed it to wait until the player is idle for a couple of seconds and instead of actively blocking, I take those events as opportunities to disarm. That way the animation is actually visible and doesn’t occur at some oddly random point…
A lot of work for a small gain, but there’s one extra benefit: now that I’m tracking if the player is idle I can easily add incidental animations. I was always annoyed that I didn’t have the time to do that in Lumo…
I added some black “cinematic” bars, to the top and bottom of the screen, that appear when I take the camera and/or control away from the player. This is the same visual language that I used in Lumo, which I’ve avoided up to now in the hope that I’d come up with something better. But I didn’t…
Now they’re in, I like them. It does make more sense to have visual markers when the camera’s yoinked away. It’s simpler to intuit, so makes an immediate improvement to how things feel.
I’ve adding a bunch of helper functions into the Room Controller base-class, for locking the player, making them look at things, play montages, and manipulate the game camera. I also converted most of the existing Dungeon rooms to use the new helpers.
I hated sequencing cut-scenes in Lumo, they took days and broke constantly but these first few attempts have ended up being quite smooth looking. There’s a surprising amount of camera pass-the-parcel going on, under the hood, but you wouldn’t know it to look at it. Needs audio, camera shake and some VFX, but yeah, Ship It!
Videos really big? That's probably because the browser hasn't refreshed the CSS file. Mash Shift+F5 and it'll get there eventually...
There won't be a blog next week; I'm off to the Lake District to climb a hill and get rained on. Normal service will resume in a couple of weeks! Stay Safe!