-
Notifications
You must be signed in to change notification settings - Fork 0
DDN: 2D & 3D Graphics
Daniel Livingston edited this page Dec 10, 2022
·
3 revisions
Bevy will be used as the graphics backend.
Some benefits of Bevy:
- Rust-native crate
- Cross-platform + WebAssembly support
Before comprehensively designing the system architecture, a simple proof-of-concept will be developed. Lessons learned and insights gained from this demo app will greatly inform the final architecture design.
The proof-of-concept must satisfy the following criteria:
- A 2D Bevy app with true cross-platform support (incl. WebAssembly).
- The app demonstrates a core piece of functionality in RTA. For example, a guitar tuner, a visual MIDI client, or a Guitar Pro player.
Optionally,
- The primary UI and windowing framework is egui; specifically, egui_bevy.
The proof-of-concept should be liberally inspired by this tutorial (which itself satisfies the above criteria): https://caballerocoll.com/blog/bevy-rhythm-game/
The “hello world” of Bevy looks like:
use bevy::{input::system::exit_on_esc_system, prelude::*};
fn main() {
App::build()
// Set antialiasing to use 4 samples
.add_resource(Msaa { samples: 4 })
// Set WindowDescriptor Resource to change title and size
.add_resource(WindowDescriptor {
title: "Rhythm!".to_string(),
width: 800.,
height: 600.,
..Default::default()
})
.add_plugins(DefaultPlugins)
.add_system(exit_on_esc_system.system())
.run();
}