Saturday, February 16, 2013

Ninja-san the prototype is over.

Just a screenshot. 
Prototype updated! Check it out here:

(Also, just because I didn't make it clear last time: Click anywhere (or tap if you're on a touch screen) and the ninja will leap in that direction. You have to make it from the green "S" block to the red "E" block as quick as you can)

So, I know I seem to be saying this quite a bit, but I think I'm done with the prototype now. Now added:
- This incredibly classy and stylish start screen.
- Converting the timer into minutes and seconds.
- More refined jump checking based on how you are grabbing the block.
- Level resetting.

This also brings a lot of things with it that have the framework in place but not specifics (i.e. different game states and the ability to tweak the controls). I've also gone back through all the code so far and tidied and documented everything so I (hopefully) don't forget what I'm doing when I come back to it. That also managed to iron out a few bugs and odd things, but hasn't eliminated all the known bugs. I am still aware of:
- Ninja occasionally side grabs walls upside down.
- Ninja seems to get stuck rotating in his leap frame if you jump precisely as you collide with a block.

Despite going through the code and tidying stuff up, I still have no idea why these two are happening... But I think at this stage that's a problem for another day.

Thursday, February 14, 2013

A true ninja always aims for the heart.

So... Missing days like it's going out of style.

The timer system has been added, but it's very basic so far. VERY basic. Touching the start floor (green block) will start the timer, touching the red block will end the timer and reset it. The timer is in seconds but doesn't display with minutes/seconds/milliseconds, so that's something still to do.

I've also had a look at the jump controls to try and make it so you can only jump away from the walls, but I may have been a little too spartan in deciding what a valid angle for that jump should be. Maybe I should also have it sort of self rectify and take the lowest angle jump regardless in the rough direction of the player input?

I'm also going to be heading out of town next week... I'll have my laptop but I'm wondering what exactly I'll be able to do from up there.

Tuesday, February 12, 2013

Now with 100% more interaction

So as a birthday present to myself/as a way of forcing myself to see this through, I went and bought all the exporters for Gamemaker. So now: In-development test builds, online.

I haven't done anything extra today because I've been too busy blowing out candles, but this is the current state of the prototype with it's jumping and scrolling and hanging etc. I think I'm going to try and work towards adding a timer, proper start and end states, and some kind of simple menu in the next day or two and then go focus on getting some of the sprite/background work done.

Current bug list:
- Camera jerks if you try and make a jump that immediately collides you with the wall again. I'm pretty sure I should limit the inputtable jump angle depending on how the ninja is standing, so this might not be a problem.

- Sometimes if you jump *really* quick after landing the ninja doesn't go through his normal leap/somersault but instead just spins around with his leap frame. I like how goofy this looks but the fact that I have no idea why this is happening worries me.

- Sometimes when the ninja grabs on to the side wall he'll grab on upside down. I think it might be due to the the positioning of the ninja when colliding, but this almost looks normal and doesn't seem to impact gameplay, so maybe I'll leave it.

- Everything looks ugly. That's fine though because my inspiration is your face. Burn.

Monday, February 11, 2013

Moving Pictures

So... I added a moving camera that can support larger rooms. Also I missed a post yesterday.

Saturday, February 9, 2013

Ninja-san: The animated series

The missing frames don't do this justice, but the following can be seen in this gif:
- Can tell if you're jumping left or right, and flips the sprite accordingly
- Changed the way it pulls out of the leap into the descent so it's time based now.
- Added mid air somersaulting after the initial leap, rotating based on direction of jump.
- Added different sprites and states depending on whether you're above/below/to the side of the collision.

I need to recheck my positioning variables to make sure they sit correctly, but I might wait until after I do proper sprites first and save doing that work twice. Also this is the basic animation system done now, so I've just gotta add proper start and finish states and a timer, and then a basic menu and this prototype is done.

Friday, February 8, 2013


So turns out I'm still pretty tired from last nights deadline crunch. I made a couple of tweaks to jumping and added a ending platform, but it turns out an ending platform isn't what I need at all.... So that needs to be scrapped.

So, since I have nothing interesting to show, please enjoy these sketches from another thing that isn't important to this blog while I get a decent nights sleep.

Thursday, February 7, 2013


Stupid deadlines taking up my time. Here are some things that are not ninjas.

Also I missed putting this up at the regular time... Here's hoping it still counts as yesterday.

Wednesday, February 6, 2013

Block Party

So, the problem with the block corners were pretty much due to the system I had in place to prevent the ninja from teleporting when they collided with a wall. At this higher framerate it's not so much of an issue, but I might need to add something back in later. I've also rectified the positioning so ninjas don't just float in the air when they've collided close to edges.

Aaaaaaaaaaaanyway... too late for anything interesting tonight.

Tuesday, February 5, 2013

Leaps and bounds

Behold: Jumping onto walls.

Not pictured: the unfortunate bugs that happen when you collide with a block on/near a corner.

However, I have fixed the problem where the ninja wouldn't sit on the block after colliding with it. I've also worked out why downward angle jumps wouldn't tilt the player character (Spoiler: its because of my badly implemented gravity). To smooth things out a little and improve collision detection I've upped the FPS. I don't know if that will cause issues later on or not though.  I have also made the ninja start and respawn on the start pad now.

The biggest problem at the moment is fixing the corner colliding so it doesn't freak out and temporarily freeze the game. I suspect it's going to be a case of changing how I'm doing my position checking. I'm kind of annoyed that I have something else I need to do tonight... I'm really starting to get back into this.

Also I need to find a better way of making gifs or something else pretty to post. It would be cool if I could just post versions of the game but Gamemaker only appears to let you output to steam workshop at the moment, which isn't really what I want to do. Maybe I should get the HTML 5 license or something.

Monday, February 4, 2013

A question of control

I have some kind of brain problem that means when I'm thinking about control schemes I can only envision things on touch screens.

I had been intending to keep it relatively PC based, but considering its going to be a simple game if it is going to be released on anything it'll most probably be mobile. I thought it would be a good idea to think about the control methods and basic interaction to make sure I wasn't backing myself into a corner.

The functionality around the leaping should always remain the same, so a control scheme needs to do at least one thing, and that is provide an angle for the leap. Additionally, it can also provide the power/distance of that leap. I'm refraining from adding in any other direct user interaction, so I can't see what other variables I'd even need.

This is not an exhaustive list of options, but more of a messy collection of notes:

Tap Location  
Leap at angle from ninja to location, possibly distance from ninja to location can factor power of jump
Simple. Obvious. Works well with mouse or touchscreen. Simplicity means it's possibly easy to extend gameplay by chaining jumps with tap timing.
Obvious/boring. Possibly limits angles/power when close to the edges of the screen.

Tap and Drag 
Leap at approximate angle of the drag, possibly duration of touch or length of drag (or some combination of the two) can factor power of jump.
Simple. Intuitive for touchscreens. Gives users a little more sense of where the ninja will go because they are somewhat tracing the leap path.
Feels odd with a mouse. Definitely limits angles and power when close to the edges of the screen. 
Tap Anywhere 
An arrow guide element is visible pre-leap. This either cycles back and forth between available jump angles, or appears and moves when you touch (releasing the touch causes the jump). For power of jump,  duration of touch or some further power gauge could appear and cycle, which is then triggered by releasing the touch.
One button gameplay. Timing adds another element of skill. On screen indicator shows precisely the launch direction/power. No problems when at the edge of levels. No problems with fingers crowding screen space. Could lead to some goofy gameplay. Can be played on a computer without a mouse or keyboard except for some jerry-rigged usb spacebar frankenstien device.
Frustrating to impatient players. Possibly a little complicated for non-gamers. Possibly a little simplistic to gamers. 
A thumbstick is simulated on screen, players drag it within its bounds to determine the direction of the of the leap. Speed of the drag could factor into power of leap.
Seemingly the norm for action based games on mobile now. Could modify the gameplay to take advantage of the fact that you're holding directions before landing to enable instant take offs. No problems near edges of stages.
Disconnect from the ninja sprite. Possibly too imprecise. Possibly too easy to trigger. Would be stupid with mouse. One part of the screen constantly behind finger. 
Players jerk their mobile device in the direction they want the ninja to leap in. Power of leap possibly factored from speed/distance of jerk.
Hilariously derpy gameplay.
Inanely derpy gameplay. I also have no idea how to do it. Not for PCs. 
Accelerometer 2 
Players tilt their devices so that the ninja is always trying to jump straight up. Just not necessarily up the screen, but up in real terms. I dont think I've quite thought this through.
Players yell LEFT or RIGHT and the intonation of their voice determines the angle of the jump. Volume of the yell can possibly factor the leap power.
3 more years of uni. People who can't tell left from right without checking their hands will keep dropping their phones.

So having thought about this some more... I kind of like the idea of having "multiple characters" that control differently but all do the essentially the same thing (with slight modifications of course). I can also just pallete swap them to save animation time, and pretend their some kind of power ranger style tea committee.

Sunday, February 3, 2013

Pre-prototype alpha ver 0.01

This poorly made gif shows the preliminary workings of the game. It seems to be missing some key frames, but basically: You click somewhere and the expertly drawn malnourished ninja launches himself towards it.

You can kind of see it in one frame, but when you leap, the ninja body changes orientation to the direction you're moving in, and then corrects at the peak of the jump.

Missing so far:
- Decent collision on blocks so that the ninja always rests on top of them.
- More levels of blocks and the ability for the game to tell if you're above/below/to the side of them.
- Prettiness.

Saturday, February 2, 2013

Sketchy Leaps

A study of ninja leaping. 
So I intend to cheap out on animating... I'll still need a few poses and things to link things together (standing, leaping, gripping side, gripping ceiling, reaction to being hit) and then hopefully I can just hide transitions with effects or blurriness.

This would the leaping pose. The main consideration is that this will be used no matter what the direction the character leaps, so it has to look normal for a forwards leap as well as a straight up leap. Its not everything it could be but it'll be fine. The smaller version needs more of a touch up before I'll consider that a finished frame, I was only just using that for colour tests.

Also, despite my "little animation" goal, I am strongly considering having some kind of midair somersault kind of action going on, because that's pretty much the only way ninjas get around. Well that and cartwheeling, but I'm saving that for the sequel.

Friday, February 1, 2013

Ninja-San, The Tea Party Is Over.

The entirety of the design document. 
I think if only one thing has been made clear by this blog, it is this: I can only be productive if I'm trying to hit some kind of unrealistic goal. Previously I was able to get an entire month of scatter-shot and barely related images done. Gold star for effort, but it doesn't really get me anywhere. Nor does it prove or improve my skills as a game designer, which was kind of the point of this whole thing.

So with all that in mind, coupled with the ego-destroying knowledge that I'm almost 30 and have nothing worthwhile from my job career to show for it, I'm issuing myself a new challenge:

1. Do something every day and post it.
2. Only work on one game at a time until a prototype is done.
3. Do it until I can't, and then do it again.

I'm not going to be doing anything huge, but I don't want to. At worst, I'll have a bunch of little prototypes I could put up on kongregate or whatever, at best I'll have a game that's good enough to spend some extra time on to release on mobile/steam.

So first up: Ninja-san, the tea party is over.

Why: Because the phrase has been stuck in my head for weeks, and because you're supposed to "write what you know". The line comes from some old movie that I can't seem to track down (I think, could definitely be wrong).

How: Gamemaker. I know it's not considered proper game making, but snobs step off. There have been a few commercial games released with it now and it reminds me a lot of doing stuff in Flash and Actionscript. It does everything I'll need for this.

What: You are a Ninja who has been invited to tea with the Shogun, but oh no! You're running late! You control a ninja through some simple control scheme, that has to leap though levels and obstacles to reach the Shogun's tea party before the tea goes cold and you disgrace your family.

Well... That will do for today. Lets see if I can make 2 days in a row tomorrow.