Skip to content
An action 2D platformer made with Amethyst game engine
Branch: master
Clone or download
Latest commit bdc939d Jul 16, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
assets adding parallax effect Jul 16, 2019
resources repo name change + docs fixed Jul 12, 2019
src clean up Jul 16, 2019
.gitignore removing target folder from git history Jul 13, 2019
Cargo.lock screen layout fix for Windows Jul 14, 2019
Cargo.toml repo name change + docs fixed Jul 12, 2019
LICENSE Adding MIT license Jun 27, 2019
README.md adding parallax effect Jul 16, 2019

README.md

Space Menace

An action 2D platformer made with the Amethyst game engine.

This is my firstish attempt at a game (I did write a basic snake game some time back). Through this project, I aim to get better at coding in Rust, get familiar with the Amethyst game engine and start learning game development in general. I also hope that this project will help other Amethyst and game dev beginners like me in some way or the other.

Currently, it is a ⚠️WORK IN PROGRESS⚠️ and there is still a lot to be done before it reaches a playable state. Also, the code is far from perfect and there is a lot of scope for improvement. I will keep enhancing the code incrementally, as I go along.

Running the game

Note: This game requires Rust nightly.

# Clone the repo
git clone https://github.com/amethyst/space-menace.git
cd space-menace

Configure Cargo.toml

If you are on Windows or Linux you will have to modify the Cargo.toml to enable the vulkan feature of the amethyst dependency.

amethyst = { git = "https://github.com/amethyst/amethyst", features = ["nightly", "vulkan", "json"] }

On macOS, instead of vulkan the metal feature needs to be enabled.

amethyst = { git = "https://github.com/amethyst/amethyst", features = ["nightly", "metal", "json"] }
# Run
cargo run —release 

Game controls

Use the left arrow key and right arrow key to move the player and the up arrow key to jump. Use spacebar to fire.

Features:

  • Basic map using Tiled
  • Animation using prefabs (Main character run, jump, shoot, etc.)
  • Basic 2D physics (gravity, velocity, collision detection, etc.)
  • Lazy spawning of entities
  • One complete level (enemies, full map, etc.)
  • Parallax
  • Start, Pause and Game Over screens
  • Game mechanics / rules (points, lives, etc.)
  • Audio
  • nphysics integration (using specs-physics)
  • Documentation
  • Tests

Credits / Thanks:

  • The awesome Amethyst community for helping me out whenever I got stuck. Special thanks to Ben, doomy, JoshMcguigan, Alve, azriel, Dispersia, Moxinilian, torkleyy, Jojolepro, kel, jaynus, Frizi.
  • ansimuz for all the cool assets used in this game.
You can’t perform that action at this time.