Git Product home page Git Product logo

ms2_ball-catch_game's Introduction

Ball Catching Game

Project Summary

Code Institute Milestone Project 2 - Interactive Frontend Development.

The objective of this project is to build a coordination based game for people of all ages to enjoy. The concept of the game is an alien attack of earth and the only thing standing between this and the people is the defender of earth. As the fireballs are dropped the defender must defend their position to stop them hitting earth. This game requires users to be alert and respond to the fireballs dropping. The users must adjust their position in order to hit the fireball. The user cannot let a fireball drop or a life is lost. The user gets a score for each catch maintained on a counter and visible to the user.

Game Desktop Wireframe

View the live project here

UX

Strategy

The overall aim of this project is to create a coordination challenging game for users to enjoy. The game must be possible to lose, and also scores made available to the user along with lives left.

Scope

The site will include the game itself, with instructions on how to play, the ability to start the game, lose the game, and track score. Aside from the game, the user will be able to contact the developer.

Structure

The website will be delivered on two pages

  1. Home page which will become the game page on initiation
  2. Contact page.

Skeleton

The navigation will be simple to allow contact with the developer and return to home without using the back button. It must be intuitive in terms of instructions on how to play and buttons to initiate.

Surface

The format of the site will follow function. Colors, functions and navigation will keep UX to the fore.

User Stories

Site users
  • As a player, I want to be able to play a game that is enjoyable and challenging.
  • As a player, I want to have clear instructions on the controls and rules.
  • As a player, I want to be able to control when the game starts.
  • As a player, I want to be see my score as I go along.
  • As a player, I want to see my end score.
  • As a player, I want the game to become more difficult as it progresses.
  • As a player, I want to be able to contact the developer for details on this game and others.
Site Owner
  • As the owner, I want to be able to showcase my game.
  • As the owner, I want players to find it challenging so they play it again and again.
  • As the owner, I want players to be able to contact me with feedback.
  • As the owner, I want to garner followers on social media.

Design

  • The colors and images used for the backgrounds of the home page and game page are dark and in keeping with a night sky to give the mood of the game.
  • The contact page background uses a blue themed background but a hint at cyber imagery to draw the user's mind to technology given it is to associate with the developer.
  • The fonts used were Anton, Londrina, Josefin and Potta One and the colors of red and off white work together to convey the message and keep the theme of the game.

Wireframes

The home page contains a header with the name of the game and a contact button to navigate to a page that allows contact with the developer via form. Below this are the instructions on how to play the game and the "start", button. The footer contains social media links of the developer.

Home page - Desktop

Home Desktop Wireframe

Home page - Mobile

Home Mobile Wireframe

The game takes up the screen once started. The score is displayed top right and the lives count top left.

Game page - Desktop

Game Desktop Wireframe

Game page - Mobile

Game Mobile Wireframe

The contact page contains a header with the name of the game and a Home button to return to the home page. Below this in the main body is a contact form including name, email and message. In line with the home page, the footer contains the social media links of the developer.

Contact page - Desktop

Contact Desktop Wireframe

Contact page - Mobile

Contact Mobile Wireframe

Features

Current Features

  • The site will be responsive on all devices
  • Each page will have a NAV bar at the top with no reliance on the back button
  • There will be social media links in the footer
  • The game's concept and instructions will be presented to the user on landing
  • The game will launch at the user's command via start button
  • On game over, the user will be presented with their score and option to try again
  • The contact page has a form to allow the user to contact the developer

Future Features

  • A leaderboard stored to maintain results
  • Ability to buy games from the developer

Technologies Used

Frameworks, Tools and Libraries

  • Bootstrap 4.5.2
    • Leveraged for responsiveness and bootstrap css
  • jQuery
    • Used to get the screen height and width for the canvas
  • Font Awesome
    • Used to put some style on the site's header and footer instructions
  • Google Fonts
    • Used to style the text throughout
  • Balsamiq
    • Used for wireframe design
  • Github
    • Used to store all code and publish the site

Languages

  • HTML - the main language to structure the elements of the site.
  • CSS - used to style the site.
  • Javascript - used to write the game logic.

Testing

Tools

Home Page

Two empty headings are there to take data from the game once over.

Contact Page

  1. Two warnings on type attributes being unnecessary. I followed the Code Institute instruction on these types and am happy they don't negatively impact my game.
  2. One warning WRT page lacking heading. This is intentional on my part as the page does not need it.

css results

No issues found.

No errors. Warnings WRT let availability not an issue.

  • Reponsivity validator - all of my pages opened on all the device sizes. In addition, I opened each page and played the game on every device option in Developer tools.

User Story Tests

user story test results

Site Owner Tests

site owner test results

I used the site extensively to ensure it functioned as expected. The game instructions are presented clearly. The game initiation is at the control of the user. The game controls are straightforward. The progress and result are easy to see. The game becomes more difficult based on the score and this created a will to beat my previous score. The contact function works and for completeness, I set up an auto reply. I clicked through each link to ensure it opened on a new tab and not take the user from the site. Along with this, I requested friends and family members to review and provide feedback. The results were positive.

Known backgrounds

  • On portrait orientation, the fireballs are not perfectly round. I expect users to use the game in landscape, however, I will try to address this.

Deployment

Publishing Steps

Clone Steps

Credits

Code

  • The background images and ninja are from pngtree.com - Attribution on the contact page.
  • My mentor pointed me toward using two canvas elements.
  • Bootrap was used throughout for reponsiveness and styling.
  • jQuery was used to get get the screen sizes of the user.

Content

  • All content was written by Tom Dillane.

Acknowledgements

  • I would like to thank my mentor for the constant support in this project. He pushed me to learn and do better than I thought I could myself.

ms2_ball-catch_game's People

Contributors

tomdillane avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.