Embedded RISC-V Rust Puzzle Game Clone (with Multiplayer?)

Here’s my Devember submission.

This is going to be a Puyo Puyo/Kirby’s Avalanche/Dr Robotnik’s Mean Bean Machine/Super Foul Egg/etc… style game, but made in no-std Rust using the embedded-graphics crate on the Sipeed Longan Nano board with an 160x80 LCD and a Gigadevice GD32 RISC-V microcontroller.

Note that I’m not exactly a programmer, and have done most of my programming in autohotkey. However this is mostly being done as a means to motivate myself to actually learn and/or finish this sort of thing, rather than being yet another random programming project I forget about.

When this is all over, I’ll release my source code under a (non-copyleft) open source license, and the 12x12 sprites under a creative commons license.

Ultimately my intention is to synchronize multiplayer game states with a one-wire protocol- perhaps implementing the single-wire/optical PJON through Rust to C bindings.

I’ve got my first implementation of the game state code on youtube, and will link once capable.

Thank you for your consideration.
-Moofree

3 Likes

I’ve been toying with the game state code on the rust playground, and have gotten most of the game mechanics working there. The game state is a 1d array I’m indexing into in such a way that should allow arbitrary sized game fields, but I’m only targeting the standard 6x12 grid right now.

Wrote my first real recursive function to group blocks together, so I’m looking forward to see it working given the limited stack space when I move back on to the microcontroller. My next step is to implement user input to control the in-play falling blocks.

Not able to link, so here’s the game sprites I’ve made. I was kind of inspired by the old Puzzle Bobble clone “Snood”, which had ugly faces as game pieces. (Plus Ferris, the crab mascot of Rust.)

edit: I guess all this and subsequent artwork will be licensed under uhh… the Creative Commons Attribution 4.0 International (CC BY 4.0) license.

3 Likes