[video output=day349 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Running Multiple Sim Regions" vod_platform=youtube id=Q3DtXQGTles annotator=Miblo]
[0:14][Recap and set the stage for the day]
[1:42][Run the game and consider the plan for implementing multiple sim regions]
[5:47][handmade_world_mode.cpp: Consider how the UpdateAndRender*() functions are currently operating, and whether or not to split them up]
[11:24][handmade_brain.cpp: Look into why RenderGroup gets passed down to the brain]
[12:45][handmade_brain.cpp: Prevent ExecuteBrain() from setting AlwaysBehind and AlwaysInFrontOf, and run the game to see how the body and head are sorted]
[14:21][handmade_world_mode.cpp: Carve off the rendering code in UpdateAndRenderSimRegion() and determine which of its arguments may be optional]
[21:31][handmade_entity.cpp: Do that same process for UpdateAndRenderEntities()]
[26:10][handmade_world_mode.cpp: Run the game, then toggle off the rendering in UpdateAndRenderWorld()]
[27:05][handmade_brain.cpp: Make ExecuteBrain() only run the controller code if it has an Input]
[30:34][handmade_world_mode.cpp: Make UpdateAndRenderSimRegion() only process the mouse if it has Input]
[32:41][handmade_world_mode.cpp: Make UpdateAndRenderWorld() call UpdateAndRenderSimRegion() twice, run the game and see what happens]
[35:38][handmade_world_mode.cpp: Make UpdateAndRenderWorld() do an UpdateAndRenderSimRegion() on a second region]
[36:58][Run the game and zoom out to see two regions being simulated]
[38:16][Q&A][:speech]
[39:28][@f1aw][Did you make that debug UI yourself?]
[40:12][@nyeecola][Have you thought about refactoring your "brain" code to make use of virtual methods? Switch statements on "type" is basically replicating the type system and is a bit of a code smell]
[44:16][@montify][Do you use keyboard only at your day job? Are you faster without the mouse?]
[44:58][@nxsy][I missed the reason the two areas on the screen are discontinuous. Are these two sim regions of a larger world?]
[45:26][Run the game in -O2 and traverse the world towards the other sim region]
[47:42][@longboolean][What do you think about changing float values in the debug system by the distance you drag? Example: longer drag distance == bigger increments / decrements of the value, shorter drag distance == smaller increment / decrements]
[49:04][@nambitable][Couldn't you use CMake to generate visual studio solutions for windows?]
[50:36][@septumtesseract][What books do you recommend for C programming?]
[51:41][@soysaucethekid][How about for learning OpenGL?[ref
    site="Arc Synthesis"
    page="Learning Modern 3D Graphics Programming"
    url="https://bitbucket.org/alfonse/gltut/wiki/Home"]]
[53:40][Plug Nsight[ref
    site="NVIDIA"
    page="Nsight"
    url="http://www.nvidia.com/object/nsight.html"]][:research]
[55:56][@dandymcgee]["RenderDoc" is a pretty amazing tool, and I've found it to be more compatible than Nsight[ref
    site="GitHub"
    page="RenderDoc"
    url="https://github.com/baldurk/renderdoc"]]
[57:06][Wind it down][:speech]
[58:06][Announcement: A potential change in the format][:speech]
[/video]
