Checking for File Date Changes
?
?

Keyboard Navigation

Global Keys

[, < / ], > Jump to previous / next episode
W, K, P / S, J, N Jump to previous / next timestamp
t / T Toggle theatre / SUPERtheatre mode
V Revert filter to original state Y Select link (requires manual Ctrl-c)

Menu toggling

q Quotes r References f Filter y Link c Credits

In-Menu and Index Controls

a
w
s
d
h j k l


Esc Close menu / unfocus timestamp

Quotes and References Menus and Index

Enter Jump to timestamp

Quotes, References and Credits Menus

o Open URL (in new tab)

Filter Menu

x, Space Toggle category and focus next
X, ShiftSpace Toggle category and focus previous
v Invert topics / media as per focus

Filter and Link Menus

z Toggle filter / linking mode

Credits Menu

Enter Open URL (in new tab)
0:00Recap and set the stage for the day integrating our PNG reader into the game
🗩
0:00Recap and set the stage for the day integrating our PNG reader into the game
🗩
0:00Recap and set the stage for the day integrating our PNG reader into the game
🗩
2:53Consult our current asset loading code with a view to storing assets more smartly
📖
2:53Consult our current asset loading code with a view to storing assets more smartly
📖
2:53Consult our current asset loading code with a view to storing assets more smartly
📖
8:04Walk through our asset struct, and consider removing asset_memory_header
📖
8:04Walk through our asset struct, and consider removing asset_memory_header
📖
8:04Walk through our asset struct, and consider removing asset_memory_header
📖
10:11Walk through our hha_asset and game_assets structs, with a few words on tagging and tag array expandability
📖
10:11Walk through our hha_asset and game_assets structs, with a few words on tagging and tag array expandability
📖
10:11Walk through our hha_asset and game_assets structs, with a few words on tagging and tag array expandability
📖
16:39Dive into watching files for changes, introducing watched_file
16:39Dive into watching files for changes, introducing watched_file
16:39Dive into watching files for changes, introducing watched_file
19:05Consider the structure of character_template.png and take a look at character_mummy.png in Paint 3D
🎨
19:05Consider the structure of character_template.png and take a look at character_mummy.png in Paint 3D
🎨
19:05Consider the structure of character_template.png and take a look at character_mummy.png in Paint 3D
🎨
22:05Add AssetIndices structural information to watched_file
22:05Add AssetIndices structural information to watched_file
22:05Add AssetIndices structural information to watched_file
27:38Set up watched_file for hashing into a list, consider moving to fixed sized blocks for performant texture memory use, and store the source location in assets
27:38Set up watched_file for hashing into a list, consider moving to fixed sized blocks for performant texture memory use, and store the source location in assets
27:38Set up watched_file for hashing into a list, consider moving to fixed sized blocks for performant texture memory use, and store the source location in assets
33:13Determine to reload assets on a key-press, with a few words on dedicating a core of a developer's machine to reloading
🗩
33:13Determine to reload assets on a key-press, with a few words on dedicating a core of a developer's machine to reloading
🗩
33:13Determine to reload assets on a key-press, with a few words on dedicating a core of a developer's machine to reloading
🗩
35:40Introduce CheckForArtChanges(), renaming watched_file to asset_source_file
35:40Introduce CheckForArtChanges(), renaming watched_file to asset_source_file
35:40Introduce CheckForArtChanges(), renaming watched_file to asset_source_file
39:06Open character_skeleton.png in Paint 3D, and try and paint in 3D
🎨
39:06Open character_skeleton.png in Paint 3D, and try and paint in 3D
🎨
39:06Open character_skeleton.png in Paint 3D, and try and paint in 3D
🎨
42:46Check out character_orphan_09.png in GIMP and consider annotating it with additional information
🎨
42:46Check out character_orphan_09.png in GIMP and consider annotating it with additional information
🎨
42:46Check out character_orphan_09.png in GIMP and consider annotating it with additional information
🎨
45:08Set up to store our additional information in the hha file
45:08Set up to store our additional information in the hha file
45:08Set up to store our additional information in the hha file
47:59Enable CheckForArtChanges() to hash file names using a newly introduced UpdateStringHash()
47:59Enable CheckForArtChanges() to hash file names using a newly introduced UpdateStringHash()
47:59Enable CheckForArtChanges() to hash file names using a newly introduced UpdateStringHash()
54:44Null-termination vs Length + Pointer
🖌
54:44Null-termination vs Length + Pointer
🖌
54:44Null-termination vs Length + Pointer
🖌
58:33Parsing regions of strings
🖌
58:33Parsing regions of strings
🖌
58:33Parsing regions of strings
🖌
1:04:18Introduce buffer struct and Advance()
1:04:18Introduce buffer struct and Advance()
1:04:18Introduce buffer struct and Advance()
1:09:16Ask after Mr4thDimention, noting that 4coder sometimes jumps to the second error in the stream
🗩
1:09:16Ask after Mr4thDimention, noting that 4coder sometimes jumps to the second error in the stream
🗩
1:09:16Ask after Mr4thDimention, noting that 4coder sometimes jumps to the second error in the stream
🗩
1:10:06Continue to propagate our buffer struct to all interested parties
1:10:06Continue to propagate our buffer struct to all interested parties
1:10:06Continue to propagate our buffer struct to all interested parties
1:12:11Run the PNG reader to make sure nothing broke
🏃
1:12:11Run the PNG reader to make sure nothing broke
🏃
1:12:11Run the PNG reader to make sure nothing broke
🏃
1:12:51Fix WriteImageTopDownRGBA() to output the alpha layer the right way up
1:12:51Fix WriteImageTopDownRGBA() to output the alpha layer the right way up
1:12:51Fix WriteImageTopDownRGBA() to output the alpha layer the right way up
1:14:11Run it to see that the alpha is the right way up
🏃
1:14:11Run it to see that the alpha is the right way up
🏃
1:14:11Run it to see that the alpha is the right way up
🏃
1:14:56Enable CheckForArtChanges() to parse out pieces of our file names
1:14:56Enable CheckForArtChanges() to parse out pieces of our file names
1:14:56Enable CheckForArtChanges() to parse out pieces of our file names
1:20:18Set up CheckForArtChanges() to match loaded files against known files, making the platform layer lowercase file names using a newly introduced ToLowercase()
1:20:18Set up CheckForArtChanges() to match loaded files against known files, making the platform layer lowercase file names using a newly introduced ToLowercase()
1:20:18Set up CheckForArtChanges() to match loaded files against known files, making the platform layer lowercase file names using a newly introduced ToLowercase()
1:29:48Enable CheckForArtChanges() to initialise unknown files
1:29:48Enable CheckForArtChanges() to initialise unknown files
1:29:48Enable CheckForArtChanges() to initialise unknown files
1:33:19Set up CheckForArtChanges() to process individual assets, calling a stubbed out UpdateAssetPackageFromPNG()
1:33:19Set up CheckForArtChanges() to process individual assets, calling a stubbed out UpdateAssetPackageFromPNG()
1:33:19Set up CheckForArtChanges() to process individual assets, calling a stubbed out UpdateAssetPackageFromPNG()
1:42:03Enable CheckForArtChanges() to (de)allocate memory for each block
1:42:03Enable CheckForArtChanges() to (de)allocate memory for each block
1:42:03Enable CheckForArtChanges() to (de)allocate memory for each block
1:44:12Change CheckForArtChanges() to use a temporary memory arena with a view to implementing UpdateAssetPackageFromPNG() tomorrow
1:44:12Change CheckForArtChanges() to use a temporary memory arena with a view to implementing UpdateAssetPackageFromPNG() tomorrow
1:44:12Change CheckForArtChanges() to use a temporary memory arena with a view to implementing UpdateAssetPackageFromPNG() tomorrow
1:46:33Q&A
🗩
1:46:33Q&A
🗩
1:46:33Q&A
🗩
1:47:19dustygazongas Q: Thoughts on the use of persistent memory, e.g. Intel Optane, in game programming?
🗪
1:47:19dustygazongas Q: Thoughts on the use of persistent memory, e.g. Intel Optane, in game programming?
🗪
1:47:19dustygazongas Q: Thoughts on the use of persistent memory, e.g. Intel Optane, in game programming?
🗪
1:48:52mmozeiko Q: Are you sure always lowering filename to lowercase is a good solution? Because case-sensitivity is a feature of filesystem, not whole OS. On NTFS you can enable case-sensitivity individually per folder. You can mount NTFS disk on Linux / Mac. And on Apple HFS+ or APFS can be both - case sensitive or case insensitive, depends on how you format it
🗪
1:48:52mmozeiko Q: Are you sure always lowering filename to lowercase is a good solution? Because case-sensitivity is a feature of filesystem, not whole OS. On NTFS you can enable case-sensitivity individually per folder. You can mount NTFS disk on Linux / Mac. And on Apple HFS+ or APFS can be both - case sensitive or case insensitive, depends on how you format it
🗪
1:48:52mmozeiko Q: Are you sure always lowering filename to lowercase is a good solution? Because case-sensitivity is a feature of filesystem, not whole OS. On NTFS you can enable case-sensitivity individually per folder. You can mount NTFS disk on Linux / Mac. And on Apple HFS+ or APFS can be both - case sensitive or case insensitive, depends on how you format it
🗪
1:49:59longboolean Q: I can't remember, are the bitmap assets stored next to the audio and font glyph assets in memory? May be relevant if those are not the same size as the bitmaps?
🗪
1:49:59longboolean Q: I can't remember, are the bitmap assets stored next to the audio and font glyph assets in memory? May be relevant if those are not the same size as the bitmaps?
🗪
1:49:59longboolean Q: I can't remember, are the bitmap assets stored next to the audio and font glyph assets in memory? May be relevant if those are not the same size as the bitmaps?
🗪
1:51:24puremouron Q: What's the mnemonic device used in "umm"? I get that it's a size_t, but what does umm stand for? Quite a few people on the stream ask
🗪
1:51:24puremouron Q: What's the mnemonic device used in "umm"? I get that it's a size_t, but what does umm stand for? Quite a few people on the stream ask
🗪
1:51:24puremouron Q: What's the mnemonic device used in "umm"? I get that it's a size_t, but what does umm stand for? Quite a few people on the stream ask
🗪
1:52:53bkboggy Q: Thoughts on use of Vulkan for a 2.5D game like this? Is it an overkill or is there a benefit?
🗪
1:52:53bkboggy Q: Thoughts on use of Vulkan for a 2.5D game like this? Is it an overkill or is there a benefit?
🗪
1:52:53bkboggy Q: Thoughts on use of Vulkan for a 2.5D game like this? Is it an overkill or is there a benefit?
🗪
1:57:02somebody_took_my_name Q: I think you meant to add to String->Count when Scan[0] != '_', just below the code on screen (CheckForArtChanges)
🗪
1:57:02somebody_took_my_name Q: I think you meant to add to String->Count when Scan[0] != '_', just below the code on screen (CheckForArtChanges)
🗪
1:57:02somebody_took_my_name Q: I think you meant to add to String->Count when Scan[0] != '_', just below the code on screen (CheckForArtChanges)
🗪
1:57:37Fix typo in CheckForArtChanges()
1:57:37Fix typo in CheckForArtChanges()
1:57:37Fix typo in CheckForArtChanges()
1:58:27sopvop Q: I've been listening to early episodes of Jeff and Casey podcast and want to ask if you feel guilty for giving EA all the advice which they definitely follow?
🗪
1:58:27sopvop Q: I've been listening to early episodes of Jeff and Casey podcast and want to ask if you feel guilty for giving EA all the advice which they definitely follow?
🗪
1:58:27sopvop Q: I've been listening to early episodes of Jeff and Casey podcast and want to ask if you feel guilty for giving EA all the advice which they definitely follow?
🗪
1:59:10centhusiast Q: Thanks a lot for all these great educational materials. They are very inspiring! Could you explain why OpenGL is a state machine?
🗪
1:59:10centhusiast Q: Thanks a lot for all these great educational materials. They are very inspiring! Could you explain why OpenGL is a state machine?
🗪
1:59:10centhusiast Q: Thanks a lot for all these great educational materials. They are very inspiring! Could you explain why OpenGL is a state machine?
🗪
1:59:43Brian Q: Why Scan[1] == 0 and not Scan[0] == 0?
🗪
1:59:43Brian Q: Why Scan[1] == 0 and not Scan[0] == 0?
🗪
1:59:43Brian Q: Why Scan[1] == 0 and not Scan[0] == 0?
🗪
2:03:02tavqua Q: Is the answer still no to doing my Comp Sci homework for me?
🗪
2:03:02tavqua Q: Is the answer still no to doing my Comp Sci homework for me?
🗪
2:03:02tavqua Q: Is the answer still no to doing my Comp Sci homework for me?
🗪
2:03:11Brian Q: Ah, okay. Sorry, I missed the *Scan check first, which of course would mean that Scan[0] == 0 would never happen
🗪
2:03:11Brian Q: Ah, okay. Sorry, I missed the *Scan check first, which of course would mean that Scan[0] == 0 would never happen
🗪
2:03:11Brian Q: Ah, okay. Sorry, I missed the *Scan check first, which of course would mean that Scan[0] == 0 would never happen
🗪
2:03:17vtlmks Q: A bit off-topic, but are there any intrinsics for bit-interleaving? I can't find on the Intel intrinsics webpage, but was thinking that they might not have named it "interleave" or some such
🗪
2:03:17vtlmks Q: A bit off-topic, but are there any intrinsics for bit-interleaving? I can't find on the Intel intrinsics webpage, but was thinking that they might not have named it "interleave" or some such
🗪
2:03:17vtlmks Q: A bit off-topic, but are there any intrinsics for bit-interleaving? I can't find on the Intel intrinsics webpage, but was thinking that they might not have named it "interleave" or some such
🗪
2:03:53bkboggy Q: Once the game is completed (and I know it may take a long while to get there) are there any plans to do similar educational series? If so, what would it be?
🗪
2:03:53bkboggy Q: Once the game is completed (and I know it may take a long while to get there) are there any plans to do similar educational series? If so, what would it be?
🗪
2:03:53bkboggy Q: Once the game is completed (and I know it may take a long while to get there) are there any plans to do similar educational series? If so, what would it be?
🗪
2:04:01kelimion Q: Should those pieces also be passed to UpdateAssetPackagrFromPNG()? As far as I can tell you're parsing them out but not using them
🗪
2:04:01kelimion Q: Should those pieces also be passed to UpdateAssetPackagrFromPNG()? As far as I can tell you're parsing them out but not using them
🗪
2:04:01kelimion Q: Should those pieces also be passed to UpdateAssetPackagrFromPNG()? As far as I can tell you're parsing them out but not using them
🗪
2:04:53vtlmks Q: Yes, every other bit1
🗪
2:04:53vtlmks Q: Yes, every other bit1
🗪
2:04:53vtlmks Q: Yes, every other bit1
🗪
2:12:25Brian Q: I seemed to have missed a lot of the memory arena work, but when you create a temp memory arena, where do you pass in the original memory that you've allocated? Normally I would think global variable, but if in the game layer, that would get reset when you reloaded, correct?
🗪
2:12:25Brian Q: I seemed to have missed a lot of the memory arena work, but when you create a temp memory arena, where do you pass in the original memory that you've allocated? Normally I would think global variable, but if in the game layer, that would get reset when you reloaded, correct?
🗪
2:12:25Brian Q: I seemed to have missed a lot of the memory arena work, but when you create a temp memory arena, where do you pass in the original memory that you've allocated? Normally I would think global variable, but if in the game layer, that would get reset when you reloaded, correct?
🗪
2:12:53jeffpheonix Q: I don't know if this has been asked before, but would you consider having your VODs do reruns on days you aren't going to stream?
🗪
2:12:53jeffpheonix Q: I don't know if this has been asked before, but would you consider having your VODs do reruns on days you aren't going to stream?
🗪
2:12:53jeffpheonix Q: I don't know if this has been asked before, but would you consider having your VODs do reruns on days you aren't going to stream?
🗪
2:13:20strihex Q: On my day to day I find myself using std::string very often. Should I write my own string library or what other options would you recommend? If so how do I handle allocations (a single huge allocation doesn't seem to be the right choice since I'm not writing a game)
🗪
2:13:20strihex Q: On my day to day I find myself using std::string very often. Should I write my own string library or what other options would you recommend? If so how do I handle allocations (a single huge allocation doesn't seem to be the right choice since I'm not writing a game)
🗪
2:13:20strihex Q: On my day to day I find myself using std::string very often. Should I write my own string library or what other options would you recommend? If so how do I handle allocations (a single huge allocation doesn't seem to be the right choice since I'm not writing a game)
🗪
2:15:11gg_nate Q: On the topic of VODs, i was curious why you don't have your past broadcasts saved on twitch. Say someone misses something you said / wrote and wants to go back and listen / watch quickly there's no way to do that until the VOD is uploaded on YouTube
🗪
2:15:11gg_nate Q: On the topic of VODs, i was curious why you don't have your past broadcasts saved on twitch. Say someone misses something you said / wrote and wants to go back and listen / watch quickly there's no way to do that until the VOD is uploaded on YouTube
🗪
2:15:11gg_nate Q: On the topic of VODs, i was curious why you don't have your past broadcasts saved on twitch. Say someone misses something you said / wrote and wants to go back and listen / watch quickly there's no way to do that until the VOD is uploaded on YouTube
🗪
2:15:29zakedodead Q: In a semi-related thought to GG_Nate , have you ever considered using a program that overlays the twitch chat into OBS? I see entertainment focused streamers using them and it's really nice for when they reference something from chat and you're watching the YouTube upload of the stream
🗪
2:15:29zakedodead Q: In a semi-related thought to GG_Nate , have you ever considered using a program that overlays the twitch chat into OBS? I see entertainment focused streamers using them and it's really nice for when they reference something from chat and you're watching the YouTube upload of the stream
🗪
2:15:29zakedodead Q: In a semi-related thought to GG_Nate , have you ever considered using a program that overlays the twitch chat into OBS? I see entertainment focused streamers using them and it's really nice for when they reference something from chat and you're watching the YouTube upload of the stream
🗪
2:15:49gg_nate Q: Months ago when you were implementing intrinsics, you added one that uses an SSE4.2 instruction. This isn't supported by most older AMD chips (like mine). Will you consider a work-around for this?
🗪
2:15:49gg_nate Q: Months ago when you were implementing intrinsics, you added one that uses an SSE4.2 instruction. This isn't supported by most older AMD chips (like mine). Will you consider a work-around for this?
🗪
2:15:49gg_nate Q: Months ago when you were implementing intrinsics, you added one that uses an SSE4.2 instruction. This isn't supported by most older AMD chips (like mine). Will you consider a work-around for this?
🗪
2:16:24Wind it down with a plug of the new Watch page2 and its integrated Annotated Guide and hotlinks
🗩
2:16:24Wind it down with a plug of the new Watch page2 and its integrated Annotated Guide and hotlinks
🗩
2:16:24Wind it down with a plug of the new Watch page2 and its integrated Annotated Guide and hotlinks
🗩