../

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

RankTitleDependenciesImage AssetsAudio AssetsModel AssetsOther Assets
1Winterkira, minifb
2Murder-User Dungeonbevy, bevy_rapier2d, rand, ron, serde, sysinfoPng: 17Mp3: 32Ttf: 3
3TO BE DIREbevy, bevy_ecs_tilemap, bevy_kira_audio, env_logger, glam, log, randPng: 8Mp3: 9Tiled: 1, Ttf: 1
4Sombervaleanyhow, bitflags, env_logger, getrandom, kira, line_drawing, log, num_enum, pixels, png-decoder, randomize, shipyard, tiff, tiled, ultraviolet, winit, winit_input_helperPng: 6, Xcf: 3Ogg: 2, Wav: 2Tiled: 1
5Smoke and Mirrors
6A Day at the Moviesbevy, bevy_rapier3d, bevy_webgl2, embed-resource, winitPng: 6Ogg: 1, Wav: 2Glb: 7, Gltf: 1Ttf: 1
7Perfected Futurecgmath, glfw, glyph_brush, luminance, luminance-derive, luminance-front, luminance-glfw, luminance-glyph, luminance-windowing, try-guard, wavefront_obj
8Beware of Illusionskeyframe, keyframe_derive, macroquad, miniquad, nanoserde, quad-sndPng: 5Ogg: 2, Wav: 4Json: 1, Ttf: 1
9Illusory friendsanyhow, arrayvec, async-trait, bmfont, cgmath, egui, egui-macroquad, futures, glam, hecs, macroquad, mint, serde, serde_json, serde_withAseprite: 12, Png: 11Json: 4
10Jam TD
11Townskeepbevy, bevy_prototype_debug_lines, randPng: 2Ttf: 1
12super-corgo-runbevy, bevy_ecs_tilemap, bevy_rapier2d, itertools, randPng: 11Ldtk: 5, Tiled: 2
13Rust cave explorer
14Fluidishmacroquad, sapp-wasm, shipyard, turtle-graphics
15Meltdown - Rust Jam 1
16Danger-Divebevy, bevy_webgl2, getrandom, rand, winitPng: 2
17What’s the word ?bevy, bevy_egui, bevy_webgl2, console_error_panic_hook, wasm-bindgen
18Shield
19Walking in a spaceship

Engines, frameworks, and libraries

RankDependencyCount
1Bevy7
2miniquad (often with/via macroquad)3
3luminance1
3pixels1
3minifb1

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).

DependencyCountCategoryDescription
rand5RandomnessRandom number generation with multiple generators across multiple generation types
winit3PlatformCross-platform window creation library
bevy_ecs_tilemap22D Games / TilemapsPlugin for tilemap rendering
bevy_rapier2d2PhysicsPlugin to use Rapier’s 2D physics engine
cgmath2MathsA linear algebra and mathematics library for computer graphics
getrandom2RandomnessUse operating system-sourced random data
glam2MathsA simple and fast 3D math library for games and graphics
kira2AudioExpressive audio library for games
shipyard2ECSAn Entity Component System focused on usability and speed
bevy_egui1Debugging / UIPlugin to set up and manage egui usage
bevy_kira_audio1AudioPlugin to use Kira, providing sound mixing and other features not available in the base audio plugin.
bevy_prototype_debug_lines1DebuggingPlugin providing a simple line drawing API
bevy_rapier3d1PhysicsPlugin to use Rapier’s 3D physics engine
bmfont1AssetsBitmap font config parser implemented in Rust
egui1UIEasy-to-use immediate mode GUI that runs on both web and native
egui-macroquad1UIBindings between egui and macroquad
glfw1PlatformGLFW3 bindings and idiomatic wrapper for Rust
glyph_brush1Graphics / TextFast cached text render library using ab_glyph
hecs1ECSA fast, minimal, and ergonomic entity-component-system library
keyframe1AnimationA simple library for animation in Rust
line_drawing1GraphicsA collection of line-drawing algorithms for use in graphics and video games
mint1MathsMath interoperability standard types
png-decoder1AssetsA pure-Rust, no_std compatible PNG decoder
quad-snd1AudioHigh level and cross platform audio library
randomize1RandomnessSimple and minimalist randomization library
tiff1AssetsTIFF decoding and encoding library in pure Rust
tiled1AssetsA rust crate for loading maps created by the Tiled editor
turtle-graphics1GraphicsA turtle graphics engine for Rust
ultraviolet1MathsA crate to do linear algebra, fast.
wavefront_obj1AssetsA 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: