Rookie Ninja

An arcade style platformer game where the player plays as a ninja in training. The rookie ninja works to prove his talent by evading obstacles while also gaining some special abilities.


Project Description

The final project for my digital games course consisted of creating a game based on programming and game design techniques taught throughout the course. This would be created using the language Processing, which is based off of Java. The game I created was a platformer game called, "Rookie Ninja". The goal for the player is to travel through a series of platforms while dodging many obstacles.


Organization and Planning

Prior to creating the game, much organization and planning was required. I started off with a storyboard, which aided in outlining the key points of the game. This also aided in understanding how the difficulty scale would increase as the game progresses.

a storyboard diagram of aspects from the rookie ninja game

Another vital step prior to the development of the game was the UML diagram. This flow chart like organization would help to plan the various programmatical components required for the game. This step overall was very beneficial to the actual coding process.

Design Creation

Prior to any coding however, I focused on designing all the game assets. A major asset that was necessary was the character design. I commenced with some sketches to possible designs, and then translated those into digital renders. To enhance the design and increase professionalism for the game, I set the goal of creating an animating character. After some research on the best approach for this, I created a sprite sheet. This consisted of a large image that contained many iterations of the character in sequence.


Due to the immense planning, programming the game was an efficient process, and the development of the game progressed rapidly. Commencing with the first level, I programmed the game physics, and major components, which then led to the next few levels.

Play Testing

After a primary development iteration, I conducted some play testing sessions to diagnose any flaws with the game. This helped me to pinpoint areas which needed improvement in the game.

Problems and Successes

There were some obstacles I encountered while developing the game. One of which, was that the program slowed down very much and began to lag. I identified this as being due to the various large sized images being implemented. To remedy this, I organized several images into a grid like structure in one image file and instead programatically grabbed portions of that larger image to display the smaller iamges. Overall, I felt successful with this project because I was able to develop a fully featured game that ran smoothly, and did not have any problems. Through the processes of developing the game, I learned key programming fundamentals, and how to make my code more efficient.

Live Demo

A short animation demonstrating gameplay.

an animation of the rookie ninja game  being played.