Mythmellow
A top-down arena shooter roguelite in which you're a mythical marshmallow god fighting against peasant munchies such as chocolates, jellies, or candies!
Goal
Mythmellow is created after playing excessive amount of Brotato as a Rust developer. The purpose is to learn how to develop a game from start to end with Bevy using the best practices, and share it with the community as an example.
Installation
Mythmellow is free and open source! It'll be released on Steam and Epic Games Store in the future for those who want to donate or want to have the convenience of having the game on a gaming platform.
At the time being, the only way to play is to build the game yourself. The game is still in its infancy, so the release process is non-existent.
Steam
Coming soon...
Epic Games
Coming soon...
Pre-built
Coming soon...
Browser
Coming soon...
Crates.io
Coming soon...
Building
You need Nightly Rust Toolchain, Bevy OS Dependencies and LLD or Mold Linker to build the game.
Native (Debug)
To build the game for development in your native platform, you can run:
cargo build --features native,development,bevy/dynamic_linking
Native (Release)
To build the game for release in your native platform, you can run:
cargo build --features native --release
WebAssembly (Debug)
To build the game for development in WebAssembly, you can run:
cargo build --target wasm32-unknown-unknown --features wasm,development
WebAssembly (Release)
To build the game for release in WebAssembly, you can run:
cargo build --target wasm32-unknown-unknown --features wasm --release
Usage
CLI Options
--configuration <PATH>
Sets the configuration directory.
- In native:
- defaults to current platforms config directory (see dirs::config_dir)
- In wasm:
- defaults to
session/configuration
which means browsers session storage will be used
- defaults to
--data <PATH>
Sets the data directory.
- In native:
- defaults to current platforms data directory (see dirs::data_dir)
- In wasm:
- defaults to
session/configuration
which means browsers session storage will be used
- defaults to
--seed <SEED>
Sets the seed for random number generation in the game.
If not set manually, a random seed will be used.
Warning: This flag is only for debugging purposes. Same seed can result in a different game, in different versions of the game.
--game
Starts the application in the game, skipping menus.
--mode <MODE>
Sets the game mode when starting the application in the game.
Available modes:
- Survival
If not set manually, a random game mode will be selected.
Documentation
API Documentation
To view the API documentation, you can run:
cargo doc --features native,development --open
Design Documentation
To view the design documentation, you can run:
mdbook serve --open
(requires mdbook).
License
Mythmellow is free, open source and permissively licensed!
All code in this repository is dual-licensed under either:
- MIT License (LICENSE-MIT or https://opensource.org/licenses/MIT)
- Apache License, Version 2.0 (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
This means you can select the license you prefer!