#level #map #gamedev #game #ogmo

ogmo3

A Rust crate for reading and writing Ogmo Editor 3 projects and levels

6 releases

0.1.1 Aug 2, 2021
0.1.0 Nov 12, 2020
0.0.4 Nov 9, 2020
0.0.3 Oct 14, 2020

#959 in Game dev

25 downloads per month

MIT license

47KB
758 lines

ogmo3

Build Status Crates.io Documentation License

ogmo3 is a Rust crate for reading and writing Ogmo Editor 3 projects and levels.

It is modelled loosely off the API for Haxe's ogmo-3-lib (for now, at least), and aims to provide reasonably type-safe access to the entirety of Ogmo Editor 3.3.0's JSON schema.

Installation

[dependencies]
ogmo3 = "0.1"

Usage

use ogmo3::{Level, Project};

fn main() {
    let project = Project::from_file("./example.ogmo").unwrap();
    let level = Level::from_file("./levels/level.json").unwrap();
}

For a full example of how to interpret the data in an Ogmo project, see the sample code.

Caveats

  • This crate does not provide a runtime or renderer, but should make it easier to create one tailored to your project.
  • If you deserialize a project/level and then reserialize it, there is no guarentee that the formatting/ordering of fields will be retained, as this would increase the complexity of the library significantly. However, there should never be any loss of data (and if there is, please file a bug report)!
  • This crate has only been tested with Ogmo Editor 3.3.0 - data from earlier versions will likely fail to parse due to missing fields.

License

This project is licensed under the terms of the MIT License.

Dependencies

~1.6–2.7MB
~51K SLoC