[video 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]