pub trait Game {
// Required method
fn update(
&mut self,
engine: &mut Engine,
delta_time: f32,
) -> EngineResult<()>;
// Provided methods
fn init(&mut self, engine: &mut Engine) -> EngineResult<()> { ... }
fn render(&mut self, engine: &mut Engine) -> EngineResult<()> { ... }
fn on_event(
&mut self,
engine: &mut Engine,
event: &WindowEvent,
) -> EngineResult<()> { ... }
fn cleanup(&mut self, engine: &mut Engine) { ... }
}