Importing Particles, Scenery, and Items
?
?

Keyboard Navigation

Global Keys

[, < / ], > Jump to previous / next episode
W, K, P / S, J, N Jump to previous / next marker
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 Movement

a
w
s
d
h j k l


Quotes and References Menus

Enter Jump to timecode

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:01Recap and set the stage for the day sprucing up the asset system
🗩
0:01Recap and set the stage for the day sprucing up the asset system
🗩
0:01Recap and set the stage for the day sprucing up the asset system
🗩
6:38Crash on the GetFontInfo() call in InitializeUI()
🏃
6:38Crash on the GetFontInfo() call in InitializeUI()
🏃
6:38Crash on the GetFontInfo() call in InitializeUI()
🏃
7:12Determine to investigate the problem with segoeui.hht
🗩
7:12Determine to investigate the problem with segoeui.hht
🗩
7:12Determine to investigate the problem with segoeui.hht
🗩
9:19Step in to GetFontInfo() to see that it could not find our font
🏃
9:19Step in to GetFontInfo() to see that it could not find our font
🏃
9:19Step in to GetFontInfo() to see that it could not find our font
🏃
10:40Reacquaint ourselves with the tagging of font assets from ParseFontBlock()
📖
10:40Reacquaint ourselves with the tagging of font assets from ParseFontBlock()
📖
10:40Reacquaint ourselves with the tagging of font assets from ParseFontBlock()
📖
14:18Check out the base_game.hha dump in TabView, to find no font
🗹
14:18Check out the base_game.hha dump in TabView, to find no font
🗹
14:18Check out the base_game.hha dump in TabView, to find no font
🗹
17:22Step in to ParseFontBlock() to find that parsing fails on encountering a negative floating point kerning value
🏃
17:22Step in to ParseFontBlock() to find that parsing fails on encountering a negative floating point kerning value
🏃
17:22Step in to ParseFontBlock() to find that parsing fails on encountering a negative floating point kerning value
🏃
19:56Investigate why we are putting negative values into the HorizontalAdvance table1,2
📖
19:56Investigate why we are putting negative values into the HorizontalAdvance table1,2
📖
19:56Investigate why we are putting negative values into the HorizontalAdvance table1,2
📖
25:57Fix LoadGlyphBitmap() to compute the AlignPercentage and KerningChange in (signed) 32-bit floating point space
25:57Fix LoadGlyphBitmap() to compute the AlignPercentage and KerningChange in (signed) 32-bit floating point space
25:57Fix LoadGlyphBitmap() to compute the AlignPercentage and KerningChange in (signed) 32-bit floating point space
27:23Regenerate our Segoe UI assets, to find that SegoeUI.hht contains purely positive Kerning values
🗹
27:23Regenerate our Segoe UI assets, to find that SegoeUI.hht contains purely positive Kerning values
🗹
27:23Regenerate our Segoe UI assets, to find that SegoeUI.hht contains purely positive Kerning values
🗹
29:54Successfully find the font, and take a close look at its alpha blending and tight kerning
🏃
29:54Successfully find the font, and take a close look at its alpha blending and tight kerning
🏃
29:54Successfully find the font, and take a close look at its alpha blending and tight kerning
🏃
34:04Swap our font back to Liberation Mono
🗹
34:04Swap our font back to Liberation Mono
🗹
34:04Swap our font back to Liberation Mono
🗹
34:28Find that Liberation Mono is loaded okay
🏃
34:28Find that Liberation Mono is loaded okay
🏃
34:28Find that Liberation Mono is loaded okay
🏃
34:54Prevent GAME_UPDATE_AND_RENDER() from playing the music
34:54Prevent GAME_UPDATE_AND_RENDER() from playing the music
34:54Prevent GAME_UPDATE_AND_RENDER() from playing the music
35:27Determine to address asset tagging, noting that our floors are erroneously stone
🏃
35:27Determine to address asset tagging, noting that our floors are erroneously stone
🏃
35:27Determine to address asset tagging, noting that our floors are erroneously stone
🏃
36:50Investigate why our stone texture is never getting selected
📖
36:50Investigate why our stone texture is never getting selected
📖
36:50Investigate why our stone texture is never getting selected
📖
40:38Add a breakable place in UpdateAndRenderEntities() when matching Tag_Grass
40:38Add a breakable place in UpdateAndRenderEntities() when matching Tag_Grass
40:38Add a breakable place in UpdateAndRenderEntities() when matching Tag_Grass
41:34Break in to UpdateAndRenderEntities() to see how the Grass tag gets matched
🏃
41:34Break in to UpdateAndRenderEntities() to see how the Grass tag gets matched
🏃
41:34Break in to UpdateAndRenderEntities() to see how the Grass tag gets matched
🏃
44:16Fix GenerateRoom() to only apply the Manmade tag if the room is not outdoors
44:16Fix GenerateRoom() to only apply the Manmade tag if the room is not outdoors
44:16Fix GenerateRoom() to only apply the Manmade tag if the room is not outdoors
45:23Find that our grass texture is correctly applied, and determine to furnish the world
🏃
45:23Find that our grass texture is correctly applied, and determine to furnish the world
🏃
45:23Find that our grass texture is correctly applied, and determine to furnish the world
🏃
47:11Peruse our art and consider respecifying obstacles, splitting them into their own files
🗹
47:11Peruse our art and consider respecifying obstacles, splitting them into their own files
🗹
47:11Peruse our art and consider respecifying obstacles, splitting them into their own files
🗹
51:52Start to add our obstacles to base_game.hht
🗹
51:52Start to add our obstacles to base_game.hht
🗹
51:52Start to add our obstacles to base_game.hht
🗹
53:01Split out the red armchair into its own file, including a new green variant
🎨
53:01Split out the red armchair into its own file, including a new green variant
🎨
53:01Split out the red armchair into its own file, including a new green variant
🎨
1:02:30Split out the table lamp into its own file
🎨
1:02:30Split out the table lamp into its own file
🎨
1:02:30Split out the table lamp into its own file
🎨
1:04:03Consider how to categorise the forestry
🎨
1:04:03Consider how to categorise the forestry
🎨
1:04:03Consider how to categorise the forestry
🎨
1:07:12Split out and arrange the ground cover foliage into separate files
🎨
1:07:12Split out and arrange the ground cover foliage into separate files
🎨
1:07:12Split out and arrange the ground cover foliage into separate files
🎨
1:15:32Delete our obsolete art files, and add our new packs to base_game.hht
🗹
1:15:32Delete our obsolete art files, and add our new packs to base_game.hht
🗹
1:15:32Delete our obsolete art files, and add our new packs to base_game.hht
🗹
1:23:34Enable ParseTopLevelBlock() to handle "particle" and "scenery" blocks, introducing CreateArtParticleTagGrid(), CreateArtItemTagGrid() and CreateArtSceneryTagGrid()
1:23:34Enable ParseTopLevelBlock() to handle "particle" and "scenery" blocks, introducing CreateArtParticleTagGrid(), CreateArtItemTagGrid() and CreateArtSceneryTagGrid()
1:23:34Enable ParseTopLevelBlock() to handle "particle" and "scenery" blocks, introducing CreateArtParticleTagGrid(), CreateArtItemTagGrid() and CreateArtSceneryTagGrid()
1:37:15Encounter an "unrecognised tag name" parsing error
🏃
1:37:15Encounter an "unrecognised tag name" parsing error
🏃
1:37:15Encounter an "unrecognised tag name" parsing error
🏃
1:37:46Add a Hat tag
1:37:46Add a Hat tag
1:37:46Add a Hat tag
1:38:09Successfully import our assets
🏃
1:38:09Successfully import our assets
🏃
1:38:09Successfully import our assets
🏃
1:38:23Check out the base_game.hha dump in TabView
🗹
1:38:23Check out the base_game.hha dump in TabView
🗹
1:38:23Check out the base_game.hha dump in TabView
🗹
1:40:11Make AddPlayer() add a hat
1:40:11Make AddPlayer() add a hat
1:40:11Make AddPlayer() add a hat
1:41:48Find that our hero's head sadly lacks a hat
🏃
1:41:48Find that our hero's head sadly lacks a hat
🏃
1:41:48Find that our hero's head sadly lacks a hat
🏃
1:42:03Make AddPlayer() connect the hat to the head
1:42:03Make AddPlayer() connect the hat to the head
1:42:03Make AddPlayer() connect the hat to the head
1:43:21Find that our hero's head still sadly lacks a hat
🏃
1:43:21Find that our hero's head still sadly lacks a hat
🏃
1:43:21Find that our hero's head still sadly lacks a hat
🏃
1:43:35Add an alignment point for TopOfHead and see the hat appear
🏃
1:43:35Add an alignment point for TopOfHead and see the hat appear
🏃
1:43:35Add an alignment point for TopOfHead and see the hat appear
🏃
1:45:58View the hats to see that their orientations do not match the template
🗹
1:45:58View the hats to see that their orientations do not match the template
🗹
1:45:58View the hats to see that their orientations do not match the template
🗹
1:46:39Investigate why the hat is absent when we are facing downwards
🏃
1:46:39Investigate why the hat is absent when we are facing downwards
🏃
1:46:39Investigate why the hat is absent when we are facing downwards
🏃
1:48:11Note that the FacingDirection is being set the same and that we imported too many assets from item_hat_03.png
🗹
1:48:11Note that the FacingDirection is being set the same and that we imported too many assets from item_hat_03.png
🗹
1:48:11Note that the FacingDirection is being set the same and that we imported too many assets from item_hat_03.png
🗹
1:49:49Take a close look at item_hat_03.png
🎨
1:49:49Take a close look at item_hat_03.png
🎨
1:49:49Take a close look at item_hat_03.png
🎨
1:53:29Make AddPlayer() add the Cook tag
1:53:29Make AddPlayer() add the Cook tag
1:53:29Make AddPlayer() add the Cook tag
1:53:54Check out our cook's appearance and set the alignment points
🏃
1:53:54Check out our cook's appearance and set the alignment points
🏃
1:53:54Check out our cook's appearance and set the alignment points
🏃
1:57:52Q&A
🗩
1:57:52Q&A
🗩
1:57:52Q&A
🗩
1:58:23victorn Q: Was Michael Abrash around during your time at RAD?
🗪
1:58:23victorn Q: Was Michael Abrash around during your time at RAD?
🗪
1:58:23victorn Q: Was Michael Abrash around during your time at RAD?
🗪
1:58:41frostyninja Q: Copy pasta snafu with the variant using YIndex instead of XIndex in the scenery tag grid
🗪
1:58:41frostyninja Q: Copy pasta snafu with the variant using YIndex instead of XIndex in the scenery tag grid
🗪
1:58:41frostyninja Q: Copy pasta snafu with the variant using YIndex instead of XIndex in the scenery tag grid
🗪
1:58:57Fix typo in CreateArtSceneryTagGrid()
1:58:57Fix typo in CreateArtSceneryTagGrid()
1:58:57Fix typo in CreateArtSceneryTagGrid()
1:59:05thepr1ms Q: How about "ornaments" for the oriented furniture instead of "scenery"?
🗪
1:59:05thepr1ms Q: How about "ornaments" for the oriented furniture instead of "scenery"?
🗪
1:59:05thepr1ms Q: How about "ornaments" for the oriented furniture instead of "scenery"?
🗪
1:59:18nordicplayer Q: I'm creating an OpenGL engine in C#. I really enjoy the language and I'm enjoying the process, but should I just go move to C++?
🗪
1:59:18nordicplayer Q: I'm creating an OpenGL engine in C#. I really enjoy the language and I'm enjoying the process, but should I just go move to C++?
🗪
1:59:18nordicplayer Q: I'm creating an OpenGL engine in C#. I really enjoy the language and I'm enjoying the process, but should I just go move to C++?
🗪
2:01:00guybru5h_vi Q: What's your learning method when faced with a new topic? How do you juggle figuring things out yourself vs reading a textbook. My problem is wanting to move quickly but also wanting to learn deeply
🗪
2:01:00guybru5h_vi Q: What's your learning method when faced with a new topic? How do you juggle figuring things out yourself vs reading a textbook. My problem is wanting to move quickly but also wanting to learn deeply
🗪
2:01:00guybru5h_vi Q: What's your learning method when faced with a new topic? How do you juggle figuring things out yourself vs reading a textbook. My problem is wanting to move quickly but also wanting to learn deeply
🗪
2:03:40theomarest Q: Do you have an official code style guide anywhere?
🗪
2:03:40theomarest Q: Do you have an official code style guide anywhere?
🗪
2:03:40theomarest Q: Do you have an official code style guide anywhere?
🗪
2:03:56alex_deak Q: Hi from Hungary! I took your advice you gave me last week and started a blog3 to get involved in the game industry. It contains a few posts already, and some description of my earlier projects. Maybe worth reading sometime
🗪
2:03:56alex_deak Q: Hi from Hungary! I took your advice you gave me last week and started a blog3 to get involved in the game industry. It contains a few posts already, and some description of my earlier projects. Maybe worth reading sometime
🗪
2:03:56alex_deak Q: Hi from Hungary! I took your advice you gave me last week and started a blog3 to get involved in the game industry. It contains a few posts already, and some description of my earlier projects. Maybe worth reading sometime
🗪
2:08:30frostyninja Q: Hi from Bulgaria (er UK now)! I’m starting an internship in July at a game studio and I’m super excited and I feel I owe you a lot of gratitude for keeping me excited about game dev!
🗪
2:08:30frostyninja Q: Hi from Bulgaria (er UK now)! I’m starting an internship in July at a game studio and I’m super excited and I feel I owe you a lot of gratitude for keeping me excited about game dev!
🗪
2:08:30frostyninja Q: Hi from Bulgaria (er UK now)! I’m starting an internship in July at a game studio and I’m super excited and I feel I owe you a lot of gratitude for keeping me excited about game dev!
🗪
2:09:27Brian Q: Greetings Casey! You have a distinct coding style and though I realize you may have evolved into it over the years, I was wondering if there was there something specific that directed you? It could even have been you did not like other styles. I know you appreciate good typography too so I wonder if some of your decisions were based on what you like
🗪
2:09:27Brian Q: Greetings Casey! You have a distinct coding style and though I realize you may have evolved into it over the years, I was wondering if there was there something specific that directed you? It could even have been you did not like other styles. I know you appreciate good typography too so I wonder if some of your decisions were based on what you like
🗪
2:09:27Brian Q: Greetings Casey! You have a distinct coding style and though I realize you may have evolved into it over the years, I was wondering if there was there something specific that directed you? It could even have been you did not like other styles. I know you appreciate good typography too so I wonder if some of your decisions were based on what you like
🗪
2:12:20xxthebigfoxx Q: You deleted an X
🗪
2:12:20xxthebigfoxx Q: You deleted an X
🗪
2:12:20xxthebigfoxx Q: You deleted an X
🗪
2:12:22Re-fix typo in CreateArtSceneryTagGrid()
2:12:22Re-fix typo in CreateArtSceneryTagGrid()
2:12:22Re-fix typo in CreateArtSceneryTagGrid()
2:12:28theomarest Q: Are u32, f32, etc. aliases or supported by the language?
🗪
2:12:28theomarest Q: Are u32, f32, etc. aliases or supported by the language?
🗪
2:12:28theomarest Q: Are u32, f32, etc. aliases or supported by the language?
🗪
2:12:59Thank George for fixing our reported remedybg bugs
🗩
2:12:59Thank George for fixing our reported remedybg bugs
🗩
2:12:59Thank George for fixing our reported remedybg bugs
🗩
2:15:17alexkelbo Q: When porting to other platforms, do you have to rewrite all your shaders in HLSL and Metal SL? Is there a way to transpile GLSL?
🗪
2:15:17alexkelbo Q: When porting to other platforms, do you have to rewrite all your shaders in HLSL and Metal SL? Is there a way to transpile GLSL?
🗪
2:15:17alexkelbo Q: When porting to other platforms, do you have to rewrite all your shaders in HLSL and Metal SL? Is there a way to transpile GLSL?
🗪
2:17:15Plug Jon's talk 'Preventing the Collapse of Civilization' from DevGAMM Moscow 20194
🗩
2:17:15Plug Jon's talk 'Preventing the Collapse of Civilization' from DevGAMM Moscow 20194
🗩
2:17:15Plug Jon's talk 'Preventing the Collapse of Civilization' from DevGAMM Moscow 20194
🗩
2:22:47Wrap it up
🗩
2:22:47Wrap it up
🗩
2:22:47Wrap it up
🗩