Hey gang, can you believe it’s Friday again already? Phew. Time flies when you’ve had a productive week!
As it turns out, a fair bit of stuff got done on the game this week. I fixed the player’s movement so that it now behaves properly around solid objects, tweaked the animations of both the player and some NPCs to make sure the animations don’t ‘bleed’ between directions and there’s now a new system in place to allow the player to read signs!
There was already a system in place for signs, using instance variables, but it was a bit iffy and the picking didn’t always work, but this new thing seems to do everything I need it to! Thanks to this great tutorial from Vimlark, I now have an array-based system which pulls lines of text from an array based on a specific sign’s instance variables. I also split the signs out from the StaticNPC object type to make things a bit easier for myself. I may use a similar system for the standard, non-story related NPCs too, maybe with some other instance variables to allow for multiple dialogue options. We’ll see.
Oh, and now that I have signs made, I think I’m going to add them to the ‘Adopt-an-NPC’ system – maybe 100pts for a sign? I don’t know yet, seeing as I need to flesh out the rest of the pricing. But hey, for a small number of points, you could put some utter nonsense on a sign in the country of Skirah. And who wouldn’t want that?!
Moving onto the player, before I did these updates, the movement worked fine until you were adjacent to a solid object. Say you had a solid wall on your left-hand side, you couldn’t actually turn to the left to look at the object. Not game-breaking, but annoying, nonetheless. So, to fix that I’ve changed around the player’s movement system. There are now separate events handling the actual movement and the animations, which has also allowed me to add OR blocks to handle different inputs, including a gamepad. I’ll probably tidy that up later, split out gamepad into a separate group or something, but for now, it works. The animations themselves are now linked to both the player’s Direction instance variable and whether the Tile Movement behavior is moving in a certain direction. The combination of all these changes means that the player can now turn and face a solid object they’re adjacent to – no more going away and coming back to an NPC you want to talk to!
Also, one of the conditions I’ve used in my newly revamped player movement system has helped tidy up the animations of my NPCs. Tile Movement’s is moving in direction condition has been fundamental in eradicating animation bleed in my NPCs. What I mean by animation bleed is where an NPC is finishing a movement in one direction, but the animation has already changed to the new direction. Again, not game-breaking, but an irritating quirk. By adding the is moving in direction condition, the NPC now waits until it’s begun to move in the new direction before the animation changes – it looks so much cleaner, and works how I want it to!
There are still some little bits I can work on, like the Z order system, and figuring out why my Follower NPC will randomly switch to its ‘Idle’ animation every so often. And in the background, I’m still working on the various dialogue systems I need. The signs were one thing, but I think I’m going to end up with two more – one for standard NPCs and one for everything story-driven. The latter being the JSON system. This does mean that by the time I’m done, I could probably write a whole course on dialogue systems, which I hope people would find useful!
And finally, I made some more progress in Rabisco, getting towards (if not past, I can't remember) level 80! Oh, and that death counter is now 140... It got a little frustrating, I don't like missiles. But the portal mechanic was really nice. Go check out Rabisco if you haven't already, there are some really neat mechanics and puzzles in it for you to master!