An open API service indexing awesome lists of open source software.

https://github.com/sphinxc0re/rpg-rs

A very basic RPG engine written in Rust
https://github.com/sphinxc0re/rpg-rs

engine rpg rust wip

Last synced: about 2 months ago
JSON representation

A very basic RPG engine written in Rust

Awesome Lists containing this project

README

        

# rpg-rs [![Crates.io](https://img.shields.io/crates/v/rpg.svg)](https://crates.io/crates/rpg) [![Build Status](https://travis-ci.org/raven-rpg/rpg-rs.svg?branch=master)](https://travis-ci.org/raven-rpg/rpg-rs) [![Coverage Status](https://coveralls.io/repos/github/raven-rpg/rpg-rs/badge.svg?branch=master)](https://coveralls.io/github/raven-rpg/rpg-rs?branch=master) [![Documentation](https://docs.rs/rpg/badge.svg)](https://docs.rs/rpg)
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!**

## Roadmap
The next goal for me is to let you do this:
```rust
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`