WEBVTT

00:00.000 --> 00:22.000
So, we hear about rediscovering the fun of programming with the Game Boy.

00:23.000 --> 00:29.000
Sorry, actually, we lied. Hopefully, Iran agrees that this is fun, right?

00:31.000 --> 00:38.000
Okay, before we actually start, we thought that you might appreciate knowing a little more about, you know, the speakers.

00:38.000 --> 00:42.000
And this will also serve to this claim our own personal biases.

00:42.000 --> 00:47.000
So, my name is Eldred, but I usually go online by the nickname Isotim.

00:48.000 --> 00:55.000
I got my first Game Boy really late, so I have absolutely zero nostalgia for it.

00:55.000 --> 01:01.000
I love strongly type languages with love static checks and being down to the metal juggling robots.

01:01.000 --> 01:05.000
And I have also grown a strong distasteful CNC++.

01:06.000 --> 01:08.000
And my name is Sylvie.

01:08.000 --> 01:16.000
I grew up playing a Game Boy color and an N64, and basically didn't basically didn't upgrade those consoles.

01:16.000 --> 01:20.000
So, I have considerable nostalgia for it.

01:20.000 --> 01:25.000
On the one hand, there's a lot I appreciate about high-level languages, functional programming,

01:25.000 --> 01:29.000
lots of wheels that you don't have to reinvent.

01:29.000 --> 01:36.000
But at the same time, I also enjoy just writing direct procedural code running it right on the CPU.

01:36.000 --> 01:39.000
That's this talk.

01:39.000 --> 01:42.000
Let's get to what you came here for.

01:42.000 --> 01:45.000
Since we are rediscovering the fun of programming,

01:45.000 --> 01:47.000
what made it on fun in the first place.

01:47.000 --> 01:51.000
Where is the increased fun of Retro Dev?

01:51.000 --> 02:00.000
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.

02:00.000 --> 02:02.000
For example, waiting for long build times.

02:02.000 --> 02:06.000
Raise your hand if you have seen this comic before.

02:06.000 --> 02:12.000
There's also stressing your network bandwidth and waiting some more while it fetches a whole bunch of libraries.

02:12.000 --> 02:18.000
And finally, there's how to hardware requirements constantly increasing.

02:18.000 --> 02:24.000
So modern development techniques tend to demand a lot of work out of a lot of people.

02:24.000 --> 02:29.000
And it can be practically impossible to get an entire project complete,

02:29.000 --> 02:35.000
especially if you're a small team, let alone a solo indie developer.

02:35.000 --> 02:38.000
Let's, you know, it's just hard, man.

02:38.000 --> 02:44.000
The modern PC platform is redive us with a lot of screen sizes, how do I combinations and configurations.

02:44.000 --> 02:51.000
And on top of that, all of those targets are constantly moving as well, which makes things even worse.

02:51.000 --> 02:58.000
Furthermore, debugging suffers, because to do that well, you have to grasp what the old platform is really doing.

02:58.000 --> 03:03.000
And on such a large system, that's kind of ineffective.

03:03.000 --> 03:11.000
And finally, just the sensation that you don't grasp what's going on, it just doesn't feel good.

03:11.000 --> 03:17.000
Okay, so we've spent a lot of time explaining why this machine right here is bad.

03:17.000 --> 03:22.000
So now let's show why retro game dev can be a solution to all of the above.

03:22.000 --> 03:29.000
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.

03:29.000 --> 03:44.000
So the game was tools SDKs, libraries, and resources have improved a lot over the decades since it was released.

03:44.000 --> 03:54.000
Even the pixel art and the four channel audio can benefit from the latest programs for editing graphics, audio sequencing, etc.

03:54.000 --> 03:58.000
No more plotting pixels directly on graph paper.

03:58.000 --> 04:04.000
You can compile all of your source code and graphics in a playable ROM in mere seconds.

04:04.000 --> 04:10.000
And you can use modern debugging conveniences. We can step through the code. You have time travel debugging.

04:10.000 --> 04:14.000
All of that, it applies to the game by now, too.

04:14.000 --> 04:18.000
Also, the gameplay simplicity is just refreshing in many ways.

04:19.000 --> 04:27.000
Not only is it a good support to learn some fundamental lower-level concepts, but it remains an interesting object in its own right.

04:27.000 --> 04:36.000
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.

04:36.000 --> 04:46.000
This isn't part due to the system's lower specs, making it easier to have something that, you know, can feel reasonably complete.

04:46.000 --> 04:51.000
And yes, the system is underpowered, but I would argue that's actually a good thing.

04:51.000 --> 04:54.000
Because, as the saying goes, limitations breed creativity.

04:54.000 --> 05:01.000
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.

05:01.000 --> 05:06.000
It can feel like, you know, puzzle solving.

05:06.000 --> 05:12.000
Creating games is, of course, a central part of game-boy development, but it's not the only one.

05:13.000 --> 05:21.000
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.

05:21.000 --> 05:31.000
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.

05:31.000 --> 05:38.000
But GB Studio should nonetheless be mentioned, since it has enabled many non-programmers to get into the game-boy niche.

05:38.000 --> 05:45.000
And it also lets users grow their skills and write how of a much custom code they are comfortable with.

05:45.000 --> 05:48.000
Now, let's talk about the programming solutions.

05:48.000 --> 05:55.000
The usual suspect for working with an embedded platform, like the Game Boy clearly is, would be, of course, C.

05:55.000 --> 06:00.000
And, well, going down the region from GB Studio, which, remember, no code.

06:00.000 --> 06:04.000
There is ZGB, which is basically a game engine.

06:04.000 --> 06:10.000
Now, then you have something called GBDK, which is, quote, quote, just a tool chain, which is, you know, still a lot.

06:10.000 --> 06:16.000
And if that's your jam, you can also try creating your own tool chains, like, here's a link to one.

06:16.000 --> 06:22.000
Again, follow the slide live if you want to click the links and there will be available.

06:22.000 --> 06:26.000
And at the lowest level, we get to assembly language.

06:26.000 --> 06:33.000
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.

06:33.000 --> 06:41.000
But on an 8-bit platform like the Game Boy, it's assembly language was designed for people to be writing.

06:41.000 --> 06:49.000
So, it is surprisingly human-friendly, not too complex, relatively easy to get started.

06:49.000 --> 06:56.000
And here's a link to a tutorial that has gotten some praise for its accessibility and thoughtess.

06:56.000 --> 07:02.000
Full disclosure, I wrote half of that tutorial.

07:02.000 --> 07:07.000
And as for the choice of tools, well, RGBS is the most popular choice by landslide.

07:07.000 --> 07:15.000
But there is nonetheless some variety in choice if RGBS's choices don't work for you.

07:15.000 --> 07:21.000
As well, some languages attempt to bridge the gap between, you know, C and...

07:21.000 --> 07:23.000
Assembly.

07:23.000 --> 07:30.000
And being a high level assembly, so those you've probably never heard before, but they are worth giving a try.

07:31.000 --> 07:34.000
Bless you.

07:34.000 --> 07:38.000
There are also ongoing efforts to bring more languages to this console.

07:38.000 --> 07:44.000
In particular, we would like to highlight the in-progress port of LLVM.

07:44.000 --> 07:49.000
So you'll be able to use languages like C++ and Rust.

07:49.000 --> 07:52.000
Okay, hopefully we have some.

07:52.000 --> 07:55.000
Okay, yeah, we don't have sound.

07:55.000 --> 07:57.000
We have a...

07:57.000 --> 07:58.000
Yeah.

07:58.000 --> 07:59.000
Yeah.

08:03.000 --> 08:07.000
So this is a rhythm game made for the game, made for the game boy.

08:16.000 --> 08:18.000
This was made playing by the way.

08:19.000 --> 08:24.000
And here's a...

08:24.000 --> 08:26.000
Here's another game boy.

08:26.000 --> 08:27.000
So all of those are homeroom.

08:27.000 --> 08:30.000
I either were made by non-professionals.

08:30.000 --> 08:33.000
This one is on the super game boy, which is why you have a wide screen.

08:33.000 --> 08:36.000
Because this is actually running on a super NES.

08:36.000 --> 08:37.000
Look it up.

08:37.000 --> 08:38.000
It's kind of crazy.

08:38.000 --> 08:42.000
Nintendo put in a 9-ty game boy in the cathart.

08:42.000 --> 08:44.000
This one is called Quartet.

08:44.000 --> 08:46.000
It's a little puzzle game.

08:47.000 --> 08:49.000
And this one is...

08:49.000 --> 08:52.000
This one is for the game boy, Cole, hence, you know, the colors.

08:55.000 --> 08:58.000
And never let anyone tell your system it's underpowered.

08:58.000 --> 09:00.000
When you can run an entire Denmark who on it.

09:00.000 --> 09:15.000
And those are just a sample of the homeroom games available.

09:16.000 --> 09:18.000
Yeah.

09:18.000 --> 09:19.000
Yeah.

09:19.000 --> 09:40.000
There are even more on homeroom which is a site started by the GP dev organization community.

09:40.000 --> 09:43.000
Where a lot of these can be downloaded or downloaded.

09:43.000 --> 09:47.000
If you're making them uploaded.

09:47.000 --> 09:56.000
By the way, even today, people are still making physical cartridges of their homeroom games.

09:56.000 --> 10:00.000
Here's an example of a game that was successfully crowdfunded last year.

10:00.000 --> 10:05.000
A real packaging and a real cartridge inside.

10:05.000 --> 10:08.000
According to a survey of...

10:09.000 --> 10:12.000
Yeah.

10:12.000 --> 10:13.000
Okay.

10:13.000 --> 10:14.000
There are clear patterns there.

10:14.000 --> 10:21.000
But on the other hand, this survey does show that in 1996, which was the Game Boy's

10:21.000 --> 10:27.000
Hey Day, there were fewer games published than there were in 2022.

10:27.000 --> 10:30.000
And the quality remains about on par.

10:30.000 --> 10:32.000
No joke.

10:32.000 --> 10:39.000
There are some extremely good quality games like the three we showed were actually really solid.

10:39.000 --> 10:40.000
Okay.

10:40.000 --> 10:41.000
Okay.

10:41.000 --> 10:42.000
That was a lot of the software.

10:42.000 --> 10:46.000
But maybe you're more of a hardware person and all of that sounded boring to you.

10:46.000 --> 10:47.000
Don't worry.

10:47.000 --> 10:53.000
Because you know, a cartridge is basically a PCB that gets five volts in ground and a couple of address lines.

10:53.000 --> 10:57.000
And also there's a communication pole that's just right there.

10:57.000 --> 10:59.000
It's basically a SPI.

10:59.000 --> 11:02.000
And by the way, there are precedents.

11:02.000 --> 11:04.000
You'd not be the first.

11:04.000 --> 11:07.000
Like this is a Game Boy sewing machine.

11:07.000 --> 11:08.000
This is official.

11:08.000 --> 11:11.000
It has been released license by Nintendo.

11:11.000 --> 11:13.000
There you can also look that up.

11:13.000 --> 11:15.000
There's Wikipedia page on it.

11:15.000 --> 11:20.000
But there is also a son of a fishing and an aesthetic mask.

11:20.000 --> 11:22.000
Like, yeah, for podiatrists.

11:22.000 --> 11:23.000
Yes.

11:23.000 --> 11:25.000
On a Game Boy.

11:25.000 --> 11:27.000
So.

11:28.000 --> 11:29.000
Music on the Game Boy.

11:29.000 --> 11:32.000
Can't really use the formats from modern machines.

11:32.000 --> 11:34.000
No MP3 decoders there.

11:34.000 --> 11:39.000
But it's instead composed on applications called trackers.

11:39.000 --> 11:43.000
Typically, you would run those on your PC, such as huge tracker.

11:43.000 --> 11:50.000
But there are also alternatives that are designed for the Game Boy itself.

11:50.000 --> 11:56.000
Here's an example of an application that is designed to take the data from one of those

11:56.000 --> 11:57.000
trackers.

11:57.000 --> 12:01.000
And you know, don't need to use actual sound, which you've heard some before.

12:01.000 --> 12:04.000
Like, you know, those games had sound.

12:04.000 --> 12:10.000
And here's an example of one of those drivers, especially its demo ROM.

12:10.000 --> 12:12.000
It's called sound system in this case.

12:12.000 --> 12:18.000
And we're going to show you an example of a music that was composed in a huge tracker, actually.

12:19.000 --> 12:37.000
That music actually won the music category of the Game Boy 2020 for jam.

12:37.000 --> 12:40.000
And, well, okay, you may be saying, yeah, okay, that's cool.

12:40.000 --> 12:43.000
But, you know, that's just still a little bit, I want something fancy.

12:43.000 --> 12:44.000
Okay, don't worry.

12:44.000 --> 12:46.000
How about voice samples?

12:46.000 --> 13:01.000
That was the runner-up of the same compo.

13:01.000 --> 13:06.000
Again, there's a page on db.io that lists all of those.

13:06.000 --> 13:11.000
We invite you to go there.

13:12.000 --> 13:17.000
Again, boy.

13:17.000 --> 13:26.000
So, as for pixel art, you can use practically any graphics editor to draw things for the

13:26.000 --> 13:30.000
Game Boy, but it has more restrictions than just that.

13:30.000 --> 13:36.000
Dedicated editors for pixel art, such as a surprise and fiscal, they have,

13:37.000 --> 13:42.000
Dedicated, they have Game Boy's specific features, such as controlling the tile grid,

13:42.000 --> 13:47.000
or animating frames one at a time, and handling the palette restrictions.

13:47.000 --> 13:53.000
Speaking of palette restrictions, the original DMG Game Boy had exactly four shades of piece

13:53.000 --> 13:59.000
of green, but even there, some clever programming can get around it, or clever artistry.

13:59.000 --> 14:05.000
You can use dithering in space, as well as time, and here, if you blink colors properly,

14:05.000 --> 14:08.000
then it looks like you have more than four.

14:08.000 --> 14:11.000
That's for the Game Boy color.

14:11.000 --> 14:12.000
It seems like so many.

14:12.000 --> 14:18.000
You have 32,000 whole colors to use, but even there, there are the restrictions on which

14:18.000 --> 14:20.000
ones can be in a palette at a time.

14:20.000 --> 14:25.000
And, again, with a little programming wizardry, you can get around that and have,

14:25.000 --> 14:31.000
quote unquote, high color mode, and make games look exceptionally artistic.

14:32.000 --> 14:36.000
Okay, okay. Maybe the console, actually, doesn't really interest you, don't worry.

14:36.000 --> 14:40.000
We can even get you covered if you want to do some work outside of the console.

14:40.000 --> 14:45.000
We mentioned programming earlier, so obviously, it follows that one can work on the tools that

14:45.000 --> 14:51.000
necessary to, you know, make the language, language is work, assemblers, and compilers.

14:51.000 --> 14:57.000
More on the GUI side, there are techniques for creating your game assets,

14:57.000 --> 15:04.000
graphics editors, Tom App editors, audio sequences, individual games may also use their own

15:04.000 --> 15:12.000
custom tools, like for editing, enemy AI data, or scripting cutscenes.

15:12.000 --> 15:18.000
And, yeah, your imagination to limit, you can make all of these as you need.

15:18.000 --> 15:23.000
If you'd rather make your own game and tools for it, there are several GB dev projects that

15:23.000 --> 15:29.000
would be looking for contributors, there's a strong culture of free software, so anyone can

15:29.000 --> 15:32.000
contribute, and maybe even get paid a little.

15:32.000 --> 15:37.000
Yeah, we have some boundaries, actually, that found it by donations.

15:37.000 --> 15:42.000
Just we would like to go back quickly on that, as some people mentioned before, RGVDS,

15:42.000 --> 15:46.000
which is a GB dev project. It's currently 25 years old. It's original release,

15:46.000 --> 15:51.000
was in August of 1999. So, hey, close to the first them.

15:51.000 --> 15:56.000
And, yeah, full disclosure, the two of us are the content maintainers of it.

15:56.000 --> 16:00.000
It's actually how we met.

16:00.000 --> 16:06.000
And, well, I think it's grown to have all the features that you would want from an assembler,

16:06.000 --> 16:09.000
ignore the 50 issues on GitHub.

16:09.000 --> 16:16.000
And, honestly, please, please try it out. It's software that people tend to like,

16:16.000 --> 16:25.000
and you might also like it and contribute to it. It's, again, free software.

16:25.000 --> 16:29.000
There's also the world of emulation, which you can work for.

16:29.000 --> 16:35.000
Emulating the gameboy on your computer is a common recommendation for new program.

16:35.000 --> 16:43.000
Yeah. Well, if it's over, we're just going to leave you with some pictures of the two best

16:43.000 --> 16:47.000
in the two best in the latest on the market and that action.

16:47.000 --> 16:52.000
And, well, then, some people might recognize this picture.

16:52.000 --> 16:56.000
It's called Gameboy Acid 2.

16:56.000 --> 16:58.000
Do I need to explain anything?

16:58.000 --> 17:02.000
And, this will be, this will be our last thing.

17:03.000 --> 17:05.000
We're going to be on the gameboy.

17:24.000 --> 17:27.000
I don't have much time left.

17:27.000 --> 17:29.000
I don't have much time left.

17:32.000 --> 17:35.000
I don't have much time left.

