Grid Partitioning for Overlap Testing
?
?

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
z Toggle filter mode V Revert filter to original state

Menu toggling

q Quotes r References f Filter 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

Credits Menu

Enter Open URL (in new tab)
0:09Recap and set the stage for the day
0:09Recap and set the stage for the day
0:09Recap and set the stage for the day
1:53Run the game and see where we left off
1:53Run the game and see where we left off
1:53Run the game and see where we left off
4:05handmade_entity.cpp: Toggle off the volume highlighting in UpdateAndRenderEntities()
4:05handmade_entity.cpp: Toggle off the volume highlighting in UpdateAndRenderEntities()
4:05handmade_entity.cpp: Toggle off the volume highlighting in UpdateAndRenderEntities()
4:33Lose the hoodieα
4:33Lose the hoodieα
4:33Lose the hoodieα
4:51Run the game and consider putting good data into the sorting routine so that it can do stable sorts
4:51Run the game and consider putting good data into the sorting routine so that it can do stable sorts
4:51Run the game and consider putting good data into the sorting routine so that it can do stable sorts
5:58Consider how to proceed
5:58Consider how to proceed
5:58Consider how to proceed
7:33Determine to solve our n^2 problem
7:33Determine to solve our n^2 problem
7:33Determine to solve our n^2 problem
9:56Blackboard: The problem with determining which sprites overlap
9:56Blackboard: The problem with determining which sprites overlap
9:56Blackboard: The problem with determining which sprites overlap
12:23Blackboard: Grid Partitioning as a way to mitigate routines proportionate to n^2
12:23Blackboard: Grid Partitioning as a way to mitigate routines proportionate to n^2
12:23Blackboard: Grid Partitioning as a way to mitigate routines proportionate to n^2
14:21Blackboard: Testing for overlap in one dimension
14:21Blackboard: Testing for overlap in one dimension
14:21Blackboard: Testing for overlap in one dimension
17:44Blackboard: How to do this bucketing, or spatial partitioning
17:44Blackboard: How to do this bucketing, or spatial partitioning
17:44Blackboard: How to do this bucketing, or spatial partitioning
20:08Blackboard: Breaking up each entity
20:08Blackboard: Breaking up each entity
20:08Blackboard: Breaking up each entity
20:47Blackboard: Creating a more hierarchical notion of what the space looks like
20:47Blackboard: Creating a more hierarchical notion of what the space looks like
20:47Blackboard: Creating a more hierarchical notion of what the space looks like
24:07Blackboard: Quadtree, KD Tree and BSP Tree
24:07Blackboard: Quadtree, KD Tree and BSP Tree
24:07Blackboard: Quadtree, KD Tree and BSP Tree
26:50Blackboard: Favouring a very simple grid bucketing scheme
26:50Blackboard: Favouring a very simple grid bucketing scheme
26:50Blackboard: Favouring a very simple grid bucketing scheme
29:48Run the game and consider how expensive the BuildSpriteGraph() is
29:48Run the game and consider how expensive the BuildSpriteGraph() is
29:48Run the game and consider how expensive the BuildSpriteGraph() is
32:10Start with something fairly stupidβ
32:10Start with something fairly stupidβ
32:10Start with something fairly stupidβ
32:25handmade_render.cpp: Introduce sort_grid_entry struct and make BuildSpriteGraph() record if a sprite occupies a grid square
32:25handmade_render.cpp: Introduce sort_grid_entry struct and make BuildSpriteGraph() record if a sprite occupies a grid square
32:25handmade_render.cpp: Introduce sort_grid_entry struct and make BuildSpriteGraph() record if a sprite occupies a grid square
37:58handmade_render.cpp: Consider some immediate possibilities for optimisation
37:58handmade_render.cpp: Consider some immediate possibilities for optimisation
37:58handmade_render.cpp: Consider some immediate possibilities for optimisation
39:59handmade_render.cpp: Consider making RecursiveFrontToBack() not create the edges of the graph
39:59handmade_render.cpp: Consider making RecursiveFrontToBack() not create the edges of the graph
39:59handmade_render.cpp: Consider making RecursiveFrontToBack() not create the edges of the graph
42:25handmade_render.cpp: Introduce GetGridSpan()
42:25handmade_render.cpp: Introduce GetGridSpan()
42:25handmade_render.cpp: Introduce GetGridSpan()
47:19Blackboard: Adding edges from the perspective of grid testing
47:19Blackboard: Adding edges from the perspective of grid testing
47:19Blackboard: Adding edges from the perspective of grid testing
50:35handmade_render.cpp: Make GetGridSpan() bin the incoming screen area versus the total screen area
50:35handmade_render.cpp: Make GetGridSpan() bin the incoming screen area versus the total screen area
50:35handmade_render.cpp: Make GetGridSpan() bin the incoming screen area versus the total screen area
53:38handmade_render.cpp: Make BuildSpriteGraph() compute the InvCellDim
53:38handmade_render.cpp: Make BuildSpriteGraph() compute the InvCellDim
53:38handmade_render.cpp: Make BuildSpriteGraph() compute the InvCellDim
56:24handmade_render.cpp: Make GetGridSpan() work a little differently
56:24handmade_render.cpp: Make GetGridSpan() work a little differently
56:24handmade_render.cpp: Make GetGridSpan() work a little differently
59:59Run the game and note that we are now bucketing
59:59Run the game and note that we are now bucketing
59:59Run the game and note that we are now bucketing
1:00:22Q&A
🗩
1:00:22Q&A
🗩
1:00:22Q&A
🗩
1:01:26themikedx Using the grid system, do you think that would be good to use for pixel perfect collision?
🗪
1:01:26themikedx Using the grid system, do you think that would be good to use for pixel perfect collision?
🗪
1:01:26themikedx Using the grid system, do you think that would be good to use for pixel perfect collision?
🗪
1:01:51Blackboard: Determining whether rectangles and then possibly pixels intersect
1:01:51Blackboard: Determining whether rectangles and then possibly pixels intersect
1:01:51Blackboard: Determining whether rectangles and then possibly pixels intersect
1:03:54thesizik Why not have the debug overlay render to a separate layer, and have it draw in the order submitted instead of wasting time sorting?
🗪
1:03:54thesizik Why not have the debug overlay render to a separate layer, and have it draw in the order submitted instead of wasting time sorting?
🗪
1:03:54thesizik Why not have the debug overlay render to a separate layer, and have it draw in the order submitted instead of wasting time sorting?
🗪
1:05:40thesizik I think a sort-free mode would work well with the cutscene as well
🗪
1:05:40thesizik I think a sort-free mode would work well with the cutscene as well
🗪
1:05:40thesizik I think a sort-free mode would work well with the cutscene as well
🗪
1:07:10roam00010011 Missed the stream again, why do you not use the summed rectangle of the hero sprites for draw sorting, and draw the individual parts in a set order?
🗪
1:07:10roam00010011 Missed the stream again, why do you not use the summed rectangle of the hero sprites for draw sorting, and draw the individual parts in a set order?
🗪
1:07:10roam00010011 Missed the stream again, why do you not use the summed rectangle of the hero sprites for draw sorting, and draw the individual parts in a set order?
🗪
1:08:25fyoucon Something exciting happening over at Molly Rocket?
🗪
1:08:25fyoucon Something exciting happening over at Molly Rocket?
🗪
1:08:25fyoucon Something exciting happening over at Molly Rocket?
🗪
1:08:39dan020 Can using C programming optimize the game more than C++?
🗪
1:08:39dan020 Can using C programming optimize the game more than C++?
🗪
1:08:39dan020 Can using C programming optimize the game more than C++?
🗪
1:12:55uplinkcoder RTTI
🗪
1:12:55uplinkcoder RTTI
🗪
1:12:55uplinkcoder RTTI
🗪
1:14:09Wind it down
🗩
1:14:09Wind it down
🗩
1:14:09Wind it down
🗩