Developing Scavenger


Last week (April 1-7 2024) I built a game with my kid brother (12) (an in-house jam for my one-man Snowy Road Studios).

We looked at themes submitted to the last Bevy jam and picked the theme “lost”. After a lot of brainstorming and several design concepts we settled on “searching for lost items”. This turned into Scavenger, a game about collecting valuables and jumping over garbage (and chasing little bugs around).

Developing the game started slow and ended in a flurry. Game jam coding is seriously frantic. The architecture I ended up with is very basic and not scalable. I’m really glad I made it to the end, and was able to add in all the art and animations created by my brother (in Aseprite), and insert all the music/sounds he found on Pixabay/itch.io. We also had enough time for a little play testing and adjusting the level configs and game feel.

My brother says “I really had a good time working on my first video game and working on animations and sprite sheets with a deadline, but I did not enjoy running into [Aseprite] file saving problems.”

We ended up with a fun, challenging little game, so give it a try and let us know what you think!

P.S. These excellent crates helped a lot:

  • sickle_ui: A WIP UI widget library from @EidLoi. The base framework greatly improves the ergonomics of bevy_ui. We used the built-in scroll_view widget for a scrollable level list, probably quite a rare find in a Bevy jam game.
    • I added a small bevy_cobweb extension for handling button inputs in a reactive manner. The result is really nice so I’ll be thinking/working more on this extension in coming weeks.
  • bevy_spritesheet_animations: A powerful new crate for managing sprite animations from @merwan. This was first published on the morning of the last day of the jam (before I had added any art/animations and was just using clumsy dev art), and by the end of the day I had integrated all our animations without any trouble.
  • bevy_ecs_tilemap: A well-known crate for managing tilemaps. Quite handy!