I got time to make some more small progress on my Zelda clone engine today.
Screen size and screen space has been bothering me for a while. The biggest thing is that by having 24×24 tiles be the base size for everything, that leaves only five usable tile rows per screen. That’s not a lot at all.
Not only that, but 24×24 tiles also leaves some blank space, both vertically and horizontally. So far I’ve been using the extra vertical space for a basic info bar, but it’s not enough for a real game. And the extra space on the side is just weird.
I realized that doing 16×16 tiles would pretty much fix all of these issues, but at a price – to keep things consistent, the enemy sprites, player, and everything else need to be resized.
I wanted to see how this 16×16 system looked, so I made some ugly changes. I can already tell that the smaller dimensions makes stuff lose a lot of its charm. At the same time, it does make it feel a LOT more like an old Nintendo game. Which is better? I don’t know. I’m kind of hoping readers might chime in.
An alternative method is to keep the 24×24 tiles but only scale the graphics 3x instead of 4x, as it currently is. The benefit of this is that we can still use the 24×24 stuff, but all the horizontal and vertical issues will still remain. I haven’t ruled this option out yet, though.
So right now that’s the big thing that I’ve been grappling with. I feel like 24×24 is much more inviting and interesting, but 16×16 has an authentic look and extra limitations that might prove to be a good, rewarding challenge development-wise.
The conversion process to 16×16 isn’t complete yet, so there are many graphical glitches and tile ugliness right now.
With some extra real estate on the top of the screen now, I tried to lay things out a bit like Zelda 1. Getting the font to work was the hardest part, I had to do some custom tweaks to the sprite font creator Microsoft made for XNA devs.
There’s currently a big empty space in the top left – that’s usually where maps and such went in Zelda 1, I suppose I could do that here too. But I feel like this is a good chance to do something different. I’m not sure what.
My wired Xbox controller came in the mail today. I plugged it in and found that the game pretty much already completely supported it, as I’d written the gamepad code last week when trying to get my generic gamepad to work. Cool!
Playing with the left stick is annoying. The directional pad is meh too, at least compared to a real d-pad like Nintendo has. But it works and all, so that’s cool. I do want to support generic pads at some point, I just need to figure out the voodoo I have to do.
With an extra, empty item box on the top and a controller with a bunch of extra buttons, I got the natural urge to add in a new weapon of some sort. For a temporary test, I made a rock you can throw a short distance. It makes the game easier, especially the boss.
The code’s getting crazy again. I really need to redo the class hierarchies and give the tomato and the weapons better class management. I don’t even really have a generic GameEntity class or anything yet, it’d make the most sense to do that and then base all the objects in the game off of that. That way I can queue everything up (and not just enemies/items like now) between frames and just handle them in one go.
So much to do, every day I’m more and more amazed that they were able to do all this stuff with much stricter limitations and much worse development tools when making Zelda 1. I’ve gained a ton of respect for Nintendo’s programmers.