A top-down arena shooter roguelite in which you're a mythical marshmallow god fighting against peasant munchies such as chocolates, jellies, or candies!

Overview

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:
  • In wasm:
    • defaults to session/configuration which means browsers session storage will be used

--data <PATH>

Sets the data directory.

  • In native:
  • In wasm:
    • defaults to session/configuration which means browsers session storage will be used

--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:

This means you can select the license you prefer!

You might also like...
A native screenshot tool for wlroots based compositors such as sway and river written in Rust
A native screenshot tool for wlroots based compositors such as sway and river written in Rust

A native screenshot tool for wlroots based compositors such as sway and river written in Rust. X11 support coming soon.

Provides a mock Ambi client that emulates real sensor hardware such as an Edge client

ambi_mock_client Provides a mock Ambi client that emulates real sensor hardware such as an Edge client. Usage You must have Rust installed to build am

👑 Show in-organization ranking of GitHub activities such as review count.

gh-ranking Show in-organization ranking of GitHub activities such as review count. Installation gh extension install yukukotani/gh-ranking Usage USAG

Crates.io library that provides high-level APIs for obtaining information on various entertainment media such as books, movies, comic books, anime, manga, and so on.
Crates.io library that provides high-level APIs for obtaining information on various entertainment media such as books, movies, comic books, anime, manga, and so on.

Crates.io library that provides high-level APIs for obtaining information on various entertainment media such as books, movies, comic books, anime, manga, and so on.

Zenith - sort of like top or htop but with zoom-able charts, CPU, GPU, network, and disk usage
Zenith - sort of like top or htop but with zoom-able charts, CPU, GPU, network, and disk usage

Zenith - sort of like top or htop but with zoom-able charts, CPU, GPU, network, and disk usage

A small utility that moves the start menu to the top-center of the screen in Windows 11.
A small utility that moves the start menu to the top-center of the screen in Windows 11.

TopCenterStart11 A small utility that moves the start menu to the top-center of the screen in Windows 11. As of right now, this application can only p

Stay on top of semver using your changelog.

semverlog - semantic versioning meets changelogs The semantic versioning specification (https://semver.org) gives us a tool sanely evolve software. Ho

🚀 JavaScript driver for ScyllaDB, harnessing Rust's power through napi-rs for top performance. Pre-release stage. 🧪🔧
🚀 JavaScript driver for ScyllaDB, harnessing Rust's power through napi-rs for top performance. Pre-release stage. 🧪🔧

🚀 JavaScript driver for ScyllaDB. Pre-release stage. 🧪🔧 ⚠️ Disclaimer ⚠️ This repository and the associated npm package are currently in a 🐣 pre-r

Comments
  • Pause on losing focus

    Pause on losing focus

    Game should be paused automatically when primary window focus is lost, to prevent users from accidental Alt + Tabs.

    See:

    • https://docs.rs/bevy/latest/bevy/window/struct.WindowFocused.html
    enhancement ux 
    opened by umut-sahin 0
  • Support multiple languages

    Support multiple languages

    Staring with:

    • English
    • Turkish

    And for later:

    • French
    • German
    • Spanish
    • Italian
    • Dutch
    • Japanese
    • Korean
    • Polish
    • Portuguese
    • Russian
    • Simplified Chinese
    • Traditional Chinese
    • Hindi
    • more?
    enhancement localization 
    opened by umut-sahin 0
  • Improve camera

    Improve camera

    Currently, the camera just blindly follows the player. This can be improved.

    See:

    • https://www.youtube.com/watch?v=TdWFzpgnljs
    • https://store.steampowered.com/app/1942280/Brotato/ (the first video)

    I'd recommend playing Brotato and observing its behavior as well.

    enhancement gameplay camera 
    opened by umut-sahin 0
Owner
Umut
METU Ceng\nProgramming since 2008
Umut
A language parser tool to build recursive descent top down parser.

lang-pt A language parser tool to generate recursive descent top down parser. Overview Parsers written for the languages like Javascript are often cus

Creative Forest 7 Jan 4, 2023
Build Java applications without fighting your build tool. Drink some espresso.

Espresso Build Java applications without fighting your build tool. Drink some espresso. Features Modern Look & Feel Command line interface inspired by

Hunter LaFaille 5 Apr 2, 2024
A fast bump allocator that supports allocation scopes / checkpoints. Aka an arena for values of arbitrary types.

bump-scope A fast bump allocator that supports allocation scopes / checkpoints. Aka an arena for values of arbitrary types. What is bump allocation? A

null 7 May 4, 2024
Brutally simple command line app for jotting things down

jot Brutally simple command line app for jotting things down. About jot lets you get things down before you forget, without fiddling folders, naming,

Alexander Alexandrov 1 Apr 8, 2022
Cost saving K8s controller to scale down and up of resources during non-business hours

Kube-Saver Motivation Scale down cluster nodes by scaling down Deployments, StatefulSet, CronJob, Hpa during non-business hours and save $$, but if yo

Mahesh Rayas 5 Aug 15, 2022
Neovim plugin for moving lines up and down, written in Rust

Moveline.nvim Moveline is a simple plugin for moving lines up and down. It's written in Rust using my library nvim-utils. Installation Moveline can be

Will Hopkins 34 Mar 18, 2023
Provides a cross platform way to shut down, reboot or log out operations

@napi-rs/system-shutdown This package provides a cross platform way to shut down, reboot or log out operations. Supported platforms: Linux, Windows an

LongYinan 7 Nov 2, 2023
Librarian runs pre-configured commands against a group of files that match a set of filters

Filesystem Librarian Librarian runs pre-configured commands against a group of files that match a set of filters. The group of files is called a libra

Jason Rogena 10 Dec 25, 2022
'apk-yara-checker' is a little CLI tool written in Rust to check Yara rules against a folder of APK files.

apk-yara-checker 'apk-yara-checker' is a little CLI tool written in Rust to check Yara rules against a folder of APK files. You have to pass the folde

alberto__segura 15 Oct 5, 2022
Use your computer as a cosmic ray detector! One of the memory errors Rust does not protect against.

Your computer can double up as a cosmic ray detector. Yes, really! Cosmic rays hit your computer all the time. If they hit the RAM, this can sometimes

Johanna Sörngård 110 Jun 16, 2023