So, we hear about rediscovering the fun of programming with the Game Boy.
Sorry, actually, we lied. Hopefully, Iran agrees that this is fun, right?
Okay, before we actually start, we thought that you might appreciate knowing a little more about, you know, the speakers.
And this will also serve to this claim our own personal biases.
So, my name is Eldred, but I usually go online by the nickname Isotim.
I got my first Game Boy really late, so I have absolutely zero nostalgia for it.
I love strongly type languages with love static checks and being down to the metal juggling robots.
And I have also grown a strong distasteful CNC++.
And my name is Sylvie.
I grew up playing a Game Boy color and an N64, and basically didn't basically didn't upgrade those consoles.
So, I have considerable nostalgia for it.
On the one hand, there's a lot I appreciate about high-level languages, functional programming,
lots of wheels that you don't have to reinvent.
But at the same time, I also enjoy just writing direct procedural code running it right on the CPU.
That's this talk.
Let's get to what you came here for.
Since we are rediscovering the fun of programming,
what made it on fun in the first place.
Where is the increased fun of Retro Dev?
Well, so the first thing that drains fun out of activity is being taken out of, you know, the zone to deal with some trouble.
For example, waiting for long build times.
Raise your hand if you have seen this comic before.
There's also stressing your network bandwidth and waiting some more while it fetches a whole bunch of libraries.
And finally, there's how to hardware requirements constantly increasing.
So modern development techniques tend to demand a lot of work out of a lot of people.
And it can be practically impossible to get an entire project complete,
especially if you're a small team, let alone a solo indie developer.
Let's, you know, it's just hard, man.
The modern PC platform is redive us with a lot of screen sizes, how do I combinations and configurations.
And on top of that, all of those targets are constantly moving as well, which makes things even worse.
Furthermore, debugging suffers, because to do that well, you have to grasp what the old platform is really doing.
And on such a large system, that's kind of ineffective.
And finally, just the sensation that you don't grasp what's going on, it just doesn't feel good.
Okay, so we've spent a lot of time explaining why this machine right here is bad.
So now let's show why retro game dev can be a solution to all of the above.
Especially, I want you to give this in mind, developing for a 90s console doesn't mean you must go back to a 90s experience.
So the game was tools SDKs, libraries, and resources have improved a lot over the decades since it was released.
Even the pixel art and the four channel audio can benefit from the latest programs for editing graphics, audio sequencing, etc.
No more plotting pixels directly on graph paper.
You can compile all of your source code and graphics in a playable ROM in mere seconds.
And you can use modern debugging conveniences. We can step through the code. You have time travel debugging.
All of that, it applies to the game by now, too.
Also, the gameplay simplicity is just refreshing in many ways.
Not only is it a good support to learn some fundamental lower-level concepts, but it remains an interesting object in its own right.
Further, one dev or a small team, if you'd like, can wear more hats at once without any of them individually being too large to handle.
This isn't part due to the system's lower specs, making it easier to have something that, you know, can feel reasonably complete.
And yes, the system is underpowered, but I would argue that's actually a good thing.
Because, as the saying goes, limitations breed creativity.
And on top of that, it can also make it very interesting to figure out how to make an idea you've had to work on the system.
It can feel like, you know, puzzle solving.
Creating games is, of course, a central part of game-boy development, but it's not the only one.
We hope to show you a series of things where at least one of them will peak your interest and make you think that looks like fun.
Okay, so, as I can probably tell from the number of stickers on my laptop, no code tools on for you may jam, so I'm going to be talking about this from an outside perspective.
But GB Studio should nonetheless be mentioned, since it has enabled many non-programmers to get into the game-boy niche.
And it also lets users grow their skills and write how of a much custom code they are comfortable with.
Now, let's talk about the programming solutions.
The usual suspect for working with an embedded platform, like the Game Boy clearly is, would be, of course, C.
And, well, going down the region from GB Studio, which, remember, no code.
There is ZGB, which is basically a game engine.
Now, then you have something called GBDK, which is, quote, quote, just a tool chain, which is, you know, still a lot.
And if that's your jam, you can also try creating your own tool chains, like, here's a link to one.
Again, follow the slide live if you want to click the links and there will be available.
And at the lowest level, we get to assembly language.
Maybe that's making you think of long, complex, and scutable code with too many consonants that the compiler can do better than most people can.
But on an 8-bit platform like the Game Boy, it's assembly language was designed for people to be writing.
So, it is surprisingly human-friendly, not too complex, relatively easy to get started.
And here's a link to a tutorial that has gotten some praise for its accessibility and thoughtess.
Full disclosure, I wrote half of that tutorial.
And as for the choice of tools, well, RGBS is the most popular choice by landslide.
But there is nonetheless some variety in choice if RGBS's choices don't work for you.
As well, some languages attempt to bridge the gap between, you know, C and...
Assembly.
And being a high level assembly, so those you've probably never heard before, but they are worth giving a try.
Bless you.
There are also ongoing efforts to bring more languages to this console.
In particular, we would like to highlight the in-progress port of LLVM.
So you'll be able to use languages like C++ and Rust.
Okay, hopefully we have some.
Okay, yeah, we don't have sound.
We have a...
Yeah.
So this is a rhythm game made for the game, made for the game boy.
This was made playing by the way.
And here's a...
Here's another game boy.
So all of those are homeroom.
I either were made by non-professionals.
This one is on the super game boy, which is why you have a wide screen.
Because this is actually running on a super NES.
Look it up.
It's kind of crazy.
Nintendo put in a 9-ty game boy in the cathart.
This one is called Quartet.
It's a little puzzle game.
And this one is...
This one is for the game boy, Cole, hence, you know, the colors.
And never let anyone tell your system it's underpowered.
When you can run an entire Denmark who on it.
And those are just a sample of the homeroom games available.
Yeah.
There are even more on homeroom which is a site started by the GP dev organization community.
Where a lot of these can be downloaded or downloaded.
If you're making them uploaded.
By the way, even today, people are still making physical cartridges of their homeroom games.
Here's an example of a game that was successfully crowdfunded last year.
A real packaging and a real cartridge inside.
According to a survey of...
Yeah.
Okay.
There are clear patterns there.
But on the other hand, this survey does show that in 1996, which was the Game Boy's
Hey Day, there were fewer games published than there were in 2022.
And the quality remains about on par.
No joke.
There are some extremely good quality games like the three we showed were actually really solid.
Okay.
That was a lot of the software.
But maybe you're more of a hardware person and all of that sounded boring to you.
Don't worry.
Because you know, a cartridge is basically a PCB that gets five volts in ground and a couple of address lines.
And also there's a communication pole that's just right there.
It's basically a SPI.
And by the way, there are precedents.
You'd not be the first.
Like this is a Game Boy sewing machine.
This is official.
It has been released license by Nintendo.
There you can also look that up.
There's Wikipedia page on it.
But there is also a son of a fishing and an aesthetic mask.
Like, yeah, for podiatrists.
Yes.
On a Game Boy.
So.
Music on the Game Boy.
Can't really use the formats from modern machines.
No MP3 decoders there.
But it's instead composed on applications called trackers.
Typically, you would run those on your PC, such as huge tracker.
But there are also alternatives that are designed for the Game Boy itself.
Here's an example of an application that is designed to take the data from one of those
trackers.
And you know, don't need to use actual sound, which you've heard some before.
Like, you know, those games had sound.
And here's an example of one of those drivers, especially its demo ROM.
It's called sound system in this case.
And we're going to show you an example of a music that was composed in a huge tracker, actually.
That music actually won the music category of the Game Boy 2020 for jam.
And, well, okay, you may be saying, yeah, okay, that's cool.
But, you know, that's just still a little bit, I want something fancy.
Okay, don't worry.
How about voice samples?
That was the runner-up of the same compo.
Again, there's a page on db.io that lists all of those.
We invite you to go there.
Again, boy.
So, as for pixel art, you can use practically any graphics editor to draw things for the
Game Boy, but it has more restrictions than just that.
Dedicated editors for pixel art, such as a surprise and fiscal, they have,
Dedicated, they have Game Boy's specific features, such as controlling the tile grid,
or animating frames one at a time, and handling the palette restrictions.
Speaking of palette restrictions, the original DMG Game Boy had exactly four shades of piece
of green, but even there, some clever programming can get around it, or clever artistry.
You can use dithering in space, as well as time, and here, if you blink colors properly,
then it looks like you have more than four.
That's for the Game Boy color.
It seems like so many.
You have 32,000 whole colors to use, but even there, there are the restrictions on which
ones can be in a palette at a time.
And, again, with a little programming wizardry, you can get around that and have,
quote unquote, high color mode, and make games look exceptionally artistic.
Okay, okay. Maybe the console, actually, doesn't really interest you, don't worry.
We can even get you covered if you want to do some work outside of the console.
We mentioned programming earlier, so obviously, it follows that one can work on the tools that
necessary to, you know, make the language, language is work, assemblers, and compilers.
More on the GUI side, there are techniques for creating your game assets,
graphics editors, Tom App editors, audio sequences, individual games may also use their own
custom tools, like for editing, enemy AI data, or scripting cutscenes.
And, yeah, your imagination to limit, you can make all of these as you need.
If you'd rather make your own game and tools for it, there are several GB dev projects that
would be looking for contributors, there's a strong culture of free software, so anyone can
contribute, and maybe even get paid a little.
Yeah, we have some boundaries, actually, that found it by donations.
Just we would like to go back quickly on that, as some people mentioned before, RGVDS,
which is a GB dev project. It's currently 25 years old. It's original release,
was in August of 1999. So, hey, close to the first them.
And, yeah, full disclosure, the two of us are the content maintainers of it.
It's actually how we met.
And, well, I think it's grown to have all the features that you would want from an assembler,
ignore the 50 issues on GitHub.
And, honestly, please, please try it out. It's software that people tend to like,
and you might also like it and contribute to it. It's, again, free software.
There's also the world of emulation, which you can work for.
Emulating the gameboy on your computer is a common recommendation for new program.
Yeah. Well, if it's over, we're just going to leave you with some pictures of the two best
in the two best in the latest on the market and that action.
And, well, then, some people might recognize this picture.
It's called Gameboy Acid 2.
Do I need to explain anything?
And, this will be, this will be our last thing.
We're going to be on the gameboy.
I don't have much time left.