../

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

RankTitleDependenciesImage AssetsAudio AssetsModel AssetsOther Assets
1Chick The Dogbevy, bevy_egui, bevy_spatial, ehttp, fastrandJpeg: 1, Png: 10Ogg: 8Ttf: 1
2A Walk Around The Blockbevy, bevy_infinite_grid, bevy_kira_audio, bevy_mod_raycast, leafwing-input-manager, noise, rand, uuidPng: 10Ogg: 2, Wav: 4Glb: 11Ttf: 1
3Fight for the Frontieranyhow, bevy, bevy-inspector-egui, bevy_asset_loader, bevy_kira_audio, bevy_mod_picking, bevy_tweening, heron, kayak_ui, rand, ron, serdeAseprite: 2, Png: 16Ogg: 1Ron: 15, Wgsl: 1
4Chimera Rancherbevy, bevy_asset_loader, bevy_ecs_tilemap, bevy_kira_audio, bevy_ninepatch, bevy_rapier2d, bevy_tweening, rand, rand_distrPng: 32, Xcf: 3Ogg: 7, Wav: 5Ttf: 3
5Shmoo farmbevy, bevy-inspector-egui, bevy_asset_loader, bevy_kira_audio, embed-resource, rand, strum, winitJpeg: 1, Png: 11Ogg: 8Ttf: 1
6Find the Dogchickenbuddy-alloc, once_cell, rustc-hash, strum, strum_macrosPng: 1
7Chog Lifemacroquad, macroquad-platformer, macroquad-tiledPng: 28Ogg: 1, Wav: 2Json: 2, Ttf: 1
8The Ablockinationanyhow, bevy, bevy-inspector-egui, bevy_egui, bevy_kira_audio, randPng: 26Wav: 12Ttf: 1
9MegaChickenbevy, bracket-pathfinding, bracket-randomPng: 10Ttf: 1
10Crawling Defensebevy, bevy-inspector-egui, bevy_asset_loader, bevy_ecs_tilemap, bevy_kira_audio, bevy_ninepatch, bevy_tweening, console_error_panic_hook, gloo-events, rand, wasm-bindgen, web-sysAseprite: 3, Png: 26Ttf: 1
11amalgamate
12Egg fetcherbevy, bevy_kira_audio, randPng: 514Ttf: 2
13EBE-Clickbevy, bevy_kira_audio, randPng: 3Wav: 2
14Quacks Like A Dogbevy, bevy-inspector-egui, bevy_egui, bevy_hanabi, bevy_kira_audio, bevy_tweening, heronGltf: 2Ttf: 8
15ChimeraTestbacktrace, gdnative, itertools, rand
16CYBERSEMcrossterm, js-sys, wasm-bindgen, web-sysMp3: 1
17Rusty Sciencebevy, bevy_asset_loader, bevy_egui, bevy_kira_audio, bevy_prototype_lyon, clap, embed-resource, iyes_loopless, lazy_static, leafwing-input-manager, log, naia-bevy-client, naia-bevy-server, naia-shared, rand, thiserror, wasm-bindgen-cli, winitPng: 26Wav: 2

Engines, frameworks, and libraries

RankDependencyCount
1Bevy12 (prev: 7)
2miniquad/macroquad1 (prev: 3)
2wasm41 (new)
2godot-rust1 (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).

DependencyAll CountCategoryDescription
bevy_kira_audio10AudioPlugin to use Kira, providing sound mixing and other features not available in the base audio plugin.
rand10RandomnessRandom number generation with multiple generators across multiple generation types
bevy-inspector-egui5DebuggingProvide ECS inspection via egui.
bevy_asset_loader5AssetsPlugin to reduce boilerplate around asset loading, especially around game states transitions.
bevy_egui4Debugging / UIPlugin to set up and manage egui usage
bevy_tweening4AnimationTweening animation plugin.
bevy_ecs_tilemap22D Games / TilemapsPlugin for tilemap rendering
bevy_ninepatch2UISupport 9-patch images - let you have a UI that scales only the right parts of your images
heron2PhysicsErgonomic 2d/3d physics API using Rapier.
leafwing-input-manager2InputAn input manager providing an ergonomic interface over the lower-level input system in Bevy
winit2PlatformCross-platform window creation library
bevy_hanabi1RenderingHanabi GPU particle system for the Bevy game engine
bevy_infinite_grid1Procedural generationSimple 3D infinite grid for bevy
bevy_mod_picking13D GamesPlugin for 3D mouse picking
bevy_mod_raycast13D GamesAllows easy 3D ray casting against meshes
bevy_prototype_lyon12D graphicsPlugin to use Lyon, a 2D graphics library in Rust using path tessellation.
bevy_rapier2d1PhysicsPlugin to use Rapier’s 2D physics engine
bevy_spatial1ECSA bevy plugin to track your entities in spatial indices and query them
bracket-pathfinding1AlgorithmsPathfinding and field-of view utilities.
bracket-random1RandomnessRandom number generator (xorshift based), focused on dice rolling
crossterm1Terminalcrossplatform terminal library for manipulating terminals
fastrand1RandomnessPRNG using Wyrand
gdnative1Game engine/framework/libraryGodot game engine’s gdnative bindings
iyes_loopless1InternalsComposable alternatives to Bevy’s States/FixedTimestep/RunCriteria
kayak_ui1UIa declarative UI that can be used to make user interfaces
macroquad1Game engine/framework/librarysimple and easy to use game library for Rust programming language
macroquad-platformer1PhysicsPlatformer physics for macroquad
macroquad-tiled1Level EditingTiled editor macroquad intergration
naia-bevy-client1Networking / MultiplayerLibrary to faciliate naia_client & Bevy interop
naia-bevy-server1Networking / MultiplayerLibrary to faciliate naia_server & Bevy interop
naia-shared1Networking / MultiplayerA cross-platform networking library built in Rust
noise1NoiseProcedural noise generation library covering gradient, fBm, and Worley noise
rand_distr1RandomnessSampling 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.