# Blue Engine
[](https://github.com/ElhamAryanpur/BlueEngine/actions/workflows/rust-linux.yml)
[](https://github.com/ElhamAryanpur/BlueEngine/actions/workflows/rust-win.yml)
[](https://github.com/ElhamAryanpur/BlueEngine/actions/workflows/rust-osx.yml)
## About
Blue Engine is a general-purpose, easy-to-use, extendable, and portable graphics engine written in rust. The engine can run on many popular back-end APIs including Vulkan, D3D-12, GL-ES 3, and Metal as well as Windows, Linux, and OSX to ensure cross-platform compatibility.
Hello World:
```rust
use blue_engine::{
header::{
Engine, ObjectSettings, WindowDescriptor
},
objects::two_dimensions::triangle
};
fn main() {
// initialize the engine
let mut engine = Engine::new(WindowDescriptor::default()).expect("win");
// create a triangle
let _ = triangle(ObjectSettings::default(), &mut engine).unwrap();
// run the engine
engine
.update_loop(move |_, _, _, _, _| {})
.expect("Error during update loop");
}
```
* [Join our discord server](https://discord.gg/s7xsj9q)
* [WIP] [Documentation](https://elhamaryanpur.github.io/BlueEngineDocs/)
* Check out the [examples](https://github.com/ElhamAryanpur/BlueEngine/tree/master/examples) folder to get a sense of how things are done
---
**NOTE:** You need to add `resolver = "2"` on your `Cargo.toml` under `[package]` section. This is because of migration to newer versions of Rust and dependencies of this engine.