Ninja GO

This is a programming project for the course Programming of Interactive System in the second year of my master's degree.
The goal of this project is to create an interactive maze game in JavaFX. I mainly focus on the programming and game design, and my partner works on design visual elements.

Game interface

Instead of making a traditional maze game using the ‘grid’ structure, we added height and gravity element to the map. Therefore players have more freedom to control their characters instead of simply moving from grid to grid with arrow keys.

Maze?

The goal of a traditional maze game is to find a path between the entrance and the destination. In our game, we abstract "the path" into different stages. In each stage, player needs to reach UFO without falling down. UFO is the teleport point, which also means a "partial destination". When player reaches the UFO, player will be teleported to another stage. However, there will be at least one UFO in some stages. Different UFOs will teleport players to different stages, for example some UFOs may connect to the previous stage, and some may lead player to a complex stage where they could easily falling down. And of course all UFOs look the same. Players may have to try several times until they find the correct UFO in each stage until reaching the final stage. It's just like finding the correct path in a normal maze.

Control

In our maze game, players could control the character with left and right arrow key. The character will not pass through the left or right edge. Players will fall down if the character doesn’t stand on a platform. They will lose if the character falls below the bottom edge. Players can jump with the space key. They cannot jump when they fall down. Characters have gravity. When they jump, their speed is slower and slower until they reach the peak, while the speed is faster and faster when they fall. And we set a maximum speed after falling a while.

Characters

There are 3 characters available now. Players can switch the character at any time by pressing number key 1,2,3. Different characters have different features, for example the large character jumps lower and moves slower therefore players would be easier to control it. Small character would jump higher and move faster, so it could reach higher place where large character cannot reach.

Edit Mode

We also developped the edit mode, which allows players to create their own maze. Players can design stages by either dragging the elements from the tool bar at the bottom side or use scroll bar to custom the length of platforms.