A top-down arena shooter roguelite in which you're a mythical marshmallow fighting against peasant munchies such as chocolates, jellies, or candies!
Mythmallow is created after playing excessive amount of Brotato as a Rust enthusiast. The purpose is to learn how to develop a game from start to end with Bevy using best practices, and share it with the community as an example.
Mythmallow is free and open source! It'll be released on Steam and Epic Games Store for a small price in the future for those who want to donate or want to have the convenience of having the game on a gaming platform.
For 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.
Coming soon...
Coming soon...
Coming soon...
Coming soon...
Coming soon...
You need Nightly Rust Toolchain, Bevy OS Dependencies and LLD or Mold Linker to build the game.
To build the game for development in your native platform, you can run:
cargo build
To build the game for release in your native platform, you can run:
cargo build --release --no-default-features --features native-release
To build the game for development in WebAssembly, you can run:
cargo build --target wasm32-unknown-unknown --no-default-features --features wasm-development
To build the game for release in WebAssembly, you can run:
cargo build --release --target wasm32-unknown-unknown --no-default-features --features wasm-release
- In Native:
- Arguments are parsed from the command line arguments.
mythmallow --seed 42 --game
- Arguments are parsed from the command line arguments.
- In WebAssembly:
- Arguments are parsed from the URL.
https://mythmallow.io/?seed=42&game
- Arguments are parsed from the URL.
Specifies the configuration directory.
- In Native:
- defaults to current platforms configuration directory (see dirs::config_dir)
- In WebAssembly:
- defaults to
session/configuration
which means browsers session storage will be used
- defaults to
Specifies the data directory.
- In Native:
- defaults to current platforms data directory (see dirs::data_dir)
- In WebAssembly:
- defaults to
session/data
which means browsers session storage will be used
- defaults to
Specifies the seed for random number generation in the game.
If not set manually, a random seed will be used.
Warning: This argument is only for debugging purposes. Same seed can result in a different game, in different versions of the game.
Starts the application directly in-game, bypassing menus.
Specifies the game mode when starting the application in-game.
Available Game Modes:
survival
If not set manually, a random game mode will be selected.
Specifies the player when starting the application in-game.
Available Players:
- From Greek Mythology:
artemis
hades
If not set manually, a random player will be selected.
Specifies the enemies when starting the application in-game.
Available Enemies:
sweet
If not set manually, random enemies will be selected.
Specifies the additional starting items, separated with commas, when starting the application in-game.
Available Items:
bow-of-artemis
bident-of-hades
If not set, the inventory will only contain the starting item of the selected player.
Specifies the level of the player when starting the application in-game.
- Should be between [1, 65535]
If not set, level of the player will be set to 1
.
Specifies the experience of the player when starting the application in-game.
- Works together with --level:
- if specified experience is smaller than the experience required to reach the specified level
- level would be set to the specified level
- experience would be set to the experience required to reach the specified level
- otherwise
- experience would be set to the specified experience
- level would be set to the same level as if you leveled up by gaining the specified experience in game
- if specified experience is smaller than the experience required to reach the specified level
If not set, experience of the player will be set to 0.00
.
Specifies the balance of the player when starting the application in-game.
If not set, balance of the player will be set to 0.00
.
Specifies the number of free refreshes to give to the player when starting the application in-game.
If not set, player won't have any free refreshes.
Enables god mode.
- You still take damage when god mode is enabled, you just can't die, even if your health is lower than zero.
- In Native:
- Arguments are parsed from the "mode" command line argument.
mythmallow --game --mode "survival --wave 2"
- Arguments are parsed from the "mode" command line argument.
- In WebAssembly:
- Arguments are parsed from the "mode" query parameter.
https://mythmallow.io/?game&mode=|survival?wave=2|
- Arguments are parsed from the "mode" query parameter.
Specifies the wave when starting the application in-game.
If not set manually, or set incorrectly, the first wave will be selected.
To view the API documentation, you can run:
cargo doc --open
To view the design documentation, you can run:
mdbook serve --open
(requires mdbook).
Mythmallow 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!