This game was made with the Amethyst engine. It is inspired by games like Raiden and The Binding of Isaac. Checkout my development journey on my youtube channel and my write-up about using Amethyst on my website.
In this game you control a spaceship. Your goal is to defend an objective from the incoming invasion of enemy spaceships while not letting your health deplete in the process. You can shoot the enemies with your spaceships blasters or ram into them with your barrel roll dealing damage to yourself in the process. How long can you last?
To run on MacOSX make sure that XCode is installed and change the line in the Cargo.toml file:
features = ["vulkan"] =>
features = ["metal"]
Leave everything as is if running on Windows or Linux and enter
cargo run in the root of the project.
|Left||Barrel roll left.|
|Right||Barrel roll right.|
|Escape||Pause the game.|
|1||Buy shop item 1.|
|2||Buy shop item 2.|
|3||Buy shop item 3.|
|Health Wrench||Grants health to the player.|
|Defense Wrench||Grants defense.|
|1x Currency||Grants 1 currency.|
|5x Currency||Grants 5 currency.|
|Hauler||Moves towards the bottom of the arena at a very reduced speed and grants defense on arrival.|
Inspirations: Raiden, Binding of Isaac
Genres: Space shooter, Fantasy
Plot: Under discussion
The universe starting at Earth.
Stationary, focused on the play arena.
Player can move, shoot, barrel roll and use other special abilities and items.
- The player controls a spaceship that can move, shoot, and barrel roll.
- The goal of the game is to defeat a final boss.
- The goal of any given level is to prevent enemies from getting to the bottom of the arena. Letting enemies get to the bottom of the arena will deplete the "defense" bar. The player must also not let their health bar be depleted.
- The player loses health if their ship collides with an enemy blast or an enemy spaceship.
- Each enemy type has a set amount of health that must be depleted to destroy them.
- Each level has several phases where each phase has some degree of random generation. (See Level Phases)
- Each level increases in difficulty.
- Meeting certain objectives will unlock more items.
- Enemies drop pickups and a currency which will need to be manually picked up by the player.
A level features multiple phases. See example phase-map below.
Rest => Invasion => Rest => Mini-Game => Rest => Boss
In the "Invasion" phase an appropriately themed and appropriately difficult selection of enemies is chosen and total enemy count is determined. Enemies are then spawned at random from the selection and the player must deal with them until the number of enemies spawned reaches the total number of enemies for the level.
The "Mini-Game" phase will feature a challenge apart from shooting enemies. This could be something like a large amount of asteroids spawning which the player will need to dodge.
The "Boss" phase will feature a super tough enemy that will serve as the toughest challenge in the level. Defeating the boss ends the level.
The "Rest" phase will give the player a chance to rest and collect themselves before the next phase.
- player health and damage
- enemy pool
- enemy variety
- enemy blasts
- barrel roll blast immunity
- spaceship to enemy collisions
- enemy to enemy collisions
Visual and Audio
- health bar
- defense bar
- barrel roll cooldown bar
- pause menu
- display resolutions options
- player movement animation
- player barrel roll animation
- damage feedback
- penalty for letting enemies past you
- health pickups
- levels with end bosses
- item purchasing through shop
- mini challenges for rewards or penalties (example: certain ships to let past you unharmed)
- defence objective
- reduce barrel roll cooldown
- increase max health
- increase max defense
- trail behind player that does damage
- increase knockback of enemies
- increase comsumable frequency
- gravity gun effect with enemies
- speed boost
- possession ability: can swap control to another ship by clicking on it
- Font: Space Madness by Robert Frye - License: Creative Commons: Attribution 4.0 International