Skip to content

Latest commit

 

History

History
79 lines (54 loc) · 3.33 KB

v2.1.0.md

File metadata and controls

79 lines (54 loc) · 3.33 KB

v0.1.0 -> v2.0.0-2.1.0

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.


Major Updates in v2.1.0

This version focuses heavily on cross-platform compatibility and ergonomics for developers.

New Features

  1. cross_setup Crate

    • A new crate included in the project (for now).
    • It simplifies setting up cross-platform features and configurations.
  2. 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.
  3. Additional Crates

    • All other crates integrated into the project to provide distinct functionality (and enhance readability throughout the project).
  4. 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)

Current Limitations and Planned Solutions

Some challenges remain with the cross-platform structure. Here’s how they’ll be addressed:

  1. Feature and Platform Abstraction

    • Add platform-independent functions for tasks like spawning components (e.g., cameras).
  2. 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 like bevy_ecs.
  3. 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.
  4. OpenXR Support

    • cross_setup will manage platform-specific details for OpenXR.
    • Developers must define some behavior for proper support.
  5. 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.
  6. 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.
  7. 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.
  8. 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.

Showcases

Two showcases will demonstrate LimitPush’s capabilities:

  1. Bevy-Based Text Editor

    • Runs on UEFI (Unified Extensible Firmware Interface).
    • Features file save/load, syntax highlighting, and ergonomic input/output.
  2. Cross-Platform 3D Game

    • Built with OpenXR support first, then adapted for other platforms.
    • No embedded platform support is planned.