1 00:00:00,000 --> 00: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. 2 00:00:18,540 --> 00:00:21,680 So first, thank you so much for joining me. 3 00:00:21,680 --> 00:00:26,860 Again, Admiral Potato, what were you responsible for, just for anyone who's watching, for this badge? 4 00:00:26,860 --> 00:00:27,440 Oh, sure. 5 00:00:27,440 --> 00: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. 6 00:00:39,200 --> 00:00:44,760 I feel like I was kind of the one who was pushing a lot of other people to put effort in. 7 00:00:45,140 --> 00: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. 8 00:01:07,900 --> 00:01:11,020 And I would imagine, though, like, that's not an easy task. 9 00:01:11,020 --> 00:01:15,520 I mean, it's a double layer, there's multiple layers to the board, there's lots of complexities. 10 00:01:15,700 --> 00:01:19,860 This wasn't an afternoon project, this was multiple years in the making. 11 00:01:19,860 --> 00:01:21,680 How big was the team which worked on it? 12 00:01:21,680 --> 00:01:28,040 Well, so Hamster, he actually has made all... 13 00:01:28,040 --> 00:01:33,340 He's done the electrical engineering for all of the DC-801 badges that I am aware of. 14 00:01:33,340 --> 00: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. 15 00:01:39,220 --> 00:01:41,360 So Hamster does the electrical engineering. 16 00:01:42,900 --> 00:01:52,480 We have Bash Ninja and Pips, who are kind of just like there to kind of guide the whole organization. 17 00:01:54,380 --> 00:01:57,780 They mostly handle finance and promotion these days. 18 00:01:58,440 --> 00: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. 19 00:02:07,660 --> 00:02:12,380 It's almost kind of one of those situations where I was asking questions and everybody else was burned out. 20 00:02:12,380 --> 00:02:14,920 And so they're like, well, what ideas have you got? 21 00:02:14,920 --> 00:02:16,840 And I said, let me play around with some stuff. 22 00:02:17,140 --> 00:02:17,580 Okay. 23 00:02:18,540 --> 00:02:23,460 And so by playing around with a couple of different ideas... 24 00:02:23,980 --> 00:02:28,120 I think it was actually Bash who suggested, well, what if we pick a character that's like the Black Mage? 25 00:02:28,120 --> 00:02:30,700 And I was like, that's sweet, what can we do with it? 26 00:02:31,600 --> 00:02:34,360 Nobody else had any ideas, I said, oh shit, I got it, guys. 27 00:02:35,050 --> 00: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. 28 00:02:48,740 --> 00:02:49,620 Everybody was sold. 29 00:02:49,620 --> 00:02:52,340 I was like, okay, I guess I have to make it happen. 30 00:02:52,340 --> 00: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. 31 00:03:01,560 --> 00:03:07,460 And then you said, hold on, we're also going to put quests in it, which are unique to the game. 32 00:03:07,460 --> 00:03:09,280 And then we're going to put items in it, which are unique to the game. 33 00:03:09,280 --> 00:03:12,320 And then we're going to put graphics and images, which are all like... 34 00:03:12,320 --> 00:03:17,160 So many people think the art on all of these badges is just magically done. 35 00:03:17,960 --> 00:03:18,800 Yeah, there we go. 36 00:03:18,800 --> 00:03:20,160 And we're going to come to the art. 37 00:03:20,160 --> 00: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. 38 00:03:31,560 --> 00:03:32,360 That is true. 39 00:03:32,360 --> 00:03:33,260 That's actually... 40 00:03:34,600 --> 00:03:36,040 Oh, me? 41 00:03:36,660 --> 00:03:38,160 So, okay. 42 00:03:38,160 --> 00:03:41,380 That's actually a really important part. 43 00:03:42,060 --> 00: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. 44 00:03:56,240 --> 00: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. 45 00:04:15,720 --> 00:04:20,200 One of the things that was... that was hard for me to get into. 46 00:04:20,200 --> 00: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. 47 00:04:33,760 --> 00: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. 48 00:04:43,800 --> 00:04:45,020 I said, this is bullshit. 49 00:04:45,020 --> 00: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. 50 00:04:50,360 --> 00:04:56,400 So what we actually did is we actually built a virtual machine that had all the tooling built in. 51 00:04:56,400 --> 00:04:59,180 Like literally you turn it on, there's like three scripts on the desktop. 52 00:04:59,180 --> 00:05:06,400 Pull the latest from source control, make a build of the game, and open it up and play it. 53 00:05:06,680 --> 00: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. 54 00:05:18,120 --> 00: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. 55 00:05:29,680 --> 00:05:31,580 I said, guys, I know what to do with this. 56 00:05:33,340 --> 00:05:39,380 The plan that actually worked out really well was to take it so that... 57 00:05:39,380 --> 00:05:42,600 make it so that the... how do I put this? 58 00:05:42,600 --> 00:05:45,020 The engine... 59 00:05:46,660 --> 00:05:48,580 is data-driven. 60 00:05:49,100 --> 00:05:52,100 You have a scenario.dat file. 61 00:05:52,960 --> 00:05:56,740 And you can copy that onto the badge with an SD card. 62 00:05:57,000 --> 00:06:02,200 And depending on which scenario.dat you put in there, you could be playing a completely different game. 63 00:06:02,200 --> 00:06:03,260 Oh, wow. 64 00:06:03,660 --> 00:06:05,380 Like a completely different scenario. 65 00:06:05,380 --> 00:06:08,200 All the engine stuff is there, like the hex editor. 66 00:06:08,200 --> 00: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. 67 00:06:28,460 --> 00:06:29,920 But you can tell a completely different story. 68 00:06:29,920 --> 00:06:31,160 You can have completely different maps. 69 00:06:31,160 --> 00:06:35,140 You can have different dialogue, different characters, different everything. 70 00:06:35,140 --> 00:06:37,680 You can all control this one file. 71 00:06:38,500 --> 00:06:43,360 So, our C source code reads the scenario data. 72 00:06:44,080 --> 00:06:46,380 And that's the game that you play. 73 00:06:46,380 --> 00: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. 74 00:07:05,460 --> 00: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. 75 00:07:15,880 --> 00: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. 76 00:07:22,820 --> 00:07:24,200 That's really cool. 77 00:07:24,200 --> 00: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. 78 00:07:46,840 --> 00: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. 79 00:08:02,740 --> 00:08:07,140 Yes, that's actually one of the things that we'd love to be able to let people know. 80 00:08:07,140 --> 00:08:09,540 You can make your own playable scenario in here. 81 00:08:09,540 --> 00:08:12,280 You can write your own story, and all you've got to know is JSON. 82 00:08:13,040 --> 00:08:14,140 That's really cool. 83 00:08:14,140 --> 00: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. 84 00:08:24,720 --> 00:08:27,600 I love the fact that that's what you're using your badge for. 85 00:08:28,360 --> 00:08:35,500 Or other people, they make a badge because they want to make money with this, but they always hold something back. 86 00:08:35,660 --> 00: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. 87 00:08:44,520 --> 00: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. 88 00:08:54,840 --> 00:08:56,140 You can save games. 89 00:08:56,380 --> 00: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. 90 00:09:04,000 --> 00:09:07,200 Though, if you buy the badge, one, it's a lot more fun. 91 00:09:07,200 --> 00:09:09,420 You can bring in an airplane and things like that with you. 92 00:09:09,440 --> 00: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. 93 00:09:17,900 --> 00:09:21,580 But also, the artwork is so cool on it. 94 00:09:21,580 --> 00: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. 95 00:09:27,900 --> 00:09:28,520 Yeah. 96 00:09:28,660 --> 00:09:35,440 Say something specifically about actually how the web tool works into your workflow for creating the content. 97 00:09:37,840 --> 00:09:38,800 Workflow. 98 00:09:39,000 --> 00:09:44,640 It's just fast to rapidly prototype to get something functional to look at. 99 00:09:44,640 --> 00:09:48,140 Wait, you said something which just made me want to ask you a question. 100 00:09:48,140 --> 00:09:48,440 Yeah. 101 00:09:48,440 --> 00:09:54,400 Does the JSON I write, like I want to make a new map, can I impact the art in the badge? 102 00:09:54,700 --> 00:10:00,640 How it behaves, like how animations work, what things are called, what kinds of... 103 00:10:01,880 --> 00:10:05,280 I mean, yeah, you control everything in this thing. 104 00:10:05,280 --> 00:10:08,680 Like this menu right here, that's a map. 105 00:10:08,860 --> 00:10:09,300 Really? 106 00:10:09,300 --> 00:10:10,100 This is a map. 107 00:10:10,100 --> 00:10:13,820 The animations are entities, the options are just a dialogue. 108 00:10:13,960 --> 00:10:15,940 That's just controlled with JSON. 109 00:10:16,960 --> 00:10:23,800 Anything graphically weird going on, that's just normal in-game scripting features. 110 00:10:24,380 --> 00:10:25,920 That's really cool. 111 00:10:25,920 --> 00:10:29,020 So let's start, I want to spin back to the art of the badge. 112 00:10:29,020 --> 00:10:31,000 What parts of the art did you design? 113 00:10:31,000 --> 00:10:32,780 I did most of the sprite work. 114 00:10:32,780 --> 00:10:35,480 I think Corfid did that 3D model. 115 00:10:35,920 --> 00:10:38,180 Admiral did the rest of the 3D graphics. 116 00:10:38,180 --> 00:10:40,300 I did most of the sprite animations. 117 00:10:40,300 --> 00:10:46,620 Some of the environment art or the entity portraits in the dialogue, I did all of that. 118 00:10:47,160 --> 00:10:52,760 I also scripted pretty much everything, I guess, of the scenario. 119 00:10:52,760 --> 00:10:54,140 She wrote the entire story. 120 00:10:54,140 --> 00:10:55,760 She wrote the entire scenario. 121 00:10:55,980 --> 00:10:57,280 Most of it. 122 00:10:57,580 --> 00:11:03,300 She wrote all of the puzzles in our engine's scripting language. 123 00:11:03,900 --> 00:11:06,200 I'm not really a career programmer. 124 00:11:06,200 --> 00:11:08,380 I come from traditional art. 125 00:11:08,380 --> 00:11:12,560 But because the tooling was so easy to use, I just built the whole thing. 126 00:11:12,560 --> 00:11:15,140 I didn't need to learn C. 127 00:11:15,140 --> 00:11:17,800 It's so cool that you were able to just jump into the art. 128 00:11:17,840 --> 00:11:20,920 As you said, I've never done this before. 129 00:11:21,080 --> 00:11:24,920 That's one of the things I love about so many of the badges and things like this. 130 00:11:24,920 --> 00:11:27,760 I feel like that's a fundamental skill as hackers. 131 00:11:27,760 --> 00:11:31,240 It's like, I have no idea, but I'll figure it out. 132 00:11:31,240 --> 00: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. 133 00:11:38,160 --> 00: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. 134 00:11:48,840 --> 00:11:53,240 Yeah, I do have some game development in my background. 135 00:11:53,240 --> 00:11:56,520 I got most of a degree in video games, I guess you could say. 136 00:11:56,520 --> 00: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. 137 00:12:10,960 --> 00:12:13,780 That was one thing which massively impressed me with the badge. 138 00:12:13,780 --> 00:12:20,380 So when you're going through the badge, you wake up, you follow the two, I guess, ghosts type of thing. 139 00:12:20,860 --> 00:12:22,100 Ghouls, I don't know what they are. 140 00:12:22,260 --> 00:12:25,760 But they bring you back to a room, which then you have to RTFM. 141 00:12:25,760 --> 00:12:27,040 You have to read the effing manual. 142 00:12:27,040 --> 00: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. 143 00:12:34,320 --> 00:12:39,660 It's really boring to go, oh, and if you open up a hex editor, you then can do this. 144 00:12:39,660 --> 00:12:43,460 And if you open up the hex editor and change these bits, it could have been so boring. 145 00:12:43,620 --> 00: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. 146 00:12:54,900 --> 00:12:57,140 And obviously the first thing you do is totally touch them. 147 00:12:59,060 --> 00:13:04,600 With that one, can you tell me some of the process that went to creating the art? 148 00:13:04,600 --> 00:13:09,480 When you wanted to make these decisions, there's so much that goes into it. 149 00:13:09,500 --> 00:13:13,220 When did you start, how long did the story take you to write? 150 00:13:15,000 --> 00:13:16,300 I'm not sure. 151 00:13:16,300 --> 00: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. 152 00:13:22,740 --> 00:13:25,320 Because we thought it would be, like, more of a normal RPG. 153 00:13:25,580 --> 00:13:29,700 And I just wanted an excuse to draw things that didn't need a walk cycle. 154 00:13:29,700 --> 00:13:32,880 And that's why so many of them, like, float or just glide around. 155 00:13:32,880 --> 00:13:34,860 We were just kind of spitballing. 156 00:13:36,000 --> 00:13:40,740 And then eventually, like, oh, we need village elders, and then I started drawing people, or... 157 00:13:41,800 --> 00:13:42,640 Yeah, I don't know. 158 00:13:43,460 --> 00:13:45,260 Oh, that's so cool. 159 00:13:45,340 --> 00:13:50,060 So with that, what else am I missing on this badge that we really need to be aware of? 160 00:13:50,060 --> 00:13:54,400 Oh, man, there's so many secret conversations. 161 00:13:54,400 --> 00:13:57,580 I really tried to anticipate people sequence-breaking this. 162 00:13:57,760 --> 00: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. 163 00:14:07,540 --> 00:14:08,420 Okay. 164 00:14:09,200 --> 00:14:10,420 Yeah, there's tons of stuff. 165 00:14:10,420 --> 00:14:11,940 I'm sure no one's found yet. 166 00:14:12,260 --> 00:14:13,680 That's incredible. 167 00:14:13,680 --> 00:14:17,060 All right, what else do you have for us as some final thoughts? 168 00:14:17,060 --> 00: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. 169 00:14:31,020 --> 00:14:31,880 That's what we're doing. 170 00:14:31,880 --> 00:14:35,600 We're going to continue releasing software on this for another couple of years. 171 00:14:35,720 --> 00:14:39,920 We've got two more chapters planned past the one that we're working on now. 172 00:14:39,960 --> 00:14:44,540 So chapter one is what people already have in their hands right now. 173 00:14:44,540 --> 00:14:46,540 We are working on chapter two. 174 00:14:46,540 --> 00:14:48,760 We'll have it done eventually. 175 00:14:49,460 --> 00:14:52,160 But then we also plan on releasing chapters two and three. 176 00:14:52,160 --> 00: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. 177 00:14:59,580 --> 00:15:00,320 Wait , hold on. 178 00:15:00,320 --> 00:15:02,980 So there's features on the badge that you're not currently using. 179 00:15:02,980 --> 00:15:04,360 What are some of those? 180 00:15:04,360 --> 00: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. 181 00:15:17,440 --> 00:15:17,800 Really? 182 00:15:17,800 --> 00:15:18,440 Yeah. 183 00:15:18,440 --> 00:15:19,580 Any other ones? 184 00:15:19,580 --> 00:15:21,320 Any other sensors or things like that? 185 00:15:21,320 --> 00:15:21,620 Let's see. 186 00:15:21,620 --> 00: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. 187 00:15:31,360 --> 00:15:33,900 So it'll be kind of a text-based adventure. 188 00:15:33,900 --> 00:15:37,900 We're going to play around and see what's actually fun to engage with there. 189 00:15:38,700 --> 00:15:41,220 And then there's some other stuff that... 190 00:15:41,220 --> 00:15:42,220 Oh, wait, hold on. 191 00:15:42,220 --> 00:15:43,420 Do you have the new artboard? 192 00:15:43,420 --> 00:15:44,100 No. 193 00:15:44,100 --> 00:15:45,400 Not yet, not yet. 194 00:15:45,420 --> 00: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. 195 00:15:57,940 --> 00:16:00,300 Yeah, that is a cool one. 196 00:16:00,300 --> 00:16:00,980 I released it. 197 00:16:00,980 --> 00:16:02,940 That came out, I think, afterwards. 198 00:16:02,940 --> 00:16:04,420 I think I got a picture of it. 199 00:16:04,420 --> 00:16:08,180 But the artboard was really, really cool. 200 00:16:08,240 --> 00:16:09,400 Well, hey, thank you so much. 201 00:16:09,400 --> 00:16:12,520 Thanks for diving into the badge and so many of the other features of it. 202 00:16:12,520 --> 00:16:14,860 Like, really cool badge. 203 00:16:14,860 --> 00:16:15,520 Go check it out. 204 00:16:15,520 --> 00: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. 205 00:16:21,520 --> 00:16:23,620 As always, thanks for watching. 206 00:16:23,620 --> 00:16:25,300 And hack on!