/crabioware-gba

Learn Rust by writing minigames for the GBA

Primary LanguageRust

🦀 crabioware-gba 🦀

Pasé la Gold, en el GameBoy

CrabioWare GBA is technically a video game for the GameBoy Advanced (GBA) that runs micro-games, similar to games starring the inverse of a popular jumpman.

This project is built using the agbrs/agb crate which abstracts low level hardware interactions, exports useful code, and enables great developer experience (Aseprite imports, ROM building, mGBA testing, etc). The rust-console/gba crate is also very useful for getting a better understanding of the hardware.

Goals of this project in rough order,

  • Learn Rust and practice writing idiomatically
  • Implement common design patterns in Rust
  • Learn more about the GBA
  • Learn more about game development and algorithms
  • Implement classic games with Rust memes
  • ... many other goals
  • Make good games that are fun to play

Setup

Some commands:

Run your game,

$ just run-game
# opens mGBA-Qt and runs your game

Run tests,

$ just test
# runs tests... note that mGBA-Qt will pop up

Build a ROM that can be run on real hardware,

$ just build-roms
# create a ROM like, `crabioware/crabioware_[datetime].gba`

Host

You will need,

Docker

./tools/build

to build the container. You can run a shell in it using the helper script,

./tools/shell