[video output=day248 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Cleaning Up Data Block Display" vod_platform=youtube id=Thr10pFx984 annotator=Miblo annotator=ffsjs] [1:02][Launch the code, build the game, recap and set the stage for the day] [2:39][handmade_debug_interface.h: Reacquaint ourselves with the debug system] [6:21]["We set ourselves up for success"][quote 403] [6:40][handmade_debug_interface.h and handmade_debug.cpp: Prune irrelevant stuff] [8:15][4coder: Demo some editing movements / commands and promote 4coder's power] [9:44][handmade_debug.cpp: Note how GetOrCreateDebugViewFor gives us a way to lookup the debug view for a given ID] [10:30][Consider ways to develop the debug system] [21:37][handmade_debug.cpp: Reorder functions and consider how the system currently works] [24:19][Run the game and look at the debug visualisation] [26:20][Debugger: Step into CollateDebugRecords, inspect the Event data and walk through what the system is doing] [33:31][Propose cleaning up the way we build and store these debug events] [38:39][Consider no longer storing data blocks as data blocks, but making it part of a standing structure] [43:37][handmade_debug.cpp: Prevent the OpenDataBlock and CloseDataBlock from getting printed and increment events] [47:37][Run the game and see our hierarchical debug view] [48:18][handmade_debug.cpp: Make the debug view collapsible] [56:11][Run the game and try out our newly collapsible debug view] [58:29][handmade_debug.cpp: Truncate the event name in DEBUGEventToText] [1:00:57][Run the game and see our partially truncated event names] [1:01:34][handmade_debug.cpp: Check for Flags & DEBUGVarToText_AddValue and add an AddValue flag to handmade_debug.h] [1:03:06][Run the game and see our fully truncated event names] [1:03:16][handmade.cpp: Stuff all of our control variables under #if HANDMADE_INTERNAL from handmade_config.h] [1:05:47][Run the game and see all of our values in the debug view] [1:07:08][Q&A][:speech] [1:07:33][@Hotspur_][The "Per Frame arena space remaining" debug counter is always going down! Is this okay?] [1:08:08][@Garryjohanson][You mentioned a book that introduces relational databases. I lost the link[ref site="Jim Gray and Andreas Reuter" page="Transaction Processing: Concepts and Techniques" url="http://store.elsevier.com/product.jsp?isbn=9781558601901"]] [1:08:34][@Fyoucon][Will you re-implement the profiler?] [1:10:46][@dino27_1988][Casey, how do you easily implement the standard output without using the iostream library?] [1:11:32][@DudeInBasement1][Which do you prefer and why? #if #ifdef #if defined()?] [1:12:29][@dino27_1988][Can you tell me the version of what you just said, but for Linux (and not Windows)? I'm on Arch] [1:14:21][@erdomina][In terms of interaction with the debug settings, what do you have in mind for modifying the values? Switches or sliders?] [1:14:48][@trueblue32][What does a for each loop do?] [1:16:15][@AdiAdiABXze][Not related to today's topic: when do you think you will be designing your game instead of writing the engine?] [1:17:13][@trueblue32][What language do you think is best for programming games?] [1:18:44][@ezysigh][The handles are just int ids numbered from 0, which map to per-process fd-table in kernel space] [1:19:11][@dino27_1988][Will you consider using Jon's language soon? Even just for trying stuff?] [1:19:34][Close down, thank you][:speech] [/video]