Overview
This is the first major release of Arnis since transitioning from Python to Rust. The project has undergone a significant rewrite, moving to a more performant and efficient language, which introduces numerous improvements in speed, memory management, and overall scalability. This marks Arnis 2.0.0, setting a new foundation for future development.
Key Features and Changes
- Complete Rebuild in Rust
The entire project has been reimplemented in Rust, a systems programming language known for its performance and memory safety.
Rust’s powerful concurrency model and performance optimizations result in faster and more efficient world generation. - Improved Performance
Major speed improvements in generating real-life cities in Minecraft due to Rust's optimized execution.
Memory management has been significantly improved, reducing the likelihood of crashes and excessive memory use in large-scale generation tasks. - Modular Architecture
The Rust version introduces a more modular and maintainable codebase, making future feature development and bug fixes easier.
Cleaner separation of concerns for key functionalities like block management, world editing, and data handling. - New Features
The WorldEditor class provides a comprehensive toolbox for creating new modular element processing classes. This allows easy manipulation of block palettes, lighting, and other world generation elements, giving users greater control and flexibility over block placement and data handling. Buildings and structures now offer greater visual diversity, making generated cities look more dynamic and detailed than before. In the Python version, each OpenStreetMap (OSM) element couldn't be uniquely identified or treated separately. With the Rust rewrite, elements can now be differentiated and handled on an individual basis, allowing for richer, more varied city generation that accurately reflects real-world layouts and details. And many more small improvements. - Future-Proofing
This Rust port lays the groundwork for future development, with better concurrency support and scalability for even larger maps.
Deprecation
The previous Python version is now archived under the python-legacy branch. No significant further updates will be made to the Python version.
Full Changelog: v1.0.0...v2.0.0