The goal of this project was to build a space shooter game that can be played on the browser and stores your score on an online server
- HTML
- Phaser3
- Webpack
- Javascript
- Eslint
- Babel
- Jest
- Netlify for deployment
- Leaderboard API service for high scores
Clone the repository
- git clone https://github.com/paulzay/shooter;
- cd shooter/
Install the dependencies
npm install
Start the server
npm start
Open up your browser and navigate to http://localhost:8080/dist/ and start the game
To run the unit tests
npm run test
- MOVE UP: Press [W] key
- MOVE DOWN: Press [S] key
- MOVE LEFT: Press [A] key
- MOVE RIGHT: Press [D] key
- SHOOT LASER: Press [SPACEBAR] key
The player fights against a non-lethal enemy, a shooting enemy and a boss enemy. In order to fight the boss, the player has to acquire a set amount of points by shooting the first two enemies. Once the score is reached, the player now faces the boss. The game has no win scenario, the goal is to acquire as much points as you can before running out of lives.
- In order to get started with the game, I had to start by going through a tutorial on how to use Phaser here. This alongside the phaser documentation and examples provided the basic knowledge.
- Next up, I came up with a concept theme to work with and the storyline for the flow of the game. This includes the scene background and sprites for the character and the sound effects to be used. The storyline controlled the spawing of the enemies at different set times. Different capabilities for the player and enemies were proposed for implementation.
- With the game design in mind, I went to opengameart to find the right assets that would bring my game to life.
- Now that everything that I needed was in my asset folder, I proceeded to plan how the game would come together with the different characters. First I set up the player character, made him move and able to fire. Next came the enemy characters and their traits as well. A few extra features were left out for future development but the core requirements were met. Having implemented their core features, I went on to add more scenes for navigating the game and then wrote some tests to ensure things were working as they should.
- The last thing was separating the code into modules for readability and easier maintenance.
👤 Paul Ogolla
Contributions, issues and feature requests are welcome!
Feel free to check the issues page
- More scenes and stages
- Power-ups
- Different player characters to choose from
Give a ⭐️ if you like this project!
- All the resources used are open source and can be found on gameart
This project is free to use as learning purposes. For any external content (e.g. logo, images, ...), please contact the proper author and check their license of use.