Bear in mind that the API still could use more work, and could be documented better, but it is already pretty promising. We currently only support OpenGL as a back-end, but hope to support more APIs in the future. This support is currently blocked on a some language features being fully implemented.
The biggest project built using gfx-rs to date is hematite[1] - a re-implementation of Minecraft. Colin Sherratt is also doing some neat work with it in his engine, snowmew[2], which is more graphics intensive.
If you are interested in having a chat with us, feel free to hop on our gitter room[1] or #rust-gamedev (irc.mozilla.org).
- [0]: https://air.mozilla.org/toronto-rust-meetup-october-2014/
- [1]: https://github.com/PistonDevelopers/hematite
I wrote an outline of my wishes for a graphics API in a README at the end of last year, then pushed it to an empty Github repo. Nothing really happened for eight months as I worked on other projects in the Rust ecosystem. Out of the blue kvark contacted me wishing to collaborate. He has similar gripes to me with respect to graphics APIs, but unlike me he has had a large amount of experience in professional game development. It is thanks to him that we are where we are today.
We still have a long way to go towards making gfx-rs a polished and production ready. A great deal of the ugliness stems from us lacking a few key language features. Thankfully those are slated to be finished by Rust 1.0, so things will get better soon!
> Are you a game developer?
No, I'm a CS student who is interested in computer graphics and procedural generation. I come from an art and illustration background and my original goal for Rust was to generate my art[0] algorithmically in real-time. Unfortunately most of my time over the last couple of years has been spent helping to build up the Rust ecosystem to a stage where it is a viable choice for game developers.
> Why did you put so much work in such a huge project?
I could sit around battling with clunky tools like C++, but if everyone did that then nothing would change. Instead I have chosen to sacrifice some of my 'project time' towards helping to make Rust look like a viable choice for my peers. I may struggle to ever finish my actual project, but if I can help other people create wonderful stuff in the future then I will consider my time well spent.
- [0]: http://voyager3.tumblr.com/
Bear in mind, the Rust library ecosystem is still pretty young, so you might have to write your own. Some could say that's a problem, but to me it's exciting. If you build a strong, foundational library you have the chance to make a much bigger impact in the long run than if you invest your time in an old, established language like C++.
[1]: https://github.com/rust-lang/rust/wiki/Computer-Graphics-and...