../
Rusty Jam #1 data exploration
Published: , updated:
Intro
The Rusty Jam offers a view into the Rust game development ecosystem - at least in the context of a game jam in August 2021. There were 19 entries, of which 13 had easily-discoverable source code (mostly repository links in the game pages, but occasionally source downloads).
Game dependency and asset data
Engines, frameworks, and libraries
Other dependencies
These are the direct expressed dependencies of the game project, representing what the game developer directly interacted with. I somewhat-arbitrarily decided what were “game development-related” vs. general Rust or infrastructural crates (which were removed).
Dependency | Count | Category | Description |
---|---|---|---|
rand | 5 | Randomness | Random number generation with multiple generators across multiple generation types |
winit | 3 | Platform | Cross-platform window creation library |
bevy_ecs_tilemap | 2 | 2D Games / Tilemaps | Plugin for tilemap rendering |
bevy_rapier2d | 2 | Physics | Plugin to use Rapier’s 2D physics engine |
cgmath | 2 | Maths | A linear algebra and mathematics library for computer graphics |
getrandom | 2 | Randomness | Use operating system-sourced random data |
glam | 2 | Maths | A simple and fast 3D math library for games and graphics |
kira | 2 | Audio | Expressive audio library for games |
shipyard | 2 | ECS | An Entity Component System focused on usability and speed |
bevy_egui | 1 | Debugging / UI | Plugin to set up and manage egui usage |
bevy_kira_audio | 1 | Audio | Plugin to use Kira, providing sound mixing and other features not available in the base audio plugin. |
bevy_prototype_debug_lines | 1 | Debugging | Plugin providing a simple line drawing API |
bevy_rapier3d | 1 | Physics | Plugin to use Rapier’s 3D physics engine |
bmfont | 1 | Assets | Bitmap font config parser implemented in Rust |
egui | 1 | UI | Easy-to-use immediate mode GUI that runs on both web and native |
egui-macroquad | 1 | UI | Bindings between egui and macroquad |
glfw | 1 | Platform | GLFW3 bindings and idiomatic wrapper for Rust |
glyph_brush | 1 | Graphics / Text | Fast cached text render library using ab_glyph |
hecs | 1 | ECS | A fast, minimal, and ergonomic entity-component-system library |
keyframe | 1 | Animation | A simple library for animation in Rust |
line_drawing | 1 | Graphics | A collection of line-drawing algorithms for use in graphics and video games |
mint | 1 | Maths | Math interoperability standard types |
png-decoder | 1 | Assets | A pure-Rust, no_std compatible PNG decoder |
quad-snd | 1 | Audio | High level and cross platform audio library |
randomize | 1 | Randomness | Simple and minimalist randomization library |
tiff | 1 | Assets | TIFF decoding and encoding library in pure Rust |
tiled | 1 | Assets | A rust crate for loading maps created by the Tiled editor |
turtle-graphics | 1 | Graphics | A turtle graphics engine for Rust |
ultraviolet | 1 | Maths | A crate to do linear algebra, fast. |
wavefront_obj | 1 | Assets | A parser for the Wavefront .obj file format |
Methodology
The same methodology as was used in the Bevy Jams’ analyses was followed, with some minor updates:
- Support manually-downloaded source archives vs. only supporting source code repositories
- Generally migrate from hard-coding to config file, to support future analysis