Welcome traveler! Don't be frightened by that cryptc name above. This project aims to implement the very basic data and mechanics of an RPG. Of course, there are a lot of ways to interpret and implement an RPG and I guess there will always be someone who disagrees with my implementation. So feel free to contribute and share the code and if this doesn't feel right to you, create a fork and create your own better variant.
THIS LIBRARY IS STILL UNDER HEAVY DEVELOPMENT AND IN NO WAY STABLE OR COMLETE.
I HIGHLY RECOMMEND TO NOT USE IT IN PRODUCTION!
The next goal for me is to let you do this:
extern crate rpg;
use rpg::{Engine, EngineContext};
fn main() {
let mut engine = Engine::new();
engine.setup(|context| {
// Setup your game
// ...
// ..
// .
// Return the altered/non-altered context
context
});
engine.update(|context| {
// Implement your update mechanics
// Return the altered/non-altered context
EngineContext { invalid: true, ..context }
});
engine.draw(|context| {
// Implement your output
// Return the altered/non-altered context
EngineContext { running: false, ..context }
});
// Start the engine => run the game
engine.start();
}
Also asset management will be part of the next release.
If you have any questions regarding the progress or the technology of the project, you can join me on IRC: #rpg-rs @ freenode