AGE, short for "Another Game Engine", is supposed to be a simple toy game engine library written in Rust with basic support for things like 2d & 3d graphics, assets and so on. Making a project using it should not take much boilerplate, be straightforward and also beginner-friendly. It is mostly working, except for the graphics.
sadly, uploading this to crates.io would cause heavy namespace conflicts... (it's a workspace)
download the release and refer to it in your Cargo.toml like this:
[dependencies]
age_engine={ path="path/to/age_engine" }
Hello World
use age_engine::prelude::*;
fn main() {
Game::new().add_once(once).run();
}
fn once(commands: &mut Commands, resources: &mut SendAnyMap, event_handle: &mut EventHandle) {
println!("Hello World!");
}
It is recommended to try it out by yourself as there's so much more to do than just this! (I just didn't have enough time for more examples)
Even though this project isn't finished by far, I already have some sources that do and will influence this project:
- The awesome Bevy engine: Game Builder Pattern (it's probably not unique to the engine, but it inspired me, so I utilize it too), Systems (My engine isn't an ECS, but you can add startup and update functions with three parameters), Resources (prob also not really unique, but I do know it from there, also, the AnyMap isn't really inspired there, I found it somewhere else and since it's so convenient I use it)
- Sotrh's awesome wgpu tutorial (I build on top of it to have a working basis, but that may change)
So, as you see, that's a lot of inspiration. I could've done things differently, but I don't see the point in deliberatly trying to do it in another (probably way more difficult way), also I do have a time restriction (end of the month)