The last couple of days have been mostly map editor-related, which is a lot of tediousness and frustration, so today I decided to work on something a little more fun.
Text boxes and NPCs
Unlike Zelda 1, I wanted to give the player the ability to take to non-enemy things (like people, NPCs, signs, etc.) So I implemented that today. It was actually extremely easy, as I’d already written the text display class about a month ago for a completely unrelated project. I basically just dumped that code into my project and hooked it into the game’s state system and voila.
I then needed to create an NPC class, so I did that. My work the past few weeks made this really easy too. I then added another type of “sight hit box” for the player, this one looks a couple pixels ahead of the direction you’re facing. If an interactable object is in that box when you press the action button, it’ll respond properly. In the case of NPCs, they’ll talk to you.
I had to make it so you couldn’t walk through them. This seemed daunting at first, since they don’t need to adhere to the tile system. But I found I could basically copy and paste most of the code I did that prevents you from moving through tiles. It normally wouldn’t be a big issue, but since there are cases where you can move at sudden high speeds (like when you’re hit by an enemy) you have to take extra precautions that you don’t fly over an obstacle or an object.
Then I made it so that NPCs will face you when you talk to them. I needed an NPC to interact with, so I started to draw a human of some sort, but my art sucks. So I went with a red blobby thing instead, which looks cooler anyway.
The next task was just coming up with some test text to get a feel for things. Whenever I hear people say they’re going to write a game’s text, I’m always dubious because rarely does that writing ever sound good. I’m certainly no writer, but having lived inside game scripts for the past 12 or so years, I think an interesting approach I might take is to write the text as how I’d say it in Japanese, then translate that into English how I would with any other script. I don’t know if this approach will have good results or not, but at the very least it might still capture a teensy bit of old school game text feel.
Or I could just go all out and translate them into REALLY old Engrish-y style translations. I dunno about that, though 😛