Sunday, January 26, 2014

Portable Checkpoint

It turns out I'm chattier when I'm more excited about the project. I'm still making progress, but was slogging through some code that was designed poorly, so it wasn't any fun. So I've been pretty quiet.

Fairly early on, I had decided a wanted a consumable "portable checkpoint" item that you drop right before a really hard section, so you wouldn't go crazy having to do a whole level over. Unfortunately, my item design had focused on the main character abilities, and didn't work well with consumable items. I finally slogged through that, when I realized that my checkpoint/respawn design also didn't work well with having a secondary respawn point.

So I ended up doing a ton of work, when I should have done significantly less if I had thought through my design better in the first place. 

The good thing is that I've been continuing to make progress on maps/levels in parallel. When I'm not in the mood to write code, I can turn off my brain and rough out a level map. Or use my brain and design the specific spike/jump/enemy patterns for that level.  Or if I'm sick of making levels, it's back to code.  So that works well.

So now I've got the portable checkpoint item working, along with a nice little icon. (Thanks Rob, for the icons!) And a couple more maps.

Now I need to actually properly test on my phone, which I haven't done in a few weeks. That always reveals new bugs that weren't obvious testing just on my computer. Not looking forward to that.

Wednesday, January 8, 2014


My friend left a comment today asking some good questions about the story of Robo-Ninja. "Have you given any thought to the all-important backstory?" he asks. "Is the protagonist a ninja who became a robot, or a robot who trained as a ninja? And what does Robo-Ninja hope to achieve?"

So here's my rough draft. Who knows how much of this will change by the end (if there ever is an end!)  Like Anguna, I'm purposely going for a short and cheesy story:

One day, Professor Treeblot was finally putting his finishing touches on Robo-Ninja, his newest invention, a robotic ninja designed to defend the world from Evil Bad Guys.  But to his dismay, as he was finishing, the Evil Dr (insert name here) came, kidnapped Prof Treeblot, and scattered all of Robo-Ninja's ability modules throughout the land. Without these modules, Robo-Ninja could do nothing more than run forward.  Now Robo-Ninja must travel the land to search for and recover his lost abilities, so that he will be powerful enough to hunt down and defeat Dr (?) and save Professor Treeblot.

So you start the game with the ability to DO NOTHING AT ALL. Robo-Ninja just runs, you can't even control him. Luckily you pretty quickly collide with and equip your first ability module, the "Jump Servos", which let you jump.

So that's pretty much it. You search the world for your abilities, then use them to go find and defeat Dr (whatever).  Not much to it. And it only vaguely helps make sense of what you're doing in the game. But hey, like I said, I enjoy purposely making the story lame. (And yet that's what got the most complaints in Anguna) Oh well.

And if anyone has cool suggestions for the Evil Dr's name, I'm all ears. I'm shooting for something almost over-the-top silly for his name.

Oh, and my friend Rob just sent me some awesome icons he made for abilities, so that's taken care of. Thanks Rob!

Tuesday, January 7, 2014

Sliding and regressions

Well, as it usually goes, I didn't get much done on the game during the holidays. Although I did a little more than I feared.

Mainly, I finished the first of Robo-Ninja's powerups: the slide ability. He can now slide through narrow passages.  This forced me to flesh out my implementation of ability powerups, but my rough design was pretty close to what it needed to be, so this was pretty straight-forward. I ran into one hiccup where if you switched from "slide" mode to "jump" mode while still sliding, you'd never stop sliding, and could jump around while still sliding.  That was amusing.

The harder part was making the sliding not look stupid. I figured I'd do like mega-man and have a single-frame animation for sliding, and have him slide along the ground. Unfortunately, unlike mega-man, it looked ridiculous. So I'm playing with it to hopefully make it look a little better.
Mega-man makes this look awesome. Robo-Ninja makes it look ridiculous.

The other thing I'm running into is regressions of earlier bugs. My work on code for abilities suddenly threw off my jumping physics that I spent forever tweaking. Turns out I was now properly calling an update function that I had forgotten to ever call before. And that update function had left-over code that borked my jumping. Oops.

And I had originally added a delay that forced you to see the "new item acquired" screen before accidentally tapping and dismissing it as soon as it appeared. But somehow that stopped working as well. (The problem with it was that my delay timer was declared as an int, but I kept adding fractional (float) seconds to it. Which of course, got rounded away every time, so it never really incremented.) I fixed it now, but I'm not really sure how it actually ever worked right.

So now my son will be happy -- he bugs me every day or two to hurry up and add more abilities to the game. Really, he just wants me to add the "jet-pack" item that you won't get until the very end of the game. That way he can fly over spikes and never die. Maybe I'll have to do that one next....

Metatile Designer

For the NES game, I'm building my levels out of 32x32 pixel metatiles.  What is a metatile?  The NES background tiles are 8x8 pixels, bu...