Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
A jam submission

GBADEV ContainersView game page

Container scripts for a GBA development environment & ROM compile workflow.
Submitted by BreadMakesYouFull — 27 days, 19 hours before the deadline
Add to collection

Play demo

GBADEV Containers's itch.io page

Results

CriteriaRankScore*Raw Score
Technical#83.6673.667
Originality#283.3333.333
Polish#303.0003.000
Overall#323.0003.000
Audio#342.5002.500
Graphics#412.5002.500

Ranked from 6 ratings. Score is adjusted from raw score by the median number of ratings per game in the jam.

Judge feedback

Judge feedback is anonymous and shown in a random order.

  • Nice entry! I like the idea of reproducible containers, so everyone can share the same environment.
  • Great idea! Sometimes I wonder how many gba projects will be possible to compile a decade from now. At least the containerized ones will be possible to build! I hope people consider using your container environment!
  • Containers can be very useful for development, so it’s nice to have documentation about them.

Jam ROM submission

Ok - understood! I attached the GBA ROM file as "MYGAMENAME_jam.gba".

Type of submission

Other

Open Source Repository URL
https://github.com/BreadMakesYouFull/gbadev-containers

Existing assets
* Butano game engine https://github.com/GValiente/butano
* Compiled via devkitProARM: https://devkitpro.org/wiki/devkitARM

* Third party licenses: https://github.com/BreadMakesYouFull/gbadev-containers/tree/main/licenses

Assets:
* GBA Jam Logos and banners made by GBA Jam 2024 Organizers, licensed under [CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/)
* "JAM 2024" logo text font — Over Drive by [Graphic Arts Unit](https://www.graphicartsunit.com/gaupra/index.html)
* [Font besciii](https://github.com/damianvila/font-bescii) (Damian Vila) [CC0 1.0 Universal license](https://creativecommons.org/publicdomain/zero/1.0/)
* basic-studio.blend by FnaX https://blendswap.com/blend/30270 CC-0 “No Rights Reserved” https://creativecommons.org/public-domain/cc0/
* Gameboy Advance Cartridge (GBA Cart) STL by @Dave https://www.printables.com/model/190861-gameboy-advance-cartridge-gba-cart/files CC BY 4.0 - Share / Adapt by attribution https://creativecommons.org/licenses/by/4.0/
* Music my own created before jam "binary"

Itch.io demo embedded additional info:
* Emulation courtesy of EmulatorJS https://github.com/EmulatorJS/EmulatorJS/blob/main/LICENSE GNU General Public License v3.0
* Open source BIOS https://github.com/Cult-of-GBA/BIOS MIT

Tags

Educational

Leave a comment

Log in with itch.io to leave a comment.

Comments

Submitted(+1)

Good idea, this enlivening presentation, too bad the technical demo preamble only shows color changes and movements and doesn't show what the gba has up its sleeve ^^.

Developer

Thanks! I somewhat ran out of time, but still wanted to join the Jam. It's a little bit of a meta-entry as a lot of the time was spent on the containerfiles, reading what was available, and experimental gimp -> butano bmp export rather than the rom itself. I'd restored my gba for fun and only discovered the Jam by accident, I was super impressed by how accessible making stuff is, and how elaborate the community has managed to go with full games compared to other platforms :)

Submitted(+1)

Seeing how much you put into a jam you found by chance, I hope it'll inspire you to go on and create other games!

Submitted(+1)

I think this is a neat idea. Essentially utilising the power of containers to make the setup for developing gba games much more accessible to people. As someone who deals with deployment issues in my day to day, seeing stuff like this makes me wish we adopted docker sooner :D Excellent work!

Developer

Thanks! I feel your pain on the docker adoption in a commercial setting. To be fair there can also be security and other technical implications involved.

Submitted

I'm a little confused by your usage of the word "container", but I'm even more confused why a toolchain for homebrew would need 10 GB of space. The latest version of the relevant ARM toolchain for GCC is only 2 GB, so what's the other 8 for?

Developer (3 edits)

Thanks for taking a look and giving some feedback! Hopefully I can add some context that might help:

Docker or Podman are build tooling that can bypasses the complex manual setup for developers, and gives a package a known stable platform. Defiantly not something necessary or fit for everyone, just a possibility! gbadev has a lot of approaches and resources... but they're a little manual and don't always make great choices on install methods. Also a lot of projects are made open source but really as "it works for me".

If you've never heard of containers before I'd definitely encourage you to give them a go!

https://www.docker.com/resources/what-container/

Use cases

You can read the project readme where a previous jam entry is used as an example. Its very much build-able... but only with specific versions of butano (understandable but less accessible for others to explore). A Containerfile, often called dockerfile could have described the build steps concretely, as well and been a reference others in future.

A 10gib container is for bundling whatever you like, but doesn't have to be that big! In this case all of Debian's goodness, gimp, mgba, devkitpro, butano, vim and whatever you'd want to extend it with, inside something that can run on mac windows linux! It would be trivial to make a leaner image though.

Containers are also great for CI/CD setups, allowing you to run your code in the same environment from development to production, which can save a lot of headaches, test test test.

I hope that helps add some context, it's not the right fit for everyone, but development in general has been shifting for a while now and probably will continue to with projects like nix, guix, atomic blue and so on.

It might be that this approach isn't really right for the homebrew/indie community but I thought I'd give it a try anyway in case anyone finds the example helpful :)

---

[Update: some concrete use cases I found on itch.io where people have used docker to overcome something]