Skip to content

amylour/star_wars_hackathon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

326 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Saber Scroll

landing-page-photo

Wager your Jedi skills with the retro-designed game Saber Scroll. Developed by Hackathon Team Burgundy Lightsaber during the May 2023 Code Institute Hackathon.

Live deployment link can be found here.

Table of Contents

  1. Project Goals
  2. User Experience
  3. Design
  4. Technologies, Languages & Programs Used
  5. Features
  6. Testing
  7. Deployment, Development & Version Control
  8. Credits

Project Goals

Based on the Code Institute Hackathon May 2023 Theme of "May the 4th be with you", create a Star Wars-themed browser-platform game. The game should be fully functioning with as little bugs as possible, and playable by users of all ages.

User Experience

This game offers a level-based gaming experience. Players can progress onto the next level in the Star Wars universe by accumulating a set amount of points for each level. Several things can be expected from the game:

  • Star Wars Pop-Culture references: Throughout the game, various pop-culture references can be understood by the user if they are a Star Wars fan. The use of lightsabers, Clones, Darth Vader helmets as sprites, as well as the beautifully made retro backgrounds are a few examples of these references.

  • Controls: The user is able to use the arrow keypad to move their lightsaber sprite and make smart, calculated decisions about where to move around the environment.

  • Progressive Challenge: The player is brought between 3 levels, beginning with level 1, an easier, standard level, then to level 2, more moderate and finally to the 3rd level, which is significantly harder than the previous: thus the user is put under pressure and is challenged to be clever about their strategy.

  • Retro Environment: Our team specifically chose to develop graphic designs based around a retro-themed environment. All the sprites, backgrounds, items, health containers and general features have been made in an attempt to give a "retro" feel to the application.

  • Immersive Sound: Original retro audio has been caringly added to the gaming environment to match the retro environment and immerse the player into their gaming experience.


Target Audience

Our target audience is a range of absolutely any person that can use a computer, thus any user from a young age to senior.

User Stories

First time user

  • As a first-time user, I want to see a landing page that features memorable Star Wars references so that I immediately feel immersed in the Star Wars universe.

  • As a first-time user, I want the landing page to be designed to load quickly and smoothly and to include interactive elements so that I can see the website is working to prepare the game for me to enjoy.

  • As a first-time user, I want to see the rules of the game so that I am clear with what I am doing.

  • As a first-time user, I want to be able to control the audio playing so that I can be in control of the game.

Game Play

  • As a first-time user, I want to be able to control my character's movement using the arrow keys.

  • As a first-time user, I want to progress through the game accumulating the highest score possible with increasing difficulty so that I feel challenged and engaged.

  • As a first-time user, I want to have a set number of lives depicted by Yoda icons, which depreciate each time I make a mistake.

  • As a returning user, I want the game play to have a high level of replayability.

Developer

  • As a developer, I want to ensure that the game's graphics and sound effects are immersive and engaging.

Design

Design Choices

Components

The components of this project were inspired by classic pixel art and were painted in Procreate. The artwork was resized to be appropriate for the size of the game playing area and as to not present too much of a challenge to the player.

A favicon of the game title is used in the browser tab.
favicon
Favicon

screenshot of lightsabers
Lightsabers

A selection of lightsabers were produced with the intention of producing a feature of allowing the user to select their favourite one to play with. In the interests of project completion to MVP level, and the short time frame (5 days), this feature will be included in a future version of the game.


screenshot baddies
Baddies

A selection of characters, who align with the Dark side, were created in pixel sprite form. The Clone Trooper's helmet provides a points option for the player if they successfully navigate their way through the dangers. 10 points are awarded for each successful contact made.

We are excited to include the rest of these characters with the future development of the game.


screenshot snacks
Snacks & Extra Lives

A future feature that we discussed, will be to include 'snacks' that will provide power-ups to the player, to help them in their journey.


screenshot lives
Yoda Lives

Yoda heads represent the lives at stake if the player is confronted by Darth Vader or a Tie Fighter. Every time Darth touches them, the player loses a life. Lose three lives, lose the game!


Level Backgrounds

The backgrounds for this project were painted in Procreate. They have been inspired by classic pixel art and the Game Boy Advance game Star Wars: Episode III - Revenge of the Sith. It was important to us to create original assets through graphics and sounds to help us to stand out, and to create an engaging and considered user experience.

level 1 - Death Star
Level 1 - Death Star

level 2 - Endor
Level 2 - Endor

level 3 - Mustafar
Level 3 - Mustafar

Colour

Colour has been chosen level by level to create an immersive player experience. Traditional C3PO gold is used for the buttons, timer, game area frame and points counter. Bright yellow is used with a chromatic aberration effect and Star Wars font for the main title.

main title
Main title

A starry pixel background has been created with expansive black spaces to make the user feel like they are in space.

Click arrow for starry space background experience

Starry space background


Fonts

The fonts that we used were 'Noto Sans Display' from Google Fonts for the body text and 'SF Distant Galaxy' from DaFont for the title.

Music & Sounds

The music for the game was created using a combination of Rytmik Studio and Rytmik Ultimate. As the art was inspired by a Gameboy Advanced game, it made a lot of sense to keep the retro theme for the music too. So a chiptune style was chosen to match it. We added more to the soundtrack when more levels were created.

The full OST can be found here.

We have also aquired some sound effects from Pixabay to add to the game. However adding them to the game was not required for our MVP meaning that this would be added in the future.

Wireframes

Some basic wireframes were created so the team could be on the same page when creating the layout during coding sessions.

Landing page - Landscape

Base Page Landscape

In Game Screen

In Game

How To Play Screen

How To Play

Game Over Screen

Game Over


Technologies, Languages & Programs Used

  • HTML, CSS + JavaScript

  • Procreate - used to create the Star Wars artwork and edit images .

  • Rytmik Studio & Ultimate - used to create the music.

  • GitHub - used to save and store all files for this website .

  • Git - used for version control.

  • Google Fonts - fonts were imported from here.

  • Simple Image Resizer - to resize all artwork.

  • Tiny PNG - to compress images .

  • Google and OperaGX Dev Tools - to debug and for testing responsiveness.

  • Google Lighthouse - for auditing the website.

  • W3C Validator - for validating the HTML and CSS code .

  • JSHint - for validating JavaScript.


Features

This game includes three pages (levels), each with a:

  • Start Modal
  • Game Screen
  • End Modal
  • Win Modal

Existing Features

Start Modal

This is the first page that appears on the top of the screen. The Saber Scroll image is added and then the welcome message with the rules of this Game (note the rules change for each level). Instructions for the user to play using the keyboard arrows are shown. There is a button that enables a user to start playing the game.

Game Screen

When the user wants to play the game using the play button the game screen reveals. On the top of the screen the Saber Scroll image is present, with a timer on the right and a life counter on the left. Underneath the game container, there is an on/off button for audio. This page also includes a footer. On the left side of the page, copyright details are present and on the right side, links to developer's GitHub page are added.

End Modal

This end screen reveals when the player has lost all their lives and the game is over. In this screen a button is added that if the user wants to play the game again they can start playing again simply by clicking the try again button.

  • End Modal

End Modal

Win Modal

This win screen reveals when the game is over. In this screen a button is added and its functionality depends on the level. For level one and two, the user can click the button to progress to the next level. For level three the button allows the user to restart the game from the beginning.

Future Features

There are a few features that we would like to add in future to reach some of the user stories. These features are:

  • Local multiplayer, both 'hot seat' and 'co-op'.
  • A rework of the scoreboard system so that a high score table can be implemented.
  • Attach some retro sound effects to various parts of the game.
  • Lightsaber selection at the beginning of the game.
  • A more responsive site as well as touch controls so mobile/tablet users can play the game.
  • More levels! More Art! More Music! More Collectables! More Enemies!

Responsiveness

As this game was physical keyboard-dependent and not yet suitable for playing on tablets and mobile, (this feature will be deployed in the next version of the game), we made sure to leave feedback for the user if they view the game on a device. The feedback can be viewed in the image below.

keyboard
Feedback for user's on mobile/tablet displays

Testing

Manual Testing

Manual testing following the User Stories was carried out throughout the development of the project, with the final results available below.

  • As a user, I want to see a landing page that features memorable Star Wars references so that I immediately feel immersed in the Star Wars universe.
Test Issue Result
1 User is exposed to Star Wars fonts, colours and artwork upon viewing the landing page PASS
  • As a user, I want the landing page to be designed to load quickly and smoothly and to include interactive elements so that I can see the website is working to prepare the game for me to enjoy.
Test Issue Result
2 Start Modal appears onload for user with an interactive 'Play' button PASS
  • As a user, I want to see the rules of the game so that I am clear with what I am doing.
Test Issue Result
3 Start modal displays rules and instructions to the user on how to play, component images are used to represent the in game items PASS
  • As a user, I want to be able to control the audio playing so that I can be in control of the game.
Test Issue Result
4 The user can control the muting/unmuting of the music using a labelled slider button PASS
  • As a user, I want to be able to control my character's movement using the arrow keys.
Test Issue Result
5 The user can control the movement of the lightsaber using their keyboard arrow keys PASS
  • As a user, I want to progress through the game accumulating the highest score possible with increasing difficulty so that I feel challenged and engaged.
Test Issue Result
6 User can identify their time taken and points scored in each level PASS
  • As a user, I want to have a set number of lives depicted by Yoda icons, which depreciate each time I make a mistake.
Test Issue Result
7 Yoda lives icons are clearly displayed for the user with immediate removal of one should they touch Darth Vader or a Tie Fighter PASS
  • As a user, I want the game play to have a high level of replayability.
Test Issue Result
8 The user can aim to beat their previous play sessions using the timer for each level and by trying to avoid the 'Try again' modal PASS
  • As a developer, I want to ensure that the game's graphics and sound effects are immersive and engaging.
Test Issue Result
9 The game displays engaging content related to Star Wars PASS

Bugs

Fixed bugs

To find a list of fixed bugs that were mended during development, please click here.

Remaining bugs

  • Depending on where the lightsaber sprite + vader sprite spawn, if they by chance spawn in the exact same spot, the gameOver() function will be called until they move away, creating a pseudo-loop.

  • The Start button when pressed continuously speeds up the sprite and player movement.

  • After the mute/unmute button is clicked, the user can control the slider's movement using the spacebar.

Validator Testing

HTML Validator

The W3C Markup Validation Service for the HTML code was passed in as a URL and returned no errors.

html-validator-results

CSS Validator

The W3C CSS Validation Service for the CSS code was passed in as source code and returned no errors.

css-validator-results

JSHint

The JSHint Validation Service for the JavaScript code was passed in as source code and returned no errors.

Deployment, Development & Version Control

The development environment used for this project was GitPod.

Each software developer on the team created their own individual branch divergent from main from the get-go and have communicated via Slack to collaborate, pitch ideas, fix bugs and talk about relevant Pull Requests. Regular commits and pushes to Github have been employed to be able to track and trace the development process of the web application.

For local deployments instructions shall be written below, along with instructions with deployment to GitHub Pages, the hosting service used to deploy this particular website.

Local Deployment

This repository can be cloned and run locally with the following steps:

Deployment to GitHub

The live version of the project is deployed at GitHub pages.

The procedure for deployment followed the "Creating your site" steps provided in GitHub Docs.

  • Log into Github.
  • Select desired GitHub Repository to be deployed live.
  • Underneath the repository name, click the “Settings” option.
  • In the sub-section list on the left, under “Code and automation”, click “Pages”.
  • Within the ”Source” section choose ”main” as Branch and root as folder and click ”Save”.
  • The page refreshes and a website shall then deploy via a link.
  • The following is the live link deployed: https://amylour.github.io/star_wars_hackathon/

Credits

Media

As mentioned in the Design section, all assets, graphic and audio, were created as original materials. Inspiration from the referenced Star Wars Game Boy Advanced game was researched using Google Images.

Acknowledgments

This project was created in collaboration by Burgundy Lightsaber: Amy, Chris, Jacob, Jamie, Keiron, Nathan, Saleha, Shaun

About

Code Institute May 2023 Hackathon - A team effort to make a Star Wars game in 5 days. Skill levels varied within the team and the experience brought lots of learning opportunities.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors