Handmade Hero»Episode Guide
Cleaning Up World / Sim-Region Interactions
?
?

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:08Welcome back after having moved to the Molly Rocket offices
0:08Welcome back after having moved to the Molly Rocket offices
0:08Welcome back after having moved to the Molly Rocket offices
0:45On switching to a full 3D pipeline
0:45On switching to a full 3D pipeline
0:45On switching to a full 3D pipeline
9:58todo.txt: Consult the TODO list
9:58todo.txt: Consult the TODO list
9:58todo.txt: Consult the TODO list
11:53Blackboard: Sim Region and World
11:53Blackboard: Sim Region and World
11:53Blackboard: Sim Region and World
14:27Blackboard: Creation
14:27Blackboard: Creation
14:27Blackboard: Creation
16:26Consider how the entity (un)packing currently works
16:26Consider how the entity (un)packing currently works
16:26Consider how the entity (un)packing currently works
19:00handmade_sim_region.cpp: Pull in the entity packing functionality from handmade_world.cpp
19:00handmade_sim_region.cpp: Pull in the entity packing functionality from handmade_world.cpp
19:00handmade_sim_region.cpp: Pull in the entity packing functionality from handmade_world.cpp
22:54handmade_world.cpp: Rename PackEntityIntoChunk() and PackEntityIntoWorld() to overloaded UseChunkSpace() functions
22:54handmade_world.cpp: Rename PackEntityIntoChunk() and PackEntityIntoWorld() to overloaded UseChunkSpace() functions
22:54handmade_world.cpp: Rename PackEntityIntoChunk() and PackEntityIntoWorld() to overloaded UseChunkSpace() functions
24:43handmade_world_mode.cpp: Consider allowing many entities to be stuffed into a sim region
24:43handmade_world_mode.cpp: Consider allowing many entities to be stuffed into a sim region
24:43handmade_world_mode.cpp: Consider allowing many entities to be stuffed into a sim region
27:24handmade_world_mode.cpp: Simplify BeginEntity() and EndEntity()
27:24handmade_world_mode.cpp: Simplify BeginEntity() and EndEntity()
27:24handmade_world_mode.cpp: Simplify BeginEntity() and EndEntity()
29:05handmade_sim_region.cpp: Introduce CreateEntity()
29:05handmade_sim_region.cpp: Introduce CreateEntity()
29:05handmade_sim_region.cpp: Introduce CreateEntity()
30:07handmade_sim_region.h: Add a NullEntity to the sim_region struct for CreateEntity() to use if we've hit the MaxEntityCount
30:07handmade_sim_region.h: Add a NullEntity to the sim_region struct for CreateEntity() to use if we've hit the MaxEntityCount
30:07handmade_sim_region.h: Add a NullEntity to the sim_region struct for CreateEntity() to use if we've hit the MaxEntityCount
33:30handmade_sim_region.cpp: Consider how to insert the entity into the hash table
33:30handmade_sim_region.cpp: Consider how to insert the entity into the hash table
33:30handmade_sim_region.cpp: Consider how to insert the entity into the hash table
36:25handmade_sim_region.cpp: Reorganise BeginSim() to only add an entity if there's room for it
36:25handmade_sim_region.cpp: Reorganise BeginSim() to only add an entity if there's room for it
36:25handmade_sim_region.cpp: Reorganise BeginSim() to only add an entity if there's room for it
37:54handmade_sim_region.cpp: Introduce AddEntityToHash() for CreateEntity() to call
37:54handmade_sim_region.cpp: Introduce AddEntityToHash() for CreateEntity() to call
37:54handmade_sim_region.cpp: Introduce AddEntityToHash() for CreateEntity() to call
40:56handmade_world_mode.cpp: Introduce AllocateEntityID() for BeginEntity() to call
40:56handmade_world_mode.cpp: Introduce AllocateEntityID() for BeginEntity() to call
40:56handmade_world_mode.cpp: Introduce AllocateEntityID() for BeginEntity() to call
41:34handmade_world_mode.cpp: Make PlayWorld() create a dummy sim region for BeginSim() and EndSim() to use
41:34handmade_world_mode.cpp: Make PlayWorld() create a dummy sim region for BeginSim() and EndSim() to use
41:34handmade_world_mode.cpp: Make PlayWorld() create a dummy sim region for BeginSim() and EndSim() to use
47:01Run the game and see what we've destroyed
47:01Run the game and see what we've destroyed
47:01Run the game and see what we've destroyed
48:30handmade_world_mode.cpp: Make AddPlayer() set and unset the creation region
48:30handmade_world_mode.cpp: Make AddPlayer() set and unset the creation region
48:30handmade_world_mode.cpp: Make AddPlayer() set and unset the creation region
49:16Run and investigate what else is failing
49:16Run and investigate what else is failing
49:16Run and investigate what else is failing
50:17handmade_sim_region.cpp: Make TransactionalOccupy() check that we have a desired traversable_reference
50:17handmade_sim_region.cpp: Make TransactionalOccupy() check that we have a desired traversable_reference
50:17handmade_sim_region.cpp: Make TransactionalOccupy() check that we have a desired traversable_reference
52:18Step into EndSim() and inspect the Region and Entity
52:18Step into EndSim() and inspect the Region and Entity
52:18Step into EndSim() and inspect the Region and Entity
56:15handmade_sim_region.cpp: Consider removing ChunkDelta from EndSim()
56:15handmade_sim_region.cpp: Consider removing ChunkDelta from EndSim()
56:15handmade_sim_region.cpp: Consider removing ChunkDelta from EndSim()
1:00:22Step back into EndSim() and inspect the DestE and Entity
1:00:22Step back into EndSim() and inspect the DestE and Entity
1:00:22Step back into EndSim() and inspect the DestE and Entity
1:01:11handmade_world.cpp: Prevent UseChunkSpace() from taking a sim_region
1:01:11handmade_world.cpp: Prevent UseChunkSpace() from taking a sim_region
1:01:11handmade_world.cpp: Prevent UseChunkSpace() from taking a sim_region
1:02:09Q&A
🗩
1:02:09Q&A
🗩
1:02:09Q&A
🗩
1:03:16handmade_sim_region.cpp: Comment out the MaxEntityVelocity assertion in MoveEntity(), run the game and continue investigating
1:03:16handmade_sim_region.cpp: Comment out the MaxEntityVelocity assertion in MoveEntity(), run the game and continue investigating
1:03:16handmade_sim_region.cpp: Comment out the MaxEntityVelocity assertion in MoveEntity(), run the game and continue investigating
1:04:35handmade_sim_region.cpp: Make GetSimSpaceTraversable() only operate if it has an Entity, run the game and see the cool
1:04:35handmade_sim_region.cpp: Make GetSimSpaceTraversable() only operate if it has an Entity, run the game and see the cool
1:04:35handmade_sim_region.cpp: Make GetSimSpaceTraversable() only operate if it has an Entity, run the game and see the cool
1:05:24snoringtortoise Did you resolve the kerning / horizontal advance for kanji characters? I found when implementing it myself on OSX (at the font table level) that Arial doesn't actually have kanji in it. It seems Windows (and Mac - the higher level APIs like CoreText) load multiple font files for you if it detects that you are trying to load a codepoint that is outside the range of a particular font file
🗪
1:05:24snoringtortoise Did you resolve the kerning / horizontal advance for kanji characters? I found when implementing it myself on OSX (at the font table level) that Arial doesn't actually have kanji in it. It seems Windows (and Mac - the higher level APIs like CoreText) load multiple font files for you if it detects that you are trying to load a codepoint that is outside the range of a particular font file
🗪
1:05:24snoringtortoise Did you resolve the kerning / horizontal advance for kanji characters? I found when implementing it myself on OSX (at the font table level) that Arial doesn't actually have kanji in it. It seems Windows (and Mac - the higher level APIs like CoreText) load multiple font files for you if it detects that you are trying to load a codepoint that is outside the range of a particular font file
🗪
1:07:24handmade_sim_region.cpp: Look through EndSim()
1:07:24handmade_sim_region.cpp: Look through EndSim()
1:07:24handmade_sim_region.cpp: Look through EndSim()
1:09:02cyberpunkhobo Can you explain what the idea is behind using a zero-sized sim region bounds?
🗪
1:09:02cyberpunkhobo Can you explain what the idea is behind using a zero-sized sim region bounds?
🗪
1:09:02cyberpunkhobo Can you explain what the idea is behind using a zero-sized sim region bounds?
🗪
1:10:12Run the game and note how everything is gravitating towards that lower-left area
1:10:12Run the game and note how everything is gravitating towards that lower-left area
1:10:12Run the game and note how everything is gravitating towards that lower-left area
1:11:48handmade_world_mode.cpp: Make EndEntity() correctly compute the Entity->P
1:11:48handmade_world_mode.cpp: Make EndEntity() correctly compute the Entity->P
1:11:48handmade_world_mode.cpp: Make EndEntity() correctly compute the Entity->P
1:14:01Run the game and see that we're a little better
1:14:01Run the game and see that we're a little better
1:14:01Run the game and see that we're a little better
1:17:18Consider why other entities are able to traverse the trees, while we aren't
1:17:18Consider why other entities are able to traverse the trees, while we aren't
1:17:18Consider why other entities are able to traverse the trees, while we aren't
1:19:08invinciblechaz I've just started watching this stream. How often have you needed to refactor major parts of your code?
🗪
1:19:08invinciblechaz I've just started watching this stream. How often have you needed to refactor major parts of your code?
🗪
1:19:08invinciblechaz I've just started watching this stream. How often have you needed to refactor major parts of your code?
🗪
1:27:35thenoble1 Is the ms counter in the corner the render time for the frame?
🗪
1:27:35thenoble1 Is the ms counter in the corner the render time for the frame?
🗪
1:27:35thenoble1 Is the ms counter in the corner the render time for the frame?
🗪
1:30:18build.bat: Switch to -O2, run the game and consult the profiler
1:30:18build.bat: Switch to -O2, run the game and consult the profiler
1:30:18build.bat: Switch to -O2, run the game and consult the profiler
1:32:11nxsy Need OpenGL query timers
🗪
1:32:11nxsy Need OpenGL query timers
🗪
1:32:11nxsy Need OpenGL query timers
🗪
1:32:50phort99 I was about to ask what would happen if one of those snakey guys got themselves stuck in a corner, but I see one already did
🗪
1:32:50phort99 I was about to ask what would happen if one of those snakey guys got themselves stuck in a corner, but I see one already did
🗪
1:32:50phort99 I was about to ask what would happen if one of those snakey guys got themselves stuck in a corner, but I see one already did
🗪
1:34:59snoringtortoise Off-topic: Since there wasn't any sound in the pre-stream, are there any sneak peaks regarding HandmadeCon you can give us?
🗪
1:34:59snoringtortoise Off-topic: Since there wasn't any sound in the pre-stream, are there any sneak peaks regarding HandmadeCon you can give us?
🗪
1:34:59snoringtortoise Off-topic: Since there wasn't any sound in the pre-stream, are there any sneak peaks regarding HandmadeCon you can give us?
🗪
1:38:21todo.txt: Add the trees on traversables bug to the TODO list
1:38:21todo.txt: Add the trees on traversables bug to the TODO list
1:38:21todo.txt: Add the trees on traversables bug to the TODO list
1:39:10Close it down
🗩
1:39:10Close it down
🗩
1:39:10Close it down
🗩