The version jump from v0.1.0
to v2.1.0
reflects significant changes and improvements. Many parts of the project were unstable before, so this jump marks a new, more refined version.
This version focuses heavily on cross-platform compatibility and ergonomics for developers.
-
cross_setup
Crate- A new crate included in the project (for now).
- It simplifies setting up cross-platform features and configurations.
-
dep_reexp
Crate- Re-exports other crates with specific features to manage cross-platform requirements.
- This reduces clutter in the main
Cargo.toml
file, which was overloaded with configurations.
-
Additional Crates
- All other crates integrated into the project to provide distinct functionality (and enhance readability throughout the project).
-
Considerable Web Enhancement
- Enhanced web page from
bevy_game_template
- Smooth transition from the launching container to the gaming container
- Animated spinner (author: Niklas Eicker)
- Enhanced web page from
Some challenges remain with the cross-platform structure. Here’s how they’ll be addressed:
-
Feature and Platform Abstraction
- Add platform-independent functions for tasks like spawning components (e.g., cameras).
-
dep_reexp
Ergonomics- Make the re-exporter crate more user-friendly.
- For example, developers should be able to write
use bevy::prelude::*
without worrying about pre-declaring crates likebevy_ecs
.
-
Cross-Platform Handler Library
- A planned library to handle native operations (e.g., creating parallel processes, accessing the camera, or running background services).
- Focused on desktop platforms (embedded support will be minimal; partial support for WebAssembly).
- This library will be a core feature of LimitPush.
-
OpenXR Support
cross_setup
will manage platform-specific details for OpenXR.- Developers must define some behavior for proper support.
-
Input Abstraction Library
- A library to map all native inputs into a unified structure.
- Supports compile-time and runtime input mapping.
- Will depend on
bevy
and other crates.
-
Networking Library:
NetworkBroker
- A work-in-progress library to make network applications more efficient and ergonomic.
- Aims to transform how networking is handled in
bevy
and beyond.
-
Launching Screen
- Adds a pre-game launching screen (different from the loading screen).
- Prepares only the game’s essential components, while the loading screen handles the game itself.
-
cross_setup
as a Standalone Crate- While still part of the project, it will eventually be separated once it's tested and scaled for larger applications.
Two showcases will demonstrate LimitPush’s capabilities:
-
Bevy-Based Text Editor
- Runs on UEFI (Unified Extensible Firmware Interface).
- Features file save/load, syntax highlighting, and ergonomic input/output.
-
Cross-Platform 3D Game
- Built with OpenXR support first, then adapted for other platforms.
- No embedded platform support is planned.