WEBVTT

00:00.000 --> 00:18.540
We are with Admiral Potato and Mary, who are part of the DC-801 Black Mage Badge, which we already did a video on this channel before, but I wanted to take time to sit down and hear about not only what they're continuing to build, but also some of the process that wasn't really shown in the original video.

00:18.540 --> 00:21.680
So first, thank you so much for joining me.

00:21.680 --> 00:26.860
Again, Admiral Potato, what were you responsible for, just for anyone who's watching, for this badge?

00:26.860 --> 00:27.440
Oh, sure.

00:27.440 --> 00:39.200
Well, I was responsible, I guess I was software project lead on the badge game, and I guess I also kind of herded a lot of other cats.

00:39.200 --> 00:44.760
I feel like I was kind of the one who was pushing a lot of other people to put effort in.

00:45.140 --> 01:06.960
It was a multi-year project just to get the initial batch of these out into the world, and it took a lot of making sure that a lot of people were doing their particular part, and coordinating things, but I was also designing the game engine to be a little bit different than some of the previous DC-801 badges.

01:07.900 --> 01:11.020
And I would imagine, though, like, that's not an easy task.

01:11.020 --> 01:15.520
I mean, it's a double layer, there's multiple layers to the board, there's lots of complexities.

01:15.700 --> 01:19.860
This wasn't an afternoon project, this was multiple years in the making.

01:19.860 --> 01:21.680
How big was the team which worked on it?

01:21.680 --> 01:28.040
Well, so Hamster, he actually has made all...

01:28.040 --> 01:33.340
He's done the electrical engineering for all of the DC-801 badges that I am aware of.

01:33.340 --> 01:38.920
There's probably like four or five of them, and I should probably be more well-versed on which ones those are.

01:39.220 --> 01:41.360
So Hamster does the electrical engineering.

01:42.900 --> 01:52.480
We have Bash Ninja and Pips, who are kind of just like there to kind of guide the whole organization.

01:54.380 --> 01:57.780
They mostly handle finance and promotion these days.

01:58.440 --> 02:06.980
We have me, who was just kind of... I was the one who started asking questions regarding whatever the next badge was going to be.

02:07.660 --> 02:12.380
It's almost kind of one of those situations where I was asking questions and everybody else was burned out.

02:12.380 --> 02:14.920
And so they're like, well, what ideas have you got?

02:14.920 --> 02:16.840
And I said, let me play around with some stuff.

02:17.140 --> 02:17.580
Okay.

02:18.540 --> 02:23.460
And so by playing around with a couple of different ideas...

02:23.980 --> 02:28.120
I think it was actually Bash who suggested, well, what if we pick a character that's like the Black Mage?

02:28.120 --> 02:30.700
And I was like, that's sweet, what can we do with it?

02:31.600 --> 02:34.360
Nobody else had any ideas, I said, oh shit, I got it, guys.

02:35.050 --> 02:48.740
The Black Mage, rather than having like fire, lightning, and electric spells like in the Final Fantasy series, they can actually have the magical ability to open a hex editor and edit the state of live memory in the game that you're playing.

02:48.740 --> 02:49.620
Everybody was sold.

02:49.620 --> 02:52.340
I was like, okay, I guess I have to make it happen.

02:52.340 --> 03:00.320
I have to imagine what you pitched, which was, hey, let's make a game, which is in and of itself remarkably hard.

03:01.560 --> 03:07.460
And then you said, hold on, we're also going to put quests in it, which are unique to the game.

03:07.460 --> 03:09.280
And then we're going to put items in it, which are unique to the game.

03:09.280 --> 03:12.320
And then we're going to put graphics and images, which are all like...

03:12.320 --> 03:17.160
So many people think the art on all of these badges is just magically done.

03:17.960 --> 03:18.800
Yeah, there we go.

03:18.800 --> 03:20.160
And we're going to come to the art.

03:20.160 --> 03:31.560
But then the other piece of this is, then you go, oh yeah, by the way, we're going to make all of this editable by the user in a way that won't completely hose the game while you're playing it.

03:31.560 --> 03:32.360
That is true.

03:32.360 --> 03:33.260
That's actually...

03:34.600 --> 03:36.040
Oh, me?

03:36.660 --> 03:38.160
So, okay.

03:38.160 --> 03:41.380
That's actually a really important part.

03:42.060 --> 03:56.240
Some of the previous versions of DC-801 games, like all of the logic, all of the puzzles, all of the entities, all of the text and the dialogue that you would interact with any of them, that was all written into the seat of the engine.

03:56.240 --> 04:14.420
So in order to be able to make a change to the game, to be able to engage with it from a creator's perspective, you would actually need to have the entire build tool chain set up and running on your box, and you'd need to test it directly on the hardware.

04:15.720 --> 04:20.200
One of the things that was... that was hard for me to get into.

04:20.200 --> 04:33.240
It took like six months to actually get enough information from each of the team members to be able to figure out just to be able to... how to compile from the source code that we had and actually get that running on the previous year's batch.

04:33.760 --> 04:43.800
So a lot of the first six months of my involvement in the project not only was like brainstorming and coming up with plans for what the next game was going to be, but it was also like figuring out the compile tool chain.

04:43.800 --> 04:45.020
I said, this is bullshit.

04:45.020 --> 04:50.360
I don't want anybody to ever have to put this much effort into just like turning it on and building it again.

04:50.360 --> 04:56.400
So what we actually did is we actually built a virtual machine that had all the tooling built in.

04:56.400 --> 04:59.180
Like literally you turn it on, there's like three scripts on the desktop.

04:59.180 --> 05:06.400
Pull the latest from source control, make a build of the game, and open it up and play it.

05:06.680 --> 05:17.380
So we first off started by making it easier and more approachable for other people to get the build tooling because we just gave them a whole VM that was ready to go.

05:18.120 --> 05:29.480
But on top of that, we knew how much it would be a barrier to people to be able to create content if they had to learn C and C++ to be able to engage with the code base.

05:29.680 --> 05:31.580
I said, guys, I know what to do with this.

05:33.340 --> 05:39.380
The plan that actually worked out really well was to take it so that...

05:39.380 --> 05:42.600
make it so that the... how do I put this?

05:42.600 --> 05:45.020
The engine...

05:46.660 --> 05:48.580
is data-driven.

05:49.100 --> 05:52.100
You have a scenario.dat file.

05:52.960 --> 05:56.740
And you can copy that onto the badge with an SD card.

05:57.000 --> 06:02.200
And depending on which scenario.dat you put in there, you could be playing a completely different game.

06:02.200 --> 06:03.260
Oh, wow.

06:03.660 --> 06:05.380
Like a completely different scenario.

06:05.380 --> 06:08.200
All the engine stuff is there, like the hex editor.

06:08.200 --> 06:28.460
Since most of the physical interface of this is actually about being optimized for teaching someone how to get in and edit raw memory by literally changing individual bits in selected bytes in the hex editor, that's the kind of gameplay that you're going to have.

06:28.460 --> 06:29.920
But you can tell a completely different story.

06:29.920 --> 06:31.160
You can have completely different maps.

06:31.160 --> 06:35.140
You can have different dialogue, different characters, different everything.

06:35.140 --> 06:37.680
You can all control this one file.

06:38.500 --> 06:43.360
So, our C source code reads the scenario data.

06:44.080 --> 06:46.380
And that's the game that you play.

06:46.380 --> 07:05.460
The thing is, that scenario data, we specifically designed tooling to allow anyone who just knows how to open a text editor, write a little bit of JSON, they can drag it into our browser-based game data compiler, and then it spits out a game data.

07:05.460 --> 07:13.160
Literally all you need is a text editor, a web browser, the tiled map editor, you can find it at mapeditor.org.

07:15.880 --> 07:21.500
And that's all you need to be able to generate a new game data and create custom content for your badge.

07:22.820 --> 07:24.200
That's really cool.

07:24.200 --> 07:46.680
And what's so cool about that is the barrier to entry for most people to reprogram a badge is you need to either A, fundamentally understand how the badge works from a hardware perspective, because you do hardware hacking on it, or you go, I need to understand this exact chipset and know how to code exactly for this chipset and do it in a way which isn't going to break the original badge functionality.

07:46.840 --> 08:02.740
With yours, and I hear it's a JSON object, and I can just feed it to something which is now going to compile a file, which I just load onto an SD card, drag and drop onto it, load it in, and it just loads it, and I can make my own maps for this.

08:02.740 --> 08:07.140
Yes, that's actually one of the things that we'd love to be able to let people know.

08:07.140 --> 08:09.540
You can make your own playable scenario in here.

08:09.540 --> 08:12.280
You can write your own story, and all you've got to know is JSON.

08:13.040 --> 08:14.140
That's really cool.

08:14.140 --> 08:24.720
The thing I was so impressed with your badge, in some ways, you make a badge to make money, to fund your hacker space, which is really cool.

08:24.720 --> 08:27.600
I love the fact that that's what you're using your badge for.

08:28.360 --> 08:35.500
Or other people, they make a badge because they want to make money with this, but they always hold something back.

08:35.660 --> 08:44.520
And with yours, it would be like the gameplay, because the gameplay is incredible, and the fact that you're editing hacks, you're doing it in the program, and you made a web browser version.

08:44.520 --> 08:54.840
That was legitimately the thing that made me go, you know what, I need to do a video on this, because they put the whole game in a web browser, that you can just go to GitHub, play it, and it's great.

08:54.840 --> 08:56.140
You can save games.

08:56.380 --> 09:04.000
And now you're telling me, not only have all that functionality, you don't even have to buy the badge in order to continue to customize it and make new content.

09:04.000 --> 09:07.200
Though, if you buy the badge, one, it's a lot more fun.

09:07.200 --> 09:09.420
You can bring in an airplane and things like that with you.

09:09.440 --> 09:17.620
On the other side of things, there's some element there, which I actually think is easier to edit the hacks, because you wouldn't be hitting the physical buttons.

09:17.900 --> 09:21.580
But also, the artwork is so cool on it.

09:21.580 --> 09:27.640
So I'm going to dive over, I'm going to go over to Mary, because you designed a lot of the artwork for this badge.

09:27.900 --> 09:28.520
Yeah.

09:28.660 --> 09:35.440
Say something specifically about actually how the web tool works into your workflow for creating the content.

09:37.840 --> 09:38.800
Workflow.

09:39.000 --> 09:44.640
It's just fast to rapidly prototype to get something functional to look at.

09:44.640 --> 09:48.140
Wait, you said something which just made me want to ask you a question.

09:48.140 --> 09:48.440
Yeah.

09:48.440 --> 09:54.400
Does the JSON I write, like I want to make a new map, can I impact the art in the badge?

09:54.700 --> 10:00.640
How it behaves, like how animations work, what things are called, what kinds of...

10:01.880 --> 10:05.280
I mean, yeah, you control everything in this thing.

10:05.280 --> 10:08.680
Like this menu right here, that's a map.

10:08.860 --> 10:09.300
Really?

10:09.300 --> 10:10.100
This is a map.

10:10.100 --> 10:13.820
The animations are entities, the options are just a dialogue.

10:13.960 --> 10:15.940
That's just controlled with JSON.

10:16.960 --> 10:23.800
Anything graphically weird going on, that's just normal in-game scripting features.

10:24.380 --> 10:25.920
That's really cool.

10:25.920 --> 10:29.020
So let's start, I want to spin back to the art of the badge.

10:29.020 --> 10:31.000
What parts of the art did you design?

10:31.000 --> 10:32.780
I did most of the sprite work.

10:32.780 --> 10:35.480
I think Corfid did that 3D model.

10:35.920 --> 10:38.180
Admiral did the rest of the 3D graphics.

10:38.180 --> 10:40.300
I did most of the sprite animations.

10:40.300 --> 10:46.620
Some of the environment art or the entity portraits in the dialogue, I did all of that.

10:47.160 --> 10:52.760
I also scripted pretty much everything, I guess, of the scenario.

10:52.760 --> 10:54.140
She wrote the entire story.

10:54.140 --> 10:55.760
She wrote the entire scenario.

10:55.980 --> 10:57.280
Most of it.

10:57.580 --> 11:03.300
She wrote all of the puzzles in our engine's scripting language.

11:03.900 --> 11:06.200
I'm not really a career programmer.

11:06.200 --> 11:08.380
I come from traditional art.

11:08.380 --> 11:12.560
But because the tooling was so easy to use, I just built the whole thing.

11:12.560 --> 11:15.140
I didn't need to learn C.

11:15.140 --> 11:17.800
It's so cool that you were able to just jump into the art.

11:17.840 --> 11:20.920
As you said, I've never done this before.

11:21.080 --> 11:24.920
That's one of the things I love about so many of the badges and things like this.

11:24.920 --> 11:27.760
I feel like that's a fundamental skill as hackers.

11:27.760 --> 11:31.240
It's like, I have no idea, but I'll figure it out.

11:31.240 --> 11:37.980
And usually, I'll figure it out in a very clever way, whether it's, like, we're going to modify JSON or things like that.

11:38.160 --> 11:48.620
But to be in charge of the entire story, because that's another thing a lot of badges don't have, is, like, one, a story, two, and quests, and then three, obviously, the artwork as well.

11:48.840 --> 11:53.240
Yeah, I do have some game development in my background.

11:53.240 --> 11:56.520
I got most of a degree in video games, I guess you could say.

11:56.520 --> 12:09.860
So I'm familiar with, like, how to scale back an MVP, how to handle playtesting, just prioritizing development, how to make a tutorial that doesn't feel like a tutorial, that kind of thing.

12:10.960 --> 12:13.780
That was one thing which massively impressed me with the badge.

12:13.780 --> 12:20.380
So when you're going through the badge, you wake up, you follow the two, I guess, ghosts type of thing.

12:20.860 --> 12:22.100
Ghouls, I don't know what they are.

12:22.260 --> 12:25.760
But they bring you back to a room, which then you have to RTFM.

12:25.760 --> 12:27.040
You have to read the effing manual.

12:27.040 --> 12:34.320
But you pick an item, which was just so clever, but you go into this room, and then it felt fun learning how to play a game.

12:34.320 --> 12:39.660
It's really boring to go, oh, and if you open up a hex editor, you then can do this.

12:39.660 --> 12:43.460
And if you open up the hex editor and change these bits, it could have been so boring.

12:43.620 --> 12:54.900
But there is a whole, like, you find these books, you open up these books, it gives a reason and a story, and then there's even, like, and these other two bits, we don't know what they really do, but you probably don't want to touch them.

12:54.900 --> 12:57.140
And obviously the first thing you do is totally touch them.

12:59.060 --> 13:04.600
With that one, can you tell me some of the process that went to creating the art?

13:04.600 --> 13:09.480
When you wanted to make these decisions, there's so much that goes into it.

13:09.500 --> 13:13.220
When did you start, how long did the story take you to write?

13:15.000 --> 13:16.300
I'm not sure.

13:16.300 --> 13:22.740
To be honest, I did a ton of graphics without even knowing what kind of game it would be, which is why there's a lot of monsters.

13:22.740 --> 13:25.320
Because we thought it would be, like, more of a normal RPG.

13:25.580 --> 13:29.700
And I just wanted an excuse to draw things that didn't need a walk cycle.

13:29.700 --> 13:32.880
And that's why so many of them, like, float or just glide around.

13:32.880 --> 13:34.860
We were just kind of spitballing.

13:36.000 --> 13:40.740
And then eventually, like, oh, we need village elders, and then I started drawing people, or...

13:41.800 --> 13:42.640
Yeah, I don't know.

13:43.460 --> 13:45.260
Oh, that's so cool.

13:45.340 --> 13:50.060
So with that, what else am I missing on this badge that we really need to be aware of?

13:50.060 --> 13:54.400
Oh, man, there's so many secret conversations.

13:54.400 --> 13:57.580
I really tried to anticipate people sequence-breaking this.

13:57.760 --> 14:07.180
And I would just love more people to try to, like, do weird stuff out of order, or, like, try to just talk to NPCs over and over again, because what they say does change quite a lot.

14:07.540 --> 14:08.420
Okay.

14:09.200 --> 14:10.420
Yeah, there's tons of stuff.

14:10.420 --> 14:11.940
I'm sure no one's found yet.

14:12.260 --> 14:13.680
That's incredible.

14:13.680 --> 14:17.060
All right, what else do you have for us as some final thoughts?

14:17.060 --> 14:31.020
Well, I guess one of the last things I'd like to say about it is keep your eyes on this project for another couple of years, because our first revision of the hardware is, like, that's it.

14:31.020 --> 14:31.880
That's what we're doing.

14:31.880 --> 14:35.600
We're going to continue releasing software on this for another couple of years.

14:35.720 --> 14:39.920
We've got two more chapters planned past the one that we're working on now.

14:39.960 --> 14:44.540
So chapter one is what people already have in their hands right now.

14:44.540 --> 14:46.540
We are working on chapter two.

14:46.540 --> 14:48.760
We'll have it done eventually.

14:49.460 --> 14:52.160
But then we also plan on releasing chapters two and three.

14:52.160 --> 14:59.580
More features of the badge hardware will get unlocked, and you'll engage with them to solve puzzles for the upcoming chapters.

14:59.580 --> 15:00.320
Wait , hold on.

15:00.320 --> 15:02.980
So there's features on the badge that you're not currently using.

15:02.980 --> 15:04.360
What are some of those?

15:04.360 --> 15:16.960
Well, currently the gameplay doesn't use the SD card slot at all, but we actually have plans for an entire castle worth of puzzles for fucking around with the file system.

15:17.440 --> 15:17.800
Really?

15:17.800 --> 15:18.440
Yeah.

15:18.440 --> 15:19.580
Any other ones?

15:19.580 --> 15:21.320
Any other sensors or things like that?

15:21.320 --> 15:21.620
Let's see.

15:21.620 --> 15:30.720
The chapter two that we're coming up with right now, you get to plug a USB-C cable in here, and you actually get to engage with the serial console.

15:31.360 --> 15:33.900
So it'll be kind of a text-based adventure.

15:33.900 --> 15:37.900
We're going to play around and see what's actually fun to engage with there.

15:38.700 --> 15:41.220
And then there's some other stuff that...

15:41.220 --> 15:42.220
Oh, wait, hold on.

15:42.220 --> 15:43.420
Do you have the new artboard?

15:43.420 --> 15:44.100
No.

15:44.100 --> 15:45.400
Not yet, not yet.

15:45.420 --> 15:57.880
Redacted's been super busy actually creating the challenge for the DEFCON badge itself, but he's actually the one who made the new artboard that we're releasing this year, whenever he can get it manufactured.

15:57.940 --> 16:00.300
Yeah, that is a cool one.

16:00.300 --> 16:00.980
I released it.

16:00.980 --> 16:02.940
That came out, I think, afterwards.

16:02.940 --> 16:04.420
I think I got a picture of it.

16:04.420 --> 16:08.180
But the artboard was really, really cool.

16:08.240 --> 16:09.400
Well, hey, thank you so much.

16:09.400 --> 16:12.520
Thanks for diving into the badge and so many of the other features of it.

16:12.520 --> 16:14.860
Like, really cool badge.

16:14.860 --> 16:15.520
Go check it out.

16:15.520 --> 16:21.520
I'll leave links in the description of where you can find this badge and hear more about the DC-801 project.

16:21.520 --> 16:23.620
As always, thanks for watching.

16:23.620 --> 16:25.300
And hack on!

