Show HN: Creating a Snake game clone with Rust/Bevy
44 points| bebrws | 2 years ago |bbarrows.com
I had a lot of fun practicing Rust and Learning some Bevy concepts with this repository.
Bevy has an incredibly powerful dependency injection system and follows a pattern called ECS which makes it very powerful (and new to me).
This simple < 300 lines of code might help with learning some Bevy concepts.
It also shows how to copmile for the web/WASM and inject a canvas for the game (or use a pre existing div).
chaosprint|2 years ago
Speaking of Snake game, if you want to go even deeper, you can try to use the wgpu crate to combine Rust and WebGPU to write everything from scratch. Here is the tutorial:
https://sotrh.github.io/learn-wgpu/#what-is-wgpu
I once wrote a code editor with wgpu, from font rendering to char/line state management (very rough) for music live coding:
https://github.com/glicol/glicol-wgpu
It runs in browsers, even including Safari!
bebrws|2 years ago
It opened my eyes to a new style of game development and a new way to think about dependency injection and types.
I have always thought that a majority of the hardest software engineering problems relate in some way to gaming and when I see solutions like this it makes me think I am right.
Thanks tho! I'll def be checking that out.
charcircuit|2 years ago
Taking 100.6 KB (16.46 KB compressed) of javascript and 37.41 MB (8.15 MB compressed) for snake is quite a lot compared to what it would take for normal javascript.
jarjoura|2 years ago
Figma has been the one platform to take full advantage of it in really jaw-dropping ways that proved you could write real creative professional productive software only in the frame of a Chrome window.
It's just that WASM is not really practical for use for most things you want in a web browser, though the tooling to spit out WASM modules seem to keep getting better.
lwansbrough|2 years ago
lkt|2 years ago
It's still a little bigger than I would like, but it's not terrible.
legerdemain|2 years ago
[1] https://www.youtube.com/watch?v=-I1BfSpoWM0
[2] https://play.battlesnake.com/
unknown|2 years ago
[deleted]