Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tristancacqueray/bevy-moonracer
https://github.com/tristancacqueray/bevy-moonracer
Last synced: 14 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/tristancacqueray/bevy-moonracer
- Owner: TristanCacqueray
- License: mit
- Created: 2023-09-27T13:03:44.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-05-15T14:40:11.000Z (6 months ago)
- Last Synced: 2024-10-11T01:49:20.626Z (27 days ago)
- Language: Rust
- Size: 6.54 MB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# bevy-moonracer
A little game to try out [bevy](https://bevyengine.org).
Online demo: [https://tristancacqueray.github.io/bevy-moonracer](https://tristancacqueray.github.io/bevy-moonracer).
> Checkout the initial prototype in Haskell: [moonracer](https://github.com/TristanCacqueray/moonracer).
## Gameplay
- [x] 2d spaceship racing game.
- [x] Reach the goals as fast as possible.
- [ ] Edit the inputs frame by frame to make the perfect score, e.g.: tool assisted speedrun (TAS).## Features and roadmap
The goal of this project is to implement the core pieces of a classic video game.
This can be used by beginners to get some starting points for their own game.### Game mechanics
- [x] 2d box collision system.
- [x] Reach goals to increase the score.
- [x] Finish the level by landing back on the launch pad.
- [x] Save user data (powered by [bevy_pkv](https://github.com/johanhelsing/bevy_pkv)).
- [ ] Save ghost input data.
- [ ] Difficulty settings (Crash on high velocity, no drag, no gravity).
- [ ] Story line (e.g. a pilot trying to become an astranaut).### Levels
- [x] Levels data stored in [levels.svg](./src/levels.svg) (editable with inkscape).
- [ ] Minimum completion time.
- [ ] Walls
- [x] Solid
- [ ] Bumper
- [ ] Trap
- [ ] Goals
- [x] Passing gate
- [ ] Crate that increases ship weight
- [ ] Black hole that reverses the gravity
- [ ] Codegen at buildtime the level data to remove the xml parser dependencies from the runtime.### Inputs
- [x] Keyboard wasd/arrow
- [x] Gamepad
- [ ] Touchscreen### Sounds
- [ ] Background music
- [x] White noise shhhh for the thrust
- [ ] Rewarding bell sample when reaching a goal### Graphisms
- [ ] Logo
- [x] Shader background
- [ ] Thrust particles
- [ ] Crash animation
- [ ] 3d models
- [ ] Custom font### User Interface
- [x] Menus (powered by [ui-navigation](https://github.com/nicopap/ui-navigation)).
- [x] Pause/resume.
- [x] Level selection screen.
- [x] Level end screen with current score and a next level button.
- [ ] Tooltips to explain current goal.
- [ ] Background demo to show what needs to be done. (e.g. a bot playing the first level).
- [ ] Settings menu to adjust the sound volume and toggle the bloom effect.
- [ ] About screen with link to the source.
- [ ] HUD for the ship velocity and current time.
- [ ] TAS mode with input editor and stepping through the frames.### Toolchain
- [x] Reproducible build with nix.
- [x] Run native version with `cargo run` linked with [mold](https://github.com/rui314/mold).
- [x] Build wasm version with `nix build .#web`.
- [ ] Setup GitHub action to update the online demo.
- [ ] Build native version for windows/mac/linuxClear save data in browser local storage or in `~/.local/share/save/bevy_pkv.sled/`.