Skip to content
JavaScript HTML
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Ninja Arena

Play now!


A - ATTACK Directional Arrows: 'up' 'down' 'left' - MOVE 'right'

"ENTER" to confirm in MENU


DezrasDragons@ - Calciumtrice @ - Buch @ - Fred1712 @ -

Morten Barfod Søegaard @

LittleRobotSoundFactory @ -

erkanozan @ -

Vhiiula - Backtrackin' from IHyper by BackTrack @

LittleRobotSoundFactory @ -


screen shot 2018-04-11 at 8 05 57 am screen shot 2018-04-11 at 8 06 07 am

What is it?

Ninja Arena is a fast-paced top-down game based on retro arcade games. You are playing as a ninja set to do battle with waves of enemies, with each victory bringing you closer to the boss of the coliseum. After defeating the boss, you are victorious, have proven ninjas are pretty much the best at doing combat anywhere, and you may go back to things?


The goal was to create the top-down action with a well-animated retro sprite, assign the sprite several moves, and do battle with several different enemy types which brought different attack patterns and speeds with them. The stretch goal was to include a boss fight, a second player, power-ups after a set amount of victories, and additional weapons.


The main technology for this project is Phaser 2.x. Ultimately, Phaser 2.2 was used after realizing that Phaser 3 had limited tutorials and resources available. Phaser runs on a canvas element and WebGL. JavaScript, minor CSS, and HTML was also used, as well as Tiled for the background sprite.

Approach Taken

Enemy Logic: Create enemy logic which tracked a player's position, and continually chase the player. If 2 players are present, use logic to continually determine which player's location was closer to the enemy's and choose a new target accordingly. Check proximity to player with if statement, and then attack if close enough. Player Attacks: Using an invisible "hitbox" sprite, damage enemies outside the area of the player's pixel when attacking (colliding) with the hitbox.

In order to make the game more challenging, added cooldowns/reload time on attack, and made more difficult enemies faster to collide with player.


Did not implement Player2, powerups, or enemy projectiles due to the time it took to learn Phaser and implement the core game mechanics. Enemy Hit Boxes for Boss do not enable/disable properly as of current state.

You can’t perform that action at this time.