Angolmois Rust Edition is a direct, one-to-one translation of the original Angolmois music video game to the Rust programming language. The project serves as a comprehensive example of translating moderately-sized C code to Rust, while also exploring the additional library support required for such translations.
Angolmois is a minimalistic music video game similar to BM98, supporting the BMS format for gameplay. The game combines string parsing, path manipulation, two-dimensional graphics, and complex gameplay within a compact codebase. The Rust translation retains these features while offering improved readability and maintainability through extensive commenting and refactoring.
While the Rust edition aims to be identical to the original Angolmois, there are several key differences:
#PATH_WAV
.Game data credits: "sunken azure world", music by maki, courtesy of Daida Three Brothers. All rights reserved.
Angolmois Rust Edition is distributed under the GNU GPL version 2+, consistent with the original project. Portions of the code intended as patches to Rust are licensed under the Apache License 2.0 and MIT License.
To compile Angolmois Rust Edition, clone the repository and run the following commands (Windows users need MinGW shell):
You will need the latest Rust master and Cargo installed. Nightly versions of both are recommended for best compatibility.
The project maintains the single-file structure of the original C version to keep the translation straightforward and the structure obvious. For those preferring a more modular approach, consider the Sonorous fork, which has evolved into a full-featured game with a more extensive codebase.
For more details, especially on usage, refer to the README file of the original Angolmois. Learn more about the BMS format and the structure of Angolmois through the provided documentation.
Explore Angolmois Rust Edition to see a practical application of Rust in game development and a detailed example of C to Rust code translation.