../
Rusty Jam #2 data exploration
Published: , updated:
Intro
The second Rusty Jam offers a view into the Rust game development ecosystem - at least in the context of a game jam in June 2022, and also as a contrast to the previous jam in August 2021. There were 17 entries (vs. 19 previous jam), of which 16 had easily-discoverable source code (vs. 13 previous jam).
Game dependency and asset data
Engines, frameworks, and libraries
Rank | Dependency | Count |
---|---|---|
1 | Bevy | 12 (prev: 7) |
2 | miniquad/macroquad | 1 (prev: 3) |
2 | wasm4 | 1 (new) |
2 | godot-rust | 1 (new) |
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 | All Count | Category | Description |
---|---|---|---|
bevy_kira_audio | 10 | Audio | Plugin to use Kira, providing sound mixing and other features not available in the base audio plugin. |
rand | 10 | Randomness | Random number generation with multiple generators across multiple generation types |
bevy-inspector-egui | 5 | Debugging | Provide ECS inspection via egui. |
bevy_asset_loader | 5 | Assets | Plugin to reduce boilerplate around asset loading, especially around game states transitions. |
bevy_egui | 4 | Debugging / UI | Plugin to set up and manage egui usage |
bevy_tweening | 4 | Animation | Tweening animation plugin. |
bevy_ecs_tilemap | 2 | 2D Games / Tilemaps | Plugin for tilemap rendering |
bevy_ninepatch | 2 | UI | Support 9-patch images - let you have a UI that scales only the right parts of your images |
heron | 2 | Physics | Ergonomic 2d/3d physics API using Rapier. |
leafwing-input-manager | 2 | Input | An input manager providing an ergonomic interface over the lower-level input system in Bevy |
winit | 2 | Platform | Cross-platform window creation library |
bevy_hanabi | 1 | Rendering | Hanabi GPU particle system for the Bevy game engine |
bevy_infinite_grid | 1 | Procedural generation | Simple 3D infinite grid for bevy |
bevy_mod_picking | 1 | 3D Games | Plugin for 3D mouse picking |
bevy_mod_raycast | 1 | 3D Games | Allows easy 3D ray casting against meshes |
bevy_prototype_lyon | 1 | 2D graphics | Plugin to use Lyon, a 2D graphics library in Rust using path tessellation. |
bevy_rapier2d | 1 | Physics | Plugin to use Rapier’s 2D physics engine |
bevy_spatial | 1 | ECS | A bevy plugin to track your entities in spatial indices and query them |
bracket-pathfinding | 1 | Algorithms | Pathfinding and field-of view utilities. |
bracket-random | 1 | Randomness | Random number generator (xorshift based), focused on dice rolling |
crossterm | 1 | Terminal | crossplatform terminal library for manipulating terminals |
fastrand | 1 | Randomness | PRNG using Wyrand |
gdnative | 1 | Game engine/framework/library | Godot game engine’s gdnative bindings |
iyes_loopless | 1 | Internals | Composable alternatives to Bevy’s States/FixedTimestep/RunCriteria |
kayak_ui | 1 | UI | a declarative UI that can be used to make user interfaces |
macroquad | 1 | Game engine/framework/library | simple and easy to use game library for Rust programming language |
macroquad-platformer | 1 | Physics | Platformer physics for macroquad |
macroquad-tiled | 1 | Level Editing | Tiled editor macroquad intergration |
naia-bevy-client | 1 | Networking / Multiplayer | Library to faciliate naia_client & Bevy interop |
naia-bevy-server | 1 | Networking / Multiplayer | Library to faciliate naia_server & Bevy interop |
naia-shared | 1 | Networking / Multiplayer | A cross-platform networking library built in Rust |
noise | 1 | Noise | Procedural noise generation library covering gradient, fBm, and Worley noise |
rand_distr | 1 | Randomness | Sampling from random number distributions |
Methodology
The same methodology as was used in the Bevy Jams’ analyses was followed, with minor updates to improve reporting and reuse of data between analyses.