Collect as many stars. Race against time. Everything moving faster and faster as your level goes up. Try to survive and collect stars as much as possible to bring your name into the high scores list.
- Jump To: How To Use
- Jump To: Gameplay
- Jump To: How This Game Designed
- Jump To: Tests
- Jump To: Future Features
- Jump To: Contributing
๐ฅ Video Presentation
- JavaScript
- Phaser
- Webpack
- Netlify
- Jest
- A modern browser, up to date.
- Node.js, if you are going to use it in the local environment.
- Click the Live Demo Link and enjoy with the website.
- Clone the repository:
git clone https://github.com/kubilaycaglayan/star-fall.git
- Enter the project directory:
cd star-fall
- Run npm to install the dependencies
npm install
- Start the game
npm run start
- Up: Jump / Super jump
- Down: Pass through platform downwards
- Left: Go left
- Right: Go right
- The game has a leveling system that shifts up on every 100 points.
- In every level-up, ground creations and removal time intervals speeds up.
- Your objective is to survive with the highest possible score.
- The game has 20 levels on total.
- After the character jumps from a platform, it can jump one more time in the air.
- You can only super jump if you have just jumped from a platform. This means, if you are falling, you can't use super jump.
- You can pass through down from any platform to elevate down to the nearest platform. To do this use down arrow key when you are on a platform.
- And your score will be automatically recorded each time you finish the game.
- If you are on the top 10, you can see yourself in the list.
I wanted to create a platform game. With a movable character on a static window. It can jump and collect entities.
I don't like enemies, for that reason I wanted to make the game race against the time. To achieve this, I got some inspiration from an old game 'Icy Tower'. In that game the objective was to go as high as possible. Since I want to draw myself a frame, I kept my camera static. Which means the perspective is not changing. To make the game has an objective I put limitations like disappearing platforms and the game is ending if you fall down.
Also created a leveling system in which the time cycle of the platform moves faster as the level goes high. And level depends on the stars collected. For every 100 points the game levels up, until 20. Which is a very fastly changing environment.
To achieve these objectives I have collected the assets like the ground, background, star, a sprite sheet and I selected one of my improvisational guitar recordings as background music haha sorry for that. ๐
To understand Phaser better and to overcome technical blockers quickly, I visited Phasers website and skim documentation.
Once I have my final decisions about the design I want to create I started to develop it.
I have started with the randomizer methods. Which is taking coordinates of the current ground and spits out a random coordinate in the frame, possible to jump & land on it.
Then I created the code blocks that are responsible from the ground and star creation. Also, anytime an object created in these two factory functions, they ar eimmediately attached with a countdown which will destroy them soon. This timer mechanism also attached with the level. As the level goes up the destroy times getting shorter.
I used a template for my character, to animate it and move it. I wanted to add 2 more mechanics to the template which are "super jump" and "pass-through" explained well above.
Every player has a default name 'Guest Player". Since I like convention, you don't have to do anything to submit your score. You only can change your nick name if you want. After every game, the responsible code block automatically submits the score. You can check high scores from the main menu by clicking scores.
- Clone the repository:
git clone https://github.com/kubilaycaglayan/star-fall.git
- Enter the project directory:
cd star-fall
- Run npm to install the dependencies
npm install
- Run tests with
npm run test
- Tests are added for public methods.
- Mocks are also used for testing.
- Mobile compatibility.
- Platforms getting shorter as the level goes higher.
- Different themes.
- Better sound effect for collecting stars.
๐ค Kubilay Caglayan
- Website: kubilay
- Github: @kubilaycaglayan
- Twitter: @kbcaglayan
- Linkedin: linkedin
Contributions, issues and feature requests are welcome!
Feel free to check the issues page.
Give a โญ๏ธ if you like this project!
This project is MIT licensed.