Making a Grid-based Layout Helper
?
?

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
🗩
0:00Recap and set the stage for the day
🗩
0:00Recap and set the stage for the day
🗩
0:34Demo the current state of our world apron, with the determination to semantically codify our world tiles to help produce that apron
🏃
0:34Demo the current state of our world apron, with the determination to semantically codify our world tiles to help produce that apron
🏃
0:34Demo the current state of our world apron, with the determination to semantically codify our world tiles to help produce that apron
🏃
6:30Codifying world tiles such that they may be queried in a more semantic fashion
📖
6:30Codifying world tiles such that they may be queried in a more semantic fashion
📖
6:30Codifying world tiles such that they may be queried in a more semantic fashion
📖
9:54Begin to semantically codify world tiles, tentatively introducing gen_tile_volume
9:54Begin to semantically codify world tiles, tentatively introducing gen_tile_volume
9:54Begin to semantically codify world tiles, tentatively introducing gen_tile_volume
16:13Work on the semantic codification of world tiles, backwards from the usage code in GenerateApron(), introducing an edit_grid struct, BeginGridEdit() and EndGridEdit()
16:13Work on the semantic codification of world tiles, backwards from the usage code in GenerateApron(), introducing an edit_grid struct, BeginGridEdit() and EndGridEdit()
16:13Work on the semantic codification of world tiles, backwards from the usage code in GenerateApron(), introducing an edit_grid struct, BeginGridEdit() and EndGridEdit()
31:06Create handmade_edit_grid.h, and introduce MakeRelative(), GetMinZCenterP(), and stubbed out GetVolumeFromMinZ(), IterateTiles(), IsValid() and Advance() for edit grids and tiles
31:06Create handmade_edit_grid.h, and introduce MakeRelative(), GetMinZCenterP(), and stubbed out GetVolumeFromMinZ(), IterateTiles(), IsValid() and Advance() for edit grids and tiles
31:06Create handmade_edit_grid.h, and introduce MakeRelative(), GetMinZCenterP(), and stubbed out GetVolumeFromMinZ(), IterateTiles(), IsValid() and Advance() for edit grids and tiles
35:57Implement BeginGridEdit(), augmenting edit_grid as required
35:57Implement BeginGridEdit(), augmenting edit_grid as required
35:57Implement BeginGridEdit(), augmenting edit_grid as required
46:31Respecify IterateTiles() as IterateAsPlanarTiles()
46:31Respecify IterateTiles() as IterateAsPlanarTiles()
46:31Respecify IterateTiles() as IterateAsPlanarTiles()
49:20Implement the edit_tile version of IsValid(), introducing a version of IsInVolume() that takes a gen_v3, and IsInArrayBounds()
49:20Implement the edit_tile version of IsValid(), introducing a version of IsInVolume() that takes a gen_v3, and IsInArrayBounds()
49:20Implement the edit_tile version of IsValid(), introducing a version of IsInVolume() that takes a gen_v3, and IsInArrayBounds()
54:00Implement the edit_tile version of Advance(), IterateAsPlanarTiles() and GetMinZCenterP()
54:00Implement the edit_tile version of Advance(), IterateAsPlanarTiles() and GetMinZCenterP()
54:00Implement the edit_tile version of Advance(), IterateAsPlanarTiles() and GetMinZCenterP()
56:40Consider our options for codifying the offsetting of room volumes vs their entities
📖
56:40Consider our options for codifying the offsetting of room volumes vs their entities
📖
56:40Consider our options for codifying the offsetting of room volumes vs their entities
📖
58:50Specify that room volumes are not offset from 0, 0, 0, introducing GetTotalVolume()
58:50Specify that room volumes are not offset from 0, 0, 0, introducing GetTotalVolume()
58:50Specify that room volumes are not offset from 0, 0, 0, introducing GetTotalVolume()
1:02:51#include handmade_edit_grid.cpp and handmade_edit_grid.h, finish up the edit_grid struct and fix compile errors in the new edit_grid code
1:02:51#include handmade_edit_grid.cpp and handmade_edit_grid.h, finish up the edit_grid struct and fix compile errors in the new edit_grid code
1:02:51#include handmade_edit_grid.cpp and handmade_edit_grid.h, finish up the edit_grid struct and fix compile errors in the new edit_grid code
1:08:59Port the existing GenerateRoom() code over to the new codified tile edit_grid scheme, introducing a version of GetTile() that takes an edit_tile, IsOnEdge() and GetAbsoluteTileIndex()
1:08:59Port the existing GenerateRoom() code over to the new codified tile edit_grid scheme, introducing a version of GetTile() that takes an edit_tile, IsOnEdge() and GetAbsoluteTileIndex()
1:08:59Port the existing GenerateRoom() code over to the new codified tile edit_grid scheme, introducing a version of GetTile() that takes an edit_tile, IsOnEdge() and GetAbsoluteTileIndex()
1:20:40Introduce GetRoomVolume(), GetRoomMinWorldP() and GetRoomMaxWorldP() for GenerateRoom() to call
1:20:40Introduce GetRoomVolume(), GetRoomMinWorldP() and GetRoomMaxWorldP() for GenerateRoom() to call
1:20:40Introduce GetRoomVolume(), GetRoomMinWorldP() and GetRoomMaxWorldP() for GenerateRoom() to call
1:24:30Find that our tile grid codification enables our world apron generation to work perfectly first time, but that rooms are failing to be paged in
🏃
1:24:30Find that our tile grid codification enables our world apron generation to work perfectly first time, but that rooms are failing to be paged in
🏃
1:24:30Find that our tile grid codification enables our world apron generation to work perfectly first time, but that rooms are failing to be paged in
🏃
1:26:25Change GenerateRoom() to position the camera in the center of rooms, to enable correct paging in of rooms as we traverse the world
1:26:25Change GenerateRoom() to position the camera in the center of rooms, to enable correct paging in of rooms as we traverse the world
1:26:25Change GenerateRoom() to position the camera in the center of rooms, to enable correct paging in of rooms as we traverse the world
1:26:56Find that our camera is now fixed
🏃
1:26:56Find that our camera is now fixed
🏃
1:26:56Find that our camera is now fixed
🏃
1:27:36Disable the collision box debug visualisation
1:27:36Disable the collision box debug visualisation
1:27:36Disable the collision box debug visualisation
1:27:56Traverse the world, and see gaps in our world's apron
🏃
1:27:56Traverse the world, and see gaps in our world's apron
🏃
1:27:56Traverse the world, and see gaps in our world's apron
🏃
1:30:34Make GenerateApron() shrink the test tile when checking for overlapping entities, to try and avoid floating-point precision issues
1:30:34Make GenerateApron() shrink the test tile when checking for overlapping entities, to try and avoid floating-point precision issues
1:30:34Make GenerateApron() shrink the test tile when checking for overlapping entities, to try and avoid floating-point precision issues
1:31:12Find that those gaps in our apron are now filled
🏃
1:31:12Find that those gaps in our apron are now filled
🏃
1:31:12Find that those gaps in our apron are now filled
🏃
1:32:45Relieve GenerateRoom(), GenerateApron() and Layout() of taking a world
1:32:45Relieve GenerateRoom(), GenerateApron() and Layout() of taking a world
1:32:45Relieve GenerateRoom(), GenerateApron() and Layout() of taking a world
1:34:25Make sure that we run okay, and glimpse into the future implementing ground cover, finishing lighting and cleaning up the tag system
🏃
1:34:25Make sure that we run okay, and glimpse into the future implementing ground cover, finishing lighting and cleaning up the tag system
🏃
1:34:25Make sure that we run okay, and glimpse into the future implementing ground cover, finishing lighting and cleaning up the tag system
🏃
1:35:34Q&A
🗩
1:35:34Q&A
🗩
1:35:34Q&A
🗩
1:36:03vapenir Q: Do you plan to implement any fancy 3D audio stuff?
🗪
1:36:03vapenir Q: Do you plan to implement any fancy 3D audio stuff?
🗪
1:36:03vapenir Q: Do you plan to implement any fancy 3D audio stuff?
🗪
1:36:462hstrike Q: When you code in pure C do you have our own string library or do you always use a subset of C++ and their std string library?
🗪
1:36:462hstrike Q: When you code in pure C do you have our own string library or do you always use a subset of C++ and their std string library?
🗪
1:36:462hstrike Q: When you code in pure C do you have our own string library or do you always use a subset of C++ and their std string library?
🗪
1:37:080lpbm Q: Will you at any point remove the double walls between rooms?
🗪
1:37:080lpbm Q: Will you at any point remove the double walls between rooms?
🗪
1:37:080lpbm Q: Will you at any point remove the double walls between rooms?
🗪
1:38:01rationalcoder Q: See jeffrey's comment
🗪
1:38:01rationalcoder Q: See jeffrey's comment
🗪
1:38:01rationalcoder Q: See jeffrey's comment
🗪
1:38:08jeffrey_hullekes cmuratori your AddWorldRoom() call contains two Mins, not Min and Max!
🗪
1:38:08jeffrey_hullekes cmuratori your AddWorldRoom() call contains two Mins, not Min and Max!
🗪
1:38:08jeffrey_hullekes cmuratori your AddWorldRoom() call contains two Mins, not Min and Max!
🗪
1:38:15Fix typo in the call to AddWorldRoom() in GenerateRoom()
1:38:15Fix typo in the call to AddWorldRoom() in GenerateRoom()
1:38:15Fix typo in the call to AddWorldRoom() in GenerateRoom()
1:38:50reductum Q: Handmade sin / cos?
🗪
1:38:50reductum Q: Handmade sin / cos?
🗪
1:38:50reductum Q: Handmade sin / cos?
🗪
1:39:15longboolean Q: I have a feeling you will find more engine work to do once you start the gameplay stuff
🗪
1:39:15longboolean Q: I have a feeling you will find more engine work to do once you start the gameplay stuff
🗪
1:39:15longboolean Q: I have a feeling you will find more engine work to do once you start the gameplay stuff
🗪
1:40:01ormone88 Q: What about implementing a tiny animation tool in the editor? It would delay the part of gameplay programming, at least
🗪
1:40:01ormone88 Q: What about implementing a tiny animation tool in the editor? It would delay the part of gameplay programming, at least
🗪
1:40:01ormone88 Q: What about implementing a tiny animation tool in the editor? It would delay the part of gameplay programming, at least
🗪
1:40:26sluddytypie Q: Would you recommend any books for learning C++?
🗪
1:40:26sluddytypie Q: Would you recommend any books for learning C++?
🗪
1:40:26sluddytypie Q: Would you recommend any books for learning C++?
🗪
1:40:49Miblo Q: Does the apron cover everything we need now? I'm just wondering if there may be any point in using our elevation and camera angle to figure out the necessary extents of the apron for floors far below us
🗪
1:40:49Miblo Q: Does the apron cover everything we need now? I'm just wondering if there may be any point in using our elevation and camera angle to figure out the necessary extents of the apron for floors far below us
🗪
1:40:49Miblo Q: Does the apron cover everything we need now? I'm just wondering if there may be any point in using our elevation and camera angle to figure out the necessary extents of the apron for floors far below us
🗪
1:41:46darkenderio Q: The world apron is meant to make the outside of the world not look so empty. Could there be entities inside the world apron as ambient entities, to make it look like there is life outside of the playing area? They could just wander around
🗪
1:41:46darkenderio Q: The world apron is meant to make the outside of the world not look so empty. Could there be entities inside the world apron as ambient entities, to make it look like there is life outside of the playing area? They could just wander around
🗪
1:41:46darkenderio Q: The world apron is meant to make the outside of the world not look so empty. Could there be entities inside the world apron as ambient entities, to make it look like there is life outside of the playing area? They could just wander around
🗪
1:42:42vtlmks Q: Is the particle system complete?
🗪
1:42:42vtlmks Q: Is the particle system complete?
🗪
1:42:42vtlmks Q: Is the particle system complete?
🗪
1:44:05vapenir Q: Have you used git, svn or other VCS's for actual collaboration? What did you think about them?
🗪
1:44:05vapenir Q: Have you used git, svn or other VCS's for actual collaboration? What did you think about them?
🗪
1:44:05vapenir Q: Have you used git, svn or other VCS's for actual collaboration? What did you think about them?
🗪
1:48:20darkenderio Q: What about simple ambience, like birds flying from tree to tree?
🗪
1:48:20darkenderio Q: What about simple ambience, like birds flying from tree to tree?
🗪
1:48:20darkenderio Q: What about simple ambience, like birds flying from tree to tree?
🗪
1:48:50longboolean Q: And in theory you could have the composition of elements / theme of the apron be visibly different yet still complimentary so that it is clear that it is in fact an apron
🗪
1:48:50longboolean Q: And in theory you could have the composition of elements / theme of the apron be visibly different yet still complimentary so that it is clear that it is in fact an apron
🗪
1:48:50longboolean Q: And in theory you could have the composition of elements / theme of the apron be visibly different yet still complimentary so that it is clear that it is in fact an apron
🗪
1:49:56ormone88 Q: Do you consider any AI-related code as gameplay programming? Is there anything you could implement, engine-wise, in order to ease the coding process of these topics? For example, I could see pathfinding and world generation as a possible candidate
🗪
1:49:56ormone88 Q: Do you consider any AI-related code as gameplay programming? Is there anything you could implement, engine-wise, in order to ease the coding process of these topics? For example, I could see pathfinding and world generation as a possible candidate
🗪
1:49:56ormone88 Q: Do you consider any AI-related code as gameplay programming? Is there anything you could implement, engine-wise, in order to ease the coding process of these topics? For example, I could see pathfinding and world generation as a possible candidate
🗪
1:50:51culdevu Q: What about rolling fog cloud entities out there? Just a bunch of trees in a large grid sounds kinda weird
🗪
1:50:51culdevu Q: What about rolling fog cloud entities out there? Just a bunch of trees in a large grid sounds kinda weird
🗪
1:50:51culdevu Q: What about rolling fog cloud entities out there? Just a bunch of trees in a large grid sounds kinda weird
🗪
1:51:042hstrike Q: How do you write thread safe code in C or do you use C++ std::atomic in that case?
🗪
1:51:042hstrike Q: How do you write thread safe code in C or do you use C++ std::atomic in that case?
🗪
1:51:042hstrike Q: How do you write thread safe code in C or do you use C++ std::atomic in that case?
🗪
1:51:44Miblo Q: But what if the birds don't fly in a straight line, as the crow flies?
🗪
1:51:44Miblo Q: But what if the birds don't fly in a straight line, as the crow flies?
🗪
1:51:44Miblo Q: But what if the birds don't fly in a straight line, as the crow flies?
🗪
1:51:55printf_armin Q: How would you implement a game like Diggles? Like in terms of the structure for the landscape?
🗪
1:51:55printf_armin Q: How would you implement a game like Diggles? Like in terms of the structure for the landscape?
🗪
1:51:55printf_armin Q: How would you implement a game like Diggles? Like in terms of the structure for the landscape?
🗪
1:54:05Close it down
🗩
1:54:05Close it down
🗩
1:54:05Close it down
🗩