This first of this week’s “I’d forgotten I did that”: I added a multicast delegate to NPC Dialog Responders so actors in the world could register, and be alerted, when conversations ended. Except, of course, I’d already done that ages ago, in the base ActionButtonResponder class… Fortunately, I found it before falling entirely down the rabbit hole.
I added the spiral to East Ley, created a level sequence for its chest to appear, added a book page to the chest, and got everything hooked up to the timeline and then tested it was re-entrant.
Created a new Ghost NPC to remind the player to use campfires and added them to the first interior you see when walking into East Ley. This one’s kinda interesting, cos it disappears as soon as you talk to it. Also tripped over the fact that BeginPlay is called on Actors before the GameState has been loaded. Ended up pushing the checks for “should I be here” into the interior’s level blueprint, which feels a bit hacky, but whatever. Ship it.
Rigged up a proper character for an NPC that’d was in as a placeholder, made some new materials for it, and got it in game. Tomorrow, I’ll animate it.
Animated yesterday’s NPC. It gives the player the shovel, one of the key inventory items. Created a trap in the interior so the player can’t leave without collecting it, and wrote dialog that repeats if the player already has it, cos, you know, I’d wager everyone will mash the button and not read anything.
Narrowly avoided writing a dialog responder for forced conversations by cunningly searching the codebase on the off chance that I’d already written one…and ofc, I had.
Locking the player in the interior was a little bit fiddly and I’ve had a couple of crashes which I think are down to the player state not always loading in time, but, I’m not entirely sure. I’ll need to play a proper build this week and see…
Also created a mesh for the Landlord in East Ley. The rig is done, but it needs materials and animations, which I think I’ll be able to finish off tomorrow.
The cut-scene triggered when entering East Ley’s Dungeon is something I’ve shown for a while, but it was never really finished. The Landlord needs to be killed/zapped, the floating head needs to talk to the player, and the stairs into the dungeon need to appear.
Today I extended the whole sequence, added the landlord, created animations for him, added some electrical bursts, and tidied up the return to the game’s follow-cam, removing a tiny glitch.
The sequence needs audio, but so far, I’m really happy with it. The electrical bursts really sell it.
Rather than do my own, I opted for this package.
It’s surprisingly flexible, to the point where I think I’ll use it in the dungeons.
Today was a pretty good day.
The floating head above the East Ley’s dungeon entrance talks to the player, and then kicks off a second, short, level sequence that “unlocks” the entrance to the dungeon. It needs audio, but everything else is basically there.
After it, you can enter the dungeon, push a button to “complete” it, and exit back to East Ley, at which point the map will tidy itself up.
The placeholder dungeon is a new map, with a new game mode, location strings, and state. I need to check this is all getting through to the packaged builds correctly, but I think it should be fine. Job for tomorrow.
I need to make a few more “post dungeon” changes to the interiors around East Ley -- at a minimum removing the NPCs – but other than that, this location’s done from a structural point of view. Just a bit of dressing and maybe adding in some non-interactive NPCs (Bats/Crows).
Tomorrow I’m going to test everything I’ve done over the last couple of weeks. There’ve been a lot of changes to the build…
Spent the day playing the build, taking notes, and looking for bugs.
Turns out I'd created a couple of blocker bugs, which I fixed, and a couple of things I did last week didn't trigger in the build correctly. No idea why.
The rest; mainly notes, tweaks, things to move, UV errors...stuff I'd notice but you probably wouldn't.
I'll leave all that as a nice way to ease back in, on Monday!