1 00:00:00,000 --> 00:00:00,360 2 00:00:00,360 --> 00:00:00,567 SPEAKER: All right. 3 00:00:00,567 --> 00:00:01,275 Hello, everybody. 4 00:00:01,275 --> 00:00:03,150 This is the CS50 games track. 5 00:00:03,150 --> 00:00:05,730 This is CS50, I should say. 6 00:00:05,730 --> 00:00:07,830 And this is the Super Mario Brothers half 7 00:00:07,830 --> 00:00:09,630 of the track where we take a sort of break 8 00:00:09,630 --> 00:00:11,970 away from the rectangles and text of Pong, which is 9 00:00:11,970 --> 00:00:13,710 starting to get a little bit austere-- 10 00:00:13,710 --> 00:00:16,752 although the nice music we add at the end helped things out a little bit. 11 00:00:16,752 --> 00:00:19,980 And we're going to dive into much more colorful graphics, specifically 12 00:00:19,980 --> 00:00:22,780 in this case, raster graphics, bitmap graphics. 13 00:00:22,780 --> 00:00:26,140 So in this case, PNG files is what we're going to be using as our sprite sheet 14 00:00:26,140 --> 00:00:26,640 here. 15 00:00:26,640 --> 00:00:29,098 And you can see we have an alien creature instead of Mario. 16 00:00:29,098 --> 00:00:32,100 So we're not really using the Mario assets per se. 17 00:00:32,100 --> 00:00:35,182 We're really using something that's a little bit more open source. 18 00:00:35,182 --> 00:00:36,390 But the same idea holds true. 19 00:00:36,390 --> 00:00:38,110 We have tiles there at the bottom of the screen. 20 00:00:38,110 --> 00:00:38,880 We have an avatar. 21 00:00:38,880 --> 00:00:42,480 We have blocks that you can jump and hit, which we'll look at later on. 22 00:00:42,480 --> 00:00:44,010 We've got clouds and bushes. 23 00:00:44,010 --> 00:00:46,115 Using the same sort of texture actually, as we'll 24 00:00:46,115 --> 00:00:48,990 take a look at that's what they did for the actual Mario game itself, 25 00:00:48,990 --> 00:00:51,278 Super Mario Brothers interestingly. 26 00:00:51,278 --> 00:00:53,070 But yeah, and we'll also take a look at how 27 00:00:53,070 --> 00:00:56,040 to generate a level like this randomly, procedurally. 28 00:00:56,040 --> 00:00:59,790 So not truly random in that sense, but in a way that makes it 29 00:00:59,790 --> 00:01:01,740 look like it was handcrafted. 30 00:01:01,740 --> 00:01:04,709 Some of the topics, again just to reiterate, spreadsheets and raster 31 00:01:04,709 --> 00:01:08,712 graphics instead of rectangles and text, purely text. 32 00:01:08,712 --> 00:01:10,920 We'll look at tile maps and how to actually represent 33 00:01:10,920 --> 00:01:14,925 a game world using numbers essentially, which map to the sprite sheet 34 00:01:14,925 --> 00:01:16,050 that we're going to import. 35 00:01:16,050 --> 00:01:18,467 And we're going to chop it up into little bits and pieces, 36 00:01:18,467 --> 00:01:22,475 and then map the numbers to sort of quads, rectangles of that sprite sheet. 37 00:01:22,475 --> 00:01:24,600 We'll look at how to implement gravity and jumping, 38 00:01:24,600 --> 00:01:27,750 so our avatar can emulate what a platformer feels like. 39 00:01:27,750 --> 00:01:30,940 Animation such that the avatar isn't just a static image moving around, 40 00:01:30,940 --> 00:01:34,200 but actually looks like it's walking and has a jump animation, et cetera. 41 00:01:34,200 --> 00:01:37,260 And again, procedural generation for how to actually generate levels 42 00:01:37,260 --> 00:01:40,500 so we don't have to go into a level editor and handwrite all the levels 43 00:01:40,500 --> 00:01:42,350 ourselves. 44 00:01:42,350 --> 00:01:42,864