gbadev
Game Boy Advance homebrew development forum
exelotlprofile picture

exelotl

Administrator
Last seen 10 hours ago
Joined:
Posts:
49
Topics:
10

I want to go about this in a more proper way, learning the background knowledge and skills that are fundamental to making software for the Game Boy Advance

There's kind of a huge number of options for GBA dev nowadays, however if your goal is to get comfortable enough that you can make more advanced edits to the GBA Doom port, that simplifies things a lot:

  • Find a good book or tutorial on C programming.
    • You want something beginner-friendly that will teach you the foundations - compiling, variables & types, operators, includes, control flow, functions, arrays, pointers, structures.
    • Beej's Guide to C Programming seems promising, though assumes you have experience at least 1 other programming language. Still, it's the best free resource I could find after a fair bit of searching.
    • Expect to spend a few evenings doing non-GBA stuff. Try some exercises, make some terminal programs like a calculator, quiz, caesar cipher, battleships or a maze generator, etc.
    • Get to know your terminal, text editor, version control, debugger, etc. A good resource for this is The Missing Semester of Your CS Education (I'm not sure this is totally necessary since you're already using GitHub and stuff, but maybe it helps?)
  • Read TONC to learn GBA development.
    • Well, you don't have to read it cover-to-cover, but it's absolutely jam packed with useful information about both GBA programming and low-level C programming in general. Some people dislike its long, meandering style, but for me it was exactly what I needed when I was getting started.

I can't help all that much with the specifics of DOOM engines or 3D rendering or anything like that, so you'll have to look elsewhere for those... but I think all the stuff above is what you'll need to get the fundamentals you're after!

And it's over!

Welp, I had to resort to my plan B but managed to squeeze in an entry.

It seems we got 15 or so in total which is great! Looking forward to trying them all out over the weekend. ^^

I'm in the insanely lucky position to be making a GBA game for a living right now... But before getting to this point, I had some day jobs, and worked on the game on weekends.

First I sold my soul to work in mobile games (well, at what was initially a small & very creative studio) in the Netherlands, which is where I met Rik and we started making Goodboy in our spare time. As time went on, the nature of projects we were working on at the day job got worse, and we both grew tired of being milked for our creativity to make shallow ad machines.

But yeah, the trick to making progress on Goodboy during that time was to arrange to meet up with Rik every other weekend. I could never have done it by myself, but when you set aside time to jam it out with another person, you can really keep up the momentum that way.

After a couple of years I handed in my notice and moved back to the UK for a job in web development, just as the pandemic struck. Unlike the last job, this one was for a good cause. But it was infuriating in its own way because the processes were sluggish, the team was underqualified, and the technology stack was atrocious. PHP + Jira + being stuck in Teams meetings for hours every day is a really brain-rotting combo!

The stuff I did for the GBA community during that time (helping to set up GBA Jam 2021 and such) was basically done while procrastinating from work to keep myself sane. But this also had its toll, because my resulting focus & productivity issues (undiagnosed ADHD maybe?) meant I was basically "at my job" for every waking hour, as I'd feel obliged to catch up on all the work I didn't do during the day.

The silver lining was that I was able to negotiate Fridays off, which I dedicated to working on the game. If you ever have this opportunity and can afford to, freaking take it!

We kept plugging away at the game on Fridays & weekends for another year and a half, and eventually were able to get everything into gear for the Kickstarter campaign. And it took off, because we had the right headlines at the right time (20th anniversary of the GBA, first commercial GBA game in 13 years (yes, that's a stretch, we really meant something more specific than that)), and a physical publisher who could push the story through their own channels, and we reached out to retro gaming YouTubers, and spread it on Twitter as far as we could. But on top of all that, we had a great trailer and great demo to back it up.

So that's the story of how I tanked 4 years of psychic damage to break free and go full time indie, with a lot of luck too. But it's not over, we still have to finish the full game... And do the Switch port. And we have no idea how successful the final thing will be, we can only hope it's enough to sustain us so we can keep doing this!

Yes, it can be done and I'll get to it eventually ^^

If anyone reading this wants to give it a try before me, you'll need Python + pip and Node.js + npm.

You'd install flaskbb on your own machine (don't checkout 2.0.0 though) then follow the theming docs to create the theme.

Sonic Advance 2 and 3 are my absolute faves.

2 is a blast, just a really tight experience that you can play through in a couple of sittings, it never slows down, every boss is on wheels so you're literally running the whole time, it's so exhilarating! Well apart from that stupid mech at the end which brings everything to a stop, oh well...

3 stands out for me as having the best areas and music. The last two zones are absolute perfection, Cyber Track is so catchy and full of hi-tech early 2000's vibes. Chaos Angel is awe-inspiring, you're running above the clouds through an ancient city, the moon lit up, the sky stained purple, with the most beautiful, intense, haunting melodies pushing you on.

I've never managed to get the true ending in either game though. Finding all the chao / special rings seems like a drag, and part of the fun of these games for me is that I don't know all the levels by heart, so that I still have to think on my feet when playing through them 😅︎

Alright, I got it working!

You can now enable email notifications under Settings -> E-Mail & Feed Settings

You can opt-in to receive emails for tracked topics. You can also set it to email you for every single post on the board(s) of your choice.

Additionally, upon saving you get a personalised Atom feed, which you could use instead of email if you prefer.

The only problem is, it currently doesn't support sending emails for DMs. I tried to get this working but my Python/Flask/SQLAlchemy skills aren't good enough right now. :(

Also, this hasn't been thoroughly tested, so please give me a shout if you run into any issues!

I'd like to do an update to xniq but not sure how much time I'll have... But my plan B could be thrown together in an hour probably, so hopefully I'll be able to make something!

Welcome to the GBA Winter Jam '23!

This is a casual game jam running throughout February, with a focus on making a kickass title screen.

No time to finish the rest of the game? That's fine! Want to add a title screen to an old project and submit that? Go for it!

The stakes are low, there's no prizes. After the submission period ends there will be a few weeks of public voting, just for fun and to encourage players to leave feedback.

More info at itch: https://itch.io/jam/gba-winter-jam-23

Oh yeah, and this is the first time we're using our own forum for jam news & discussion! Please feel free to share your progress and ask for help here!

Aw, it's a shame you ran out of time. Sounds like it was good experience and a good chance to test your engine though.

I think there's lots of potential in the mechanics that you can pick up a snowball at any time but can only hold 1 thing at a time. Loved the music too!

Currently not, but it shouldn't be too tricky for us to add.

There's an issue here that mentions it: https://github.com/flaskbb/flaskbb/issues/335

And an old plugin which can supposedly do it, though the plugin API has since changed so I doubt it works anymore. I've had a bit of hands on experience with writing plugins already so it should be doable.