ENG. Bevy Engine 0.17 introduces several significant new features, focusing on API, rendering, and reflection improvements, making the engine more performant and user-friendly for developing data-driven games in Rust. Here are the main updates:

Event and Observer API Rework: The Observer API, introduced in previous versions, has been rewritten to be clearer, easier to use, and more performant. This is a key step toward Bevy’s new Scene/UI system, with optimizations that reduce repetitive code and improve efficiency.

Automatic Reflect Type Registration: All #[derive(Reflect)] types are now automatically registered, dramatically reducing the repetitive code needed to take advantage of reflection features. This is essential for future tools like the new scene system, the entity inspector, and the visual editor. Conversely, generic types still require manual registration.

Experimental hardware ray tracing support (Solari): The bevy_solari crate is introduced for real-time ray-traced rendering, including non-real-time path tracing and optional support for DLSS on NVIDIA GPUs. It’s not yet production-ready, but it allows for advanced experiments like global illumination and upscaling. You can test it with the solari sample by enabling the appropriate features.

Viewport Node: New feature for rendering 3D (or other) content within UI nodes, useful for complex UIs with immersive elements. It also supports picking if the bevy_ui_picking_backend feature is enabled.

Procedural Atmosphere Improvements: Added a raymarched render path for accurate views from outside the atmosphere (e.g., from space), with two rendering modes available.

RenderStartup schedule: New schedule for structured renderer initialization, which moves assets and plugins into normal systems, improving modularity.

Frame time graph: A visual tool for monitoring performance with historical frame time graphs, useful for debugging and optimization.

Other features and improvements: Initial support for hot patching Rust code at runtime (in collaboration with Dioxus), Bevy Feathers widgets for development tools (experimental), and various bug and quality-of-life fixes. The milestone is completed with 584 closed issues and contributions from 278 developers.

The release is available on crates.io and GitHub, with updated examples and documentation.

ITA. Bevy Engine 0.17 introduce diverse novità significative, focalizzate su miglioramenti nelle API, rendering e reflection, rendendo l’engine più performante e user-friendly per lo sviluppo di giochi data-driven in Rust. Ecco i principali aggiornamenti:

Rifacimento delle API per Event e Observer: L’Observer API, introdotta nelle versioni precedenti, è stata riscritta per essere più chiara, facile da usare e performante. Questo è un passo chiave verso il nuovo sistema di Scene/UI di Bevy, con ottimizzazioni che riducono ripetitivo e migliorano l’efficienza.

Registrazione automatica dei tipi Reflect: Tutti i tipi #[derive(Reflect)] vengono ora registrati automaticamente, riducendo drasticamente il codice ripetitivo necessario per sfruttare le feature di reflection. Questo è essenziale per tool futuri come il nuovo sistema di scene, l’entity inspector e l’editor visivo. Viceversa i tipi generici richiedono ancora registrazione manuale.

Supporto sperimentale al ray tracing hardware (Solari): Viene introdotta la crate bevy_solari per il rendering in tempo reale con ray tracing, inclusi path tracing non in tempo reale e supporto opzionale per DLSS su GPU NVIDIA. Non è ancora pronto per la produzione, ma permette esperimenti avanzati come illuminazione globale e upscaling. Puoi testarlo con l’esempio solari abilitando le feature appropriate.

Viewport Node: Nuova feature per renderizzare contenuti 3D (o altri) all’interno di nodi UI, utile per UI complesse con elementi immersivi. Supporta anche il picking se abilitata la feature bevy_ui_picking_backend.

Miglioramenti nell’atmosfera procedurale: Aggiunto un path di rendering raymarched per visuali accurate dall’esterno dell’atmosfera (ad esempio dallo spazio), con due modalità di rendering disponibili.

RenderStartup schedule: Nuovo schedule per l’inizializzazione strutturata del renderer, che sposta risorse e plugin in sistemi normali, migliorando la modularità.

Frame time graph: Tool visivo per monitorare le performance con grafici storici del frame time, utile per debugging e ottimizzazione.

Altre feature e miglioramenti: Supporto iniziale per hot patching del codice Rust in runtime (in collaborazione con Dioxus), widget Bevy Feathers per tool di sviluppo (in forma sperimentale), e vari fix per bug e qualità della vita. Il milestone è completato con 584 issue chiuse e contributi da 278 sviluppatori.

Il rilascio è disponibile su crates.io e GitHub, con esempi e documentazione aggiornati.

link: Bevy 0.17