randomPoison / gunship-rs

An experimental game engine written in Rust.
MIT License
27 stars 3 forks source link
game-engine rust

Gunship

"The game engine for people who don't like making games."

Gunship is an experimental game engine being developed as an effort to learn more about the inner-workings of a modern game engine. It is being written in Rust in an attempt to break away from the game industry's unhealthy codependence on C++.

Design Goals

At this point Gunship is meant to be more of a learning project than a production-ready game engine. The idea is to build as much as possible from scratch in order to develop myself as a programmer and learn all the parts of a modern game engine. So far I've allowed myself to use the standard library and libraries for binding to platform-specific native libraries, but the intent is to keep dependencies to a minimum, even if there are relevant crates in the Rust ecosystem.

As for the engine itself high-level design is pretty nonexistent. I'm keeping development directed by building a game along with the engine, so for the time being the design motivations for Gunship are "whatever work best for making a game". At present the design is roughly as follows:

Current Features

The engine is very early in its development and so doesn't have much to show off as of yet. That said, it does have a few working features at this point:

Broken Features

The following features have been implemented in the past but were broken at some point:

Planned Features

Beyond the obvious (making the existing systems more robust and actually usable) there are a few features that I plan to work on in the near future:

Contributing

At this point the engine's not stable enough for anyone but me to attempt to use it to make a game -- if you want to use Rust to make a game then check out Piston. On the other hand if what you want is to build some engine subsystem from scratch but don't want to have to put together all of the other pieces, feel free to use Gunship as your baseline. Even then I don't recommend it, but I'm happy to help however I can (just send an email or open an issue to ask questions).