dasifefe / Rust Game Development Frameworks
List of curated frameworks by the **Game Development in Rust** community.
Stars: ✭ 81
Programming Languages
rust
11053 projects
Labels
Projects that are alternatives of or similar to Rust Game Development Frameworks
Veldrid
A low-level, portable graphics library for .NET.
Stars: ✭ 1,784 (+2102.47%)
Mutual labels: game-development, opengl, graphics, vulkan
Silk.net
The high-speed OpenAL, OpenGL, Vulkan, and GLFW bindings library your mother warned you about.
Stars: ✭ 534 (+559.26%)
Mutual labels: game-development, opengl, graphics, vulkan
Etengine
Realtime 3D Game-Engine with a focus on space sim. Written in C++ 14
Stars: ✭ 408 (+403.7%)
Mutual labels: ecs, game-development, opengl, entity-component-system
3d Game Shaders For Beginners
🎮 A step-by-step guide to implementing SSAO, depth of field, lighting, normal mapping, and more for your 3D game.
Stars: ✭ 11,698 (+14341.98%)
Mutual labels: game-development, opengl, graphics, vulkan
Svelto.ecs
Svelto ECS C# Lightweight Data Oriented Entity Component System Framework
Stars: ✭ 605 (+646.91%)
Mutual labels: ecs, game-development, entity-component-system
Renderdoc
RenderDoc is a stand-alone graphics debugging tool.
Stars: ✭ 5,969 (+7269.14%)
Mutual labels: opengl, graphics, vulkan
Gl vs vk
Comparison of OpenGL and Vulkan API in terms of performance.
Stars: ✭ 65 (-19.75%)
Mutual labels: opengl, graphics, vulkan
Sfml
Simple and Fast Multimedia Library
Stars: ✭ 7,316 (+8932.1%)
Mutual labels: opengl, graphics, audio
Shaderconductor
ShaderConductor is a tool designed for cross-compiling HLSL to other shading languages
Stars: ✭ 1,146 (+1314.81%)
Mutual labels: opengl, graphics, vulkan
Openframeworks
openFrameworks is a community-developed cross platform toolkit for creative coding in C++.
Stars: ✭ 8,652 (+10581.48%)
Mutual labels: opengl, graphics, audio
Ecs
LeoECS is a fast Entity Component System (ECS) Framework powered by C# with optional integration to Unity
Stars: ✭ 578 (+613.58%)
Mutual labels: ecs, game-development, entity-component-system
Entt
Gaming meets modern C++ - a fast and reliable entity component system (ECS) and much more
Stars: ✭ 6,017 (+7328.4%)
Mutual labels: ecs, game-development, entity-component-system
Pbr
An implementation of physically based shading & image based lighting in D3D11, D3D12, Vulkan, and OpenGL 4.
Stars: ✭ 722 (+791.36%)
Mutual labels: opengl, graphics, vulkan
Entitas Csharp
Entitas is a super fast Entity Component System (ECS) Framework specifically made for C# and Unity
Stars: ✭ 5,393 (+6558.02%)
Mutual labels: ecs, game-development, entity-component-system
Yage
Simple game engine, written in C++
Stars: ✭ 7 (-91.36%)
Mutual labels: game-development, opengl, entity-component-system
Imac Tower Defense
OpenGl 4.4 game made with Entity Component System
Stars: ✭ 28 (-65.43%)
Mutual labels: game-development, opengl, entity-component-system
Allegro5
The official Allegro 5 git repository. Pull requests welcome!
Stars: ✭ 1,165 (+1338.27%)
Mutual labels: game-development, opengl, audio
Pmtech
Lightweight, multi-platform, data-oriented game engine.
Stars: ✭ 478 (+490.12%)
Mutual labels: opengl, vulkan, entity-component-system
Gfx
[maintenance mode] A low-overhead Vulkan-like GPU API for Rust.
Stars: ✭ 5,045 (+6128.4%)
Mutual labels: opengl, graphics, vulkan
What framework to use for X?
Invitation link to the Game Development in Rust Discord server
This curated list is from the Game Development in Rust Discord server and prioritizes frameworks that have examples and are ready or almost ready for production. This list was made so it can be shared with beginners.
For a longer list of frameworks, see Are We Game Yet?.
Rust basics
- Rust book.
- Standard library - Comprehensive guide to the Rust standard library APIs.
- Edition guide - Guide to the Rust editions.
- Cargo book - A book on Rust’s package manager and build system.
- Rustdoc book - Learn how to make awesome documentation for your crate.
- Rustc book - Familiarize yourself with the knobs available in the Rust compiler.
- Compiler error index - In-depth explanations of the errors you may see from the Rust compiler.
Resources to understand ECS (Entity Component System) and DOD (Data-Oriented Design)
ECS/DOD is quite a big deal in Rust. Here are some resources to understand the basics:
- Understanding data-oriented design for entity component systems - Unity at GDC 2019.
- CppCon 2018: Stoyan Nikolov “OOP Is Dead, Long Live Data-oriented Design” - Harsh title (ECS/DOD is not a silver bullet for every problem), but useful regardless.
- RustConf 2018 - Closing Keynote - Using Rust For Game Development by Catherine West - A classic presentation already - Catherine West gives several examples, explain the problems with them, and shows the alternatives.
- "Data-Oriented Design" web book by Richard Fabian.
Productivity tools for game development
High-level frameworks for game development
- amethyst 2D, 3D. Graphics, audio.
- bevy engine 2D, 3D. Graphics, audio, UI. ECS/DOD oriented.
- oxygengine 2D. Graphics, audio.
- macroquad 2D, 3D. Graphics. Inspired on Raylib (C framework).
- ggez 2D. Graphics, audio. Inspired on LÖVE (Lua framework).
- quicksilver 2D. Graphics, audio.
- tetra 2D. Graphics, audio. Inspired on XNA and MonoGame.
- coffee 2D. Graphics.
Just graphics
- luminance High level. Uses OpenGL.
- miniquad High-level. Focus on portability. Uses OpenGL and Metal (Work-in-progress).
-
wgpu Intermediate-level. Uses
gfx-hal
. - glium Intermediate-level. Safer wrapper for OpenGL 3+.
- golem Intermediate-level. Higher level wrapper built on glow.
- vulkano Intermediate-level. Safer wrapper for Vulkan.
-
rendy Intermediate-level. Uses
gfx-hal
. Used byamethyst
. - gfx-hal Low-level, based on Vulkan. Backends: Vulkan, GL, DX12, and Metal.
- glow Low-level. Safer wrapper for OpenGL and WebGL.
- erupt Low-level bindings to Vulkan.
-
ash Low-level bindings to Vulkan. Used by
gfx-hal
. -
gl46 Low-level. Wrapper for OpenGL 4.6 (generated by Phosphorus). Used by
glow
. - gl33 Low-level. Wrapper for OpenGL 3.3 (generated by Phosphorus).
Window creation and OS integration
- winit Rusty windowing framework.
- glfw Rust wrapper for the C GLFW3 library.
- fermium Rust wrapper for the C SDL2 library. Contains more than window creation features.
- sdl2 Rust wrapper for the C SDL2 library. Contains more than window creation features.
Frameworks for ECS
Frameworks for physics and linear math (for 2D and 3D programming)
- cgmath
- glam
- nalgebra
- ultraviolet
- vek
-
rapier New 2D/3D physics framework from the creator of
nphysics2D
/nphysics3D
. 2D demo and 3D demo. - nphysics2d / nphysics3d 2D/3D physics.
Graphical user interface (GUI)
- egui Pure Rust cross-platform library.
- iced Pure Rust cross-platform library.
- imgui Bindings in Rust for the Dear ImGui C++ library.
Font (parser and/or rasterizer)
-
fontdue Pure Rust. No
std
dependency.
Space partitioning
- rstar n-dimensional r*-tree implementation
- bvh Bounding Volume Hierarchy, built on top of nalgebra.
- kdtree K-dimensional tree in Rust for fast geospatial indexing and nearest neighbors lookup.
- ncollide has its own Bounding Volume Tree implementation: 3d docs and 2d docs.
- spade Implements r*-tree and delaunay triangulation.
- flat_spatial Simple flat structures such as a grid/hashmap of cells.
- acacia Generic over the dimension of the partitioned space and thus supports binary trees, quadtrees, octrees, etc.
Audio
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].