[video output=day135 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Typed Asset Arrays" vod_platform=youtube id=meU5RI3J1wc annotator=Miblo] [2:20][Recap the creation of handmade_asset.cpp] [4:35][handmade_asset.cpp: Make the arrayed assets go through the asset system] [5:31][Provide a stable way to define AlignX and TopDownAlignY with the bitmaps] [9:10][handmade_asset.cpp: Remove superfluous asset types] [10:17][Debugger: Read out the alignments for the bitmaps] [10:50][handmade_asset.cpp: Replace AlignX and TopDownAlignY with AlignPercentage for each asset type] [12:08][Remove this DEBUGLoadBMP call and edit an earlier DEBUGLoadBMP call to take into account these changes to AlignPercentage] [12:46][Get rid of TopDownAlign] [13:27][Run the game] [13:50][Consider our current options for cleaning this up while we still don't have a pack file] [15:05][handmade_asset.h: Change the structure of asset_bitmap_info] [16:46][handmade_asset.cpp: Allocate a ton of bitmaps for testing purposes] [17:13][Introduce DEBUGAddBitmapInfo] [19:39][Create assets dynamically in AllocateGameAssets] [22:47][Pull out BeginAssetType, AddBitmapAsset and EndAssetType into functions] [25:47][handmade.h: TODO(casey): Optional "clear" parameter!!!!] [26:10][handmade_asset.cpp: Continue writing these functions] [29:45][Debugger: Step through these functions] [33:45][Run the game] [33:59][handmade_asset.cpp: Get the Grass, Tuft and Stone bitmaps using this new system] [34:53][handmade.cpp: Introduce id-based picking of assets] [36:33][handmade_asset.cpp: Introduce RandomAssetFrom] [38:18][Run the game] [39:18][Debugger: See what the asset tables look like] [39:57][handmade_asset.cpp: Add the first asset in RandomAssetFrom] [40:53][Run the game and note the absence of trees] [42:24][handmade.cpp: Investigate this absence of trees] [43:27][handmade_asset.cpp: Determine whether LoadBitmap is thread-safe] [44:37][Use the asset_bitmap_info table] [45:53][handmade.cpp: Re-enable PushBitmap] [46:36][Debugger: Step through LoadBitmap and RandomAssetFrom] [48:19][Inspect the assets] [49:57][handmade_asset.cpp: Add the Choice rather than the Count in RandomAssetFrom] [50:34][Run the game and wonder why it was failing] [51:46][handmade_asset.cpp: Finish off the asset array set] [52:33][handmade.cpp: Set Stamp from RandomAssetFrom] [53:46][Run and note the absence of ground chunks] [54:21][handmade.cpp: Write the fail case for AllResourcesPresent] [55:24][Debugger: Look through FillGroundChunk] [56:11][handmade.cpp: Setup RenderGroup, Buffer and Task near the top of FillGroundChunk] [56:56][Run the game and recap today's progress] [58:05][Q&A][:speech] [58:42][@noxy_key][What do you mean when you say to write "usage code first"? Also, is there any special handling of Asset 0? I am unclear on this] [1:00:45][@garlandobloom][You used some uint32_t in t here instead of uint32] [1:01:41][@miblo][Are you expecting a new batch of art from Yangtian?] [1:02:01][@ciastek3214][Are you gonna eventually downgrade the graphics to stir up some controversy and get the game talked about on NeoGAF and Reddit?] [1:03:12][@johnicholas][What are some example changes to the gameplay that would require changes to the tags?] [1:03:53][@biolumonix][What certifications do you have?] [1:04:24][@rgseaug77][Do you ever feel sleepy when it's taking you a long time to solve a bug?] [1:04:41][@butwhynot1][Are you going to show the asset pipeline tools programming on stream?] [1:05:32][@poohshoes][I missed the pre-stream. Did you talk about APIs like you said you would on twitter?] [1:05:51][@mojobojo][What reason is there to use size_t other than int32 or uint32?] [1:07:00][@ciastek3214][Do you plan on implementing HTC Vive and Lighthouse support for whatever reason?] [1:07:32][@twiebs][If the asset pipeline won't be done on stream, will you still release the source for it?] [1:08:43][@corujanova][Will you do a separate isolated session on databases (mentioned yesterday)? I would love to hear your thoughts on that] [1:09:12][@poohshoes][Will you talk about APIs now?] [1:09:30][@garlandobloom][HTC is handing you $500,000: are you doing Vive support now? Hmm? HMMM??] [1:10:49][@ciastek3214][Will you accept Chromatic Aberration as the best post-processing thing ever conceived?] [1:12:51][@gasto5][Why don't you support DirectInput8 for supporting good old USB controllers, instead of just Xbox360 controllers?] [1:13:36][@cubercaleb][If the people in this chat collectively give you $500K, will you implement VR?] [1:14:07][Rant: APIs, with the assistance of Dependency Walker] [1:27:45][@ciastek3214][Seems to me nobody at Microsoft has any idea about why Windows is still even working properly] [1:32:23][@gasto5][Isn't the huge amount of the dependencies an inevitability of complex software like a modern full OS for productivity desktop?] [1:35:33][@sssmcgrath][Do you know that your channel runs ads for an eSports gambling site?] [1:36:29][Wrap it up][:speech] [/video]