Skip to content

List of curated frameworks by the **Game Development in Rust** community.

Notifications You must be signed in to change notification settings

17cupsofcoffee/rust-game-development-frameworks

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 

Repository files navigation

Libraries and frameworks for
Game Development in Rust

Join the Game Development in Rust Discord server

This curated list is from the Game Development in Rust Discord server and prioritizes libraries and frameworks that have examples and are ready or almost ready for production.

For a longer list of libraries and frameworks, see Are We Game Yet?.

The ⭐ emoji means that the framework is excelent for one of the reasons:

  • Has many followers and maintainers.
  • Might have few followers and maintainers, but is in excelent quality and passed the test of time.
  • Uses modern standards (compared to peers).

Rust basics

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:

Productivity tools for game development

Game engines

2D + 3D

Recommended if you are going to work with 3D graphics, however, API changes still might happen in future releases.

2D

Recommended if you are going to work strictly with 2D graphics.

Graphics-only

  • wgpu Cross-platform, safe, pure-rust graphics api (Vulkan, Metal, D3D12, D3D11, OpenGLES, WebGPU).
  • ash Low-level bindings to Vulkan.
  • lyon GPU-based 2D vector rendering. Built on top of wgpu.
  • rend3 Easy to use, customizable, efficient 3D renderer library. Built on top of wgpu.
  • luminance High level. Built on top of OpenGL.
  • miniquad High-level. Focus on portability. Built on top of OpenGL, GLES 3 and WebGl1.
  • glium Intermediate-level. Safer wrapper for OpenGL 3+.
  • golem Intermediate-level. Higher level wrapper built on glow.
  • vulkano Intermediate-level. Safer wrapper for Vulkan.
  • glow Low-level. Safer wrapper for OpenGL and WebGL.
  • erupt Low-level bindings to Vulkan.
  • gl46 Low-level. Wrapper for OpenGL 4.6 (generated by Phosphorus).
  • gl33 Low-level. Wrapper for OpenGL 3.3 (generated by Phosphorus).
  • sierra Low-level control and high-level features. Built on top of erupt.

I believe it is fair to say that if you use libraries built on top of WGPU, you will get wider support on modern platforms (Linux, Windows, MacOS, Android and iOS).

Window creation and OS integration

  • winit Rusty windowing framework. The de facto standard in the Rust community.
  • 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

See this repository for information on the different types of ECS (archetype, sparse, bitset).

Frameworks for physics and linear math (for 2D and 3D programming)

Graphical user interface (GUI)

  • egui Pure Rust cross-platform library. Many renderers already have an integration with Egui.
  • iced Pure Rust cross-platform library.
  • imgui Bindings in Rust for the Dear ImGui C++ library.

Font (parser and/or rasterizer)

Space partitioning

Network

  • tokio Asynchronous TCP and UDP sockets.
  • quinn QUIC transport protocol implmementation. Built on top of `tokio

Audio

  • oddio Built on top of cpal.
  • kira Built on top of cpal.
  • rodio Built on top of cpal.
  • cpal Low-level cross-platform library for audio input and output.
  • alto Wrapper for OpenAL.
  • openal Wrapper for OpenAL.

Serialization-Deserialization

  • serde Serialize and deserialize data structures efficiently and generically.
  • serde-json Serialize and deserialize for JSON format. Built on top of serde.
  • bincode Serialize and deserialize for binary format. Built on top of serde.

Other utilities

  • image Image encoding and decoding for many image formats.
  • rayon Introduce parallelism into existing code and guarantees data-race free executions.
  • palette Linear color calculations.
  • pathfinding Multiple implementations of path-finding algorithms.
  • salva2d / salva3d Particle-based fluid dynamics.
  • collider Continuous 2D collision detection.

About

List of curated frameworks by the **Game Development in Rust** community.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published