Skip to content

๐ŸŒ  Collect falling stars while everything moving faster and faster.

License

Notifications You must be signed in to change notification settings

kubilaycaglayan/star-fall

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

62 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŒ  Star Fall ๐ŸŒ 

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.

Video Presentation

๐ŸŽฅ Video Presentation

Live Demo

Live Demo Link

screenshot

Built With

  • JavaScript
  • Phaser
  • Webpack
  • Netlify
  • Jest

โญ Getting Started โญ

Prerequisites

  • A modern browser, up to date.
  • Node.js, if you are going to use it in the local environment.

Usage

๐Ÿ–ฅ๏ธ Running In The Local Environment

To run in the local environment first clone the repository(in Terminal):
  • 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

Gameplay

๐ŸŽฎ Controls

Use arrow keys on your keyboard to play this game

screenshot

Logic

  • 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.

Super Jump

  • After the character jumps from a platform, it can jump one more time in the air.

screenshot

  • 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.

screenshot

Go Down / Pass-Through

  • 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.

screenshot

Input Your Name

  • 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.
Remember to change your name, to do this click to the green text at the intro.

screenshot

๐Ÿ’ผ How This Game Designed & Developed

Overview

I wanted to create a platform game. With a movable character on a static window. It can jump and collect entities.

Story and Gameplay

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.

Level Design

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.

Assets Needed

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. ๐Ÿ˜Š

Technical

To understand Phaser better and to overcome technical blockers quickly, I visited Phasers website and skim documentation.

Development Stage

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.

๐Ÿงช Automated Tests

  • 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.

Future Features

  • Mobile compatibility.
  • Platforms getting shorter as the level goes higher.
  • Different themes.
  • Better sound effect for collecting stars.

Author

๐Ÿ‘ค Kubilay Caglayan

๐Ÿค Contributing

Contributions, issues and feature requests are welcome!

Feel free to check the issues page.

Show your support

Give a โญ๏ธ if you like this project!

Acknowledgements

๐Ÿ“ License

This project is MIT licensed.

About

๐ŸŒ  Collect falling stars while everything moving faster and faster.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published