Wasn’t quite sure what to make a start on, this week, so today was all over the place.
Forgot to post the latest dev vlog to Steam. That’s always a ball-ache. Steam requires several images, which it uses as headers in various places, for each News post. In fact, this is one of the lesser-known evils of game dev: producing capsule images.
Every shop and social media type has several, bespoke, image requirements for everything you post. None of which are the same. I hate making these things with a passion. Anyway. Today I made three more.
Spent about 2.5 hours writing up the requirements for the next set of dialog lines that I need from Dan.
After that I was in an NPC kinda mood, so made a placeholder for Laura Cruz (yeah, Tomb Raider) who’s a recurring character, added Dan’s dialog, and placed them in the game.
Also made a placeholder for Mark Sizzum, because some people might not have worked out the politics of this game by the time they bump into them.
Believe it or not, there’s some backstory to the world that I’ve been fiddling with for a while. I asked Dan to write a few explanatory pages, with the idea that I could hide them around the world for the player to discover. Like most things, these are optional, but if you do find them, they’ll put a nice spin on everything.
They’re a weird sort of pickup, though. They need to bring-up on-screen text when collected, and do the same from the [eventual] inventory screen. I’ve been cogitating on this for ages, as I can’t really squeeze it into the current conversation system. Ended up making some new UI, just for these, and wrote all the code to not only handle the UI but track the pickup’s collection to the save state. Also made their identity pickup.
The other wrinkle is that the player might discover a page before they discover there’s a quest (and achievement) attached to them, so I ended up creating a dummy quest that’ll trigger and lead the player back to the library.
Spent the morning writing cheat-codes and dev menu stuff for the power-ups and the book pages from yesterday. Had to make some tweaks to Nik to close off the dummy quest – if you have it – and hook into the state to track how many pages you have and complete the quest at the right point.
None of which should have been difficult, but my brain was on Derp for most of the day.
Moved over the Henge End’s secret grove barrow, and created a flying key, that you need to catch with the Net. When you do, the exit opens up and you can enter the grove and collect a charm.
Created two cutscenes, one for opening the barrow exit, and another for warping a chest in, hooked everything up to the overworld state, and made sure you can go in and out of the barrow without getting stuck.
Doesn’t sound like much, but that was a very, very long day!
Made a second “charm chest”. This one appears when you light two firepits with the Wand’s new power-up. It has its own cut-scene, and again, everything’s tied into the overworld state.
Wrote a couple of nice ways of triggering level sequences, that automatically trigger overworld events, and delete themselves appropriately when maps stream in.
Spent a couple of hours with a new build, hunting for bugs, and found a corker:
BUG: Butterflies can spawn into doorway triggers, causing the door to push its Action Button Responder onto the stack, even though the player’s elsewhere.
RESULT: Player warps to a new location when they hit the action button.
As you can imagine, that took a little while to track down.
It’s tangentially related to the fact that the fishing rod used to hook shot you into doorways. I was going to use it to quickly get into rooms, but it’s been dormant for years. The upshot being, although I was checking for cast floats, I wasn’t checking for the player.
Back in the day, the player was the only thing that moved… Innocent times.
The door bug wasn’t quite what I thought. Turns out, way back in the mists of time, I made custom doors for a couple of the houses and, well, you can guess what happened. Now I have one door that does everything, including ignoring butterflies.
Since it’s day of the bug, I went through some more:
For the longest time I’ve had an issue transitioning from Dungeons (or Interiors), back to the open world: the lights, at the darkest point of the night, don’t light the game correctly. I’ve long suspected that the engine optimises out the very small incremental changes I make to intensity and angle, and/or these subtle night-time lights are below some threshold that deems them “important”. I’ve tried a bunch of things to fix this; forcing multiple updates over consecutive frames, speeding up time dilation during the transition to “slide” them to where I want them, stuff like that. Well, today I think I cracked it. Rather than transition back to the open world on or around midnight, I bounce the clock forward to 2am, where everything’s a little brighter, and bingo!
When I enter cut-scenes I lock the player and use the level sequence to cut to a static camera that’s placed in the world. This leaves the follow-cam idling, kinda in the background. Occasionally, at the end of a cut-scene, it’s not quite made it back to the player’s position and pops. A while back I added code to the Game Mode to warp the camera when unlocking the player, but the cut-scenes didn’t have a consistent “return to the player” ending. I went through them all and made sure the blend times when returning to the follow-cam matched, that the player was always unlocked at the same point during this blend, and that there was a consistent period after the blend before the sequence stopped.
The camp-fires were also doing something weird, which turned out to be a rogue reset timer in the camera that I also fixed.
This has smoothed out a chunk of camera movements. Only thing left to fix is when I want the follow-cam to look at a specific place. I have a mode where it’ll lerp between the centre of two actors, but I don’t have anything to look at a specific “thing”. The Bomb Berry plants could do with this when spawning.
Added some code to the new NPCs to make sure they weren’t in the wrong place at the wrong time. Fixed up some materials that were broken because of Nanite meshes. Reduced the tiling of the parallax occlusion shader I have on rugs. And FINALLY found out why the night cairns weren’t updating properly after a map re-load.
My work here is done.