Skip to content
nordov edited this page Mar 10, 2020 · 6 revisions

JS Project Proposal: Ninjava Game

Background

Ninjava is an online javascript multiplayer game where players select a Ninja character and go through fights against other users to reach the top of the fighting Board. The fights would not be an ordinary realtime 1on1 but instead, each player will select their set of attacks and defense moves prior to the beginning of the fight. The results of the fight would not necessarily be available immediately but rather after all players had entered their moves. This would make the game able to be played among players in different timezones at different times within a reasonable time window set by the game.

Each player will submit a collection of 5 moves/positions. There will be 3 attack positions and 3 defense positions: up, middle and low accordingly. If Player 1 selected an Up attack position and Player 2 selected an Up Defense position then Player 2 would have successfully blocked Player 1’s move. In the same scenario, if Player 2 had selected a Low defense position then 1 hit point would be credited to Player 1. Whichever player has the most hit points at the end of the fight wins and moves up one point on the board

Functionality & MVP

With this Ninjava Game, users will be able to:

  • Sign up/Sign In and create a Player profile
  • Select/Change Ninja character
  • Challenge or accept challenges from other players
  • Select a combination of 5 attack and defense moves
  • Watch fight animation after results are received
  • Observe board positions In addition, this project will include:
  • An About modal describing the background and rules of the game
  • A production README

Wireframes

This app will consist of a few navigatable screens, starting from the Splash screen then moving unto the Dashboard that will showcase the current Player’s character, board position and a history of recent fights. Different options buttons will be available for “Start Fight”, “Help” and “About”. From the recent fights, the player will be able to see the animation for the fight based on the moves selected by both players. ##Architecture and Technologies This project will be implemented with the following technologies:

  • JavaScript for game logic,
  • MongoDB for data recording
  • Will try to include GSAP for animations

Implementation Timeline

  • Day 1: Setup all the application skeleton and technologies needed such as Node and MongoDB. Start game basic flow logic.
  • Day 2: Finish game logic including battle result notification. Research implementing the animations into the game. Implement fight animations.
  • Day 3: Create Game environment: Splash page, Dashboard.
  • Day 4: Enhanced game presentation hopefully with the help of GSAP library

Bonus features

  • Add option for Player to have multiple characters
  • Add rules of difficulty and strategy to fight
  • GSAP animation