[video output=day090 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Bases Part I" vod_platform=youtube id=lcmjmOfWPNU annotator=Miblo annotator=dspecht annotator=ZedZull]
[1:45][Take a look at where we're at]
[2:05][Make lowercase the accessors for the vectors]
[6:20][Casey doesn't have enough Emacs-fu to bust that out][quote 45]
[9:00][Find out if it worked]
[9:30][Resume work on RenderGroup structure, implementing Clear]
[10:47][Make DrawRectangle take A which defaults to 1.0f]
[11:21][Make the Clear call take its values from render_entry_clear]
[11:57][Make Clear function]
[12:41][Change R, G, B, A in render_entry_clear to Color]
[12:54][Cleanup]
[13:07][Review progress and glimpse into the future]
[13:39][Ensure that everything's working in-game]
[14:00][Turn off the GroundBuffers and the 'conditional expression is constant' warning]
[15:05][Consider what we haven't moved over into the renderer (Outline calls) and note that FillGroundChunk calls the bitmap routines directly, rather than the renderer]
[16:00][Put PushRectOutline and DrawRectangleOutline into the renderer as more specific concepts]
[19:44][Run, crash and update PushRectOutline]
[20:33][View the results in-game and add back in the Space lines]
[21:37][Make FillGroundChunk go through the renderer]
[22:59][Introduce GroundRenderGroup]
[23:36][Let FillGroundChunk use the RenderGroup]
[25:44][Put in a Clear to verify that things are actually happening]
[26:26][Change DrawBitmap to PushBitmap and make it use that renderer syntax]
[26:52][Consider supporting pixel positioning]
[28:34][View the splatting in-game]
[28:52][Cheese the pixel positioning by replacing MetersToPixels with 1.0f]
[29:34][Showcase the live code editing by scaling the placement of the ground elements]
[31:05][Blackboard: Introduce the concept of coordinate systems and bases]
[32:55][Blackboard: How we measure, using the dot product]
[34:24][Blackboard: Axes tend to have two properties: 1) Unit length]
[36:03][Blackboard: ...and 2) Orthogonal]
[36:33][Blackboard: Linear independence]
[38:13][Blackboard: Forget about linear independence]
[39:12][Blackboard: Orthogonality]
[42:48][Blackboard: Linear independence]
[44:40][Blackboard: There's linear algebra afoot here][quote 46]
[44:54][Blackboard: See why these are important properties]
[45:26][Blackboard: 3D coordinates]
[47:14][Blackboard: Basis vectors]
[50:11][Blackboard: Basis changes: 'MetersToPixels' and 'negate y']
[55:30][Blackboard: Pretend we had some third universal basis]
[57:29][Blackboard: How does Casey move a point from world space into screen space?]
[1:01:17][Blackboard: Preview what we're going to do]
[1:03:08][Q&A][:speech]
[1:03:41][@mr4thdimention][Would you represent the origin of coordinate systems in a universal coordinate system?]
[1:06:25][@nicstop][A few streams ago you said you'd prefer to call functions through a macro and then forgot to explain why]
[1:07:06][@e10dee4d][Why is the familiar moving left to right, or did I miss something?]
[1:07:32][@cubercaleb][Why are computer coordinates upside-down?]
[1:12:30][@twinduoq][How important is it to know how to make a game engine vs simply using one? And if you were to use DirectX libraries, how much would the code differ?]
[1:21:06][Wrap it up with a brief recap and a glimpse into the future][:speech]
[/video]
