GithubHelp home page GithubHelp logo

amethyst / dwarf_seeks_fortune Goto Github PK

View Code? Open in Web Editor NEW
25.0 4.0 8.0 59.88 MB

A 2D puzzle platformer made with the Amethyst game engine.

License: Other

Rust 100.00%
amethyst rust game showcase 2d-puzzle-platformer game-dev

dwarf_seeks_fortune's Introduction

Build Status unsafe forbidden

โš ๏ธ Note: Since the Amethyst game engine is discontinued, development has similarly halted on this version of Dwarf Seeks Fortune. A new version of the game is being developed using the Bevy engine.

Dwarf Seeks Fortune: Amethyst Edition

A 2D puzzle platformer made with the Amethyst game engine. This game is an homage to the 1988 classic King's Valley II.

Screenshot

Gameplay

You're a dwarf, digging through the ancient ruins of your ancestors. Each level presents a different puzzle. The aim is to collect all keys, after which the door to the next level is unlocked. Puzzle elements include one-time-use tools that must be picked up and used in a specific order at specific locations.

Screenshot

Design goals:

  • This project aims to be a helpful resource for people learning Amethyst. Code should ideally be thoroughly documented and easy to understand. It should be kept up to date with the latest stable version of Amethyst and should follow best practices.
  • This game should be accompanied by guides explaining how certain features are implemented. These guides should aim to serve as a next step after reading the pong tutorial and the basic examples.
  • There is a focus on robustness; for example, someone cloning the repository for the first time should be allowed to accidentally break one of the settings files without it crashing the whole game. Instead, log a warning and use a fallback.
  • I personally hate games that make you use the mouse more than necessary. This game must be fully accessible with a keyboard alone. Mouse input should always be optional.

Quickstart

  • Clone the repository
git clone https://github.com/amethyst/dwarf_seeks_fortune.git
cd dwarf_seeks_fortune
  • Build and run the project
cargo run

For Mac Users

Open the Cargo.toml file and change from vulkan to metal. You have now changed the renderer backend to one that works on MacOS. This step will hopefully become unnecessary in the future.

For Linux Users

You might need to install some dependencies. Please refer to this section of the Amethyst README for more details.

Features:

  • In-game level editor. Allows for rapid iteration when designing levels.
  • Derpy movement mechanics akin to those of the game this is based on. This game purposely refrains from using a full physics simulation, opting instead for predictable grid-based movements suitable for a puzzle game.
  • Multiple playable levels.
  • Sound effects and music.
  • Time rewinding mechanic to help fix mistakes when solving the puzzles. Might be removed if it proves superfluous or reductive to the experience. For now, it serves as a handy debugging tool.

Art

Sprites are placeholders at the moment, but someone is working on proper pixel art. Sound effects are placeholders as well. Music may or may not be replaced later, it depends on whether I find something more suited to the overall theme of the game.

Contributing

I'd love your contributions! Check out the contributing guidelines to get started.

dwarf_seeks_fortune's People

Contributors

jazarro avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

dwarf_seeks_fortune's Issues

Menu screen goes black after minimizing

After having been minimized while in the menu state, the screen stays black. The game must then be restarted to fix it.

This can possibly have something to do with the camera? The problem does not occur in the editor or play states.

Tunneling

Currently there is no limit on delta-time. If FPS drops too low, tunneling (e.g. player falling through floor) is inevitable.

This must be fixed.

Level selection

A way to select what level you want to play.

Coming soon.

Change jumping mechanics

Jumping currently has a quick and dirty implementation. There are several issues. The jumping mechanic must be overhauled.

Some concrete issues:

  • If you press jump right before running underneath a 2-high ledge, it is possible to jump through the ceiling.
  • It is possible to jump across a 4-wide chasm.

New tool: placeable ladder

Implement a placeable ladder as a new tool. This tool allows the player to place a 2 by 2 bit of ladder directly in front of them. After placing the ladder, it cannot be moved again. Placement is similar to the same way that the hammer tool would take away blocks.

From the brainstorm:

Placeable ladder. Very similar to pushable blocks in purpose, but subtly different. Crucially, the player is able to carry this thing up a ladder. It actually supersedes the pushable block in usability in almost very way, except that a pushable block is reusable whereas a placeable ladder is not.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.