From 506e95a5c726bda235742239bf23250748124cdb Mon Sep 17 00:00:00 2001 From: Matt Mascarenhas Date: Fri, 7 Dec 2018 23:12:25 +0000 Subject: [PATCH] Annotate hero/code500 --- cmuratori/hero/code/code500.hmml | 58 ++++++++++++++++++++++++++++++++ cmuratori/hero/code/code501.hmml | 2 ++ 2 files changed, 60 insertions(+) create mode 100644 cmuratori/hero/code/code500.hmml create mode 100644 cmuratori/hero/code/code501.hmml diff --git a/cmuratori/hero/code/code500.hmml b/cmuratori/hero/code/code500.hmml new file mode 100644 index 0000000..6ed0456 --- /dev/null +++ b/cmuratori/hero/code/code500.hmml @@ -0,0 +1,58 @@ +[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Saving HHAs Modified by the In-Game Editor" vod_platform=youtube id=EgLT-43RnC4 annotator=Miblo] +[0:01][Recap and set the stage for the day saving our in-game asset edits][:"asset system" :run] +[5:07][Dive into saving asset modifications, introducing SaveAllChanges() and WriteAllHHAModifications()][:"asset system"] +[10:35][Fixing "redo"][:speech :"undo / redo"] +[13:14][Respecify CleanUndoSentinelNext from in_game_editor as a CleanEdit, introducing FindCleanEditList() and EditExistsIn()][:"undo / redo"] +[20:57][Fix our "Revert" implementation in UpdateAndRenderEditor()][:"undo / redo"] +[23:59][Enable SaveAllChanges() to mark asset files as modified, introducing GetAssetForEdit()][:"asset system" :"file io"] +[32:30][Try out our asset editing and saving][:"asset system" :run :ui] +[36:03][Relaunch the game to find that our asset information was saved][:"asset system" :run :ui] +[36:41][Prevent AddCat() from offsetting the pieces' positions][:"entity system"] +[38:06][Find that our cat is stuck underground][:"entity system" :run] +[39:17][Make UpdateAndRenderEntities() offset asset piece positions after they've been snapped to their parent][:"entity system"] +[43:04][Find that our cat is not standing on the ground][:"entity system" :run] +[45:00][Check how entities get placed][:"entity system" :research] +[48:39][Enable drawing of traversable points in UpdateAndRenderEntities()][:"debug visualisation" :"entity system"] +[50:21][Find that the traversable points are in the right place][:"debug visualisation" :"entity system" :run] +[50:56][Make AddCat() call GetSimSpaceTraversable() as per AddPlayer()][:"entity system"] +[53:56][Find that our cat has moved, but not onto a traversable point][:"entity system" :run] +[54:19][Delete GetEntityGroundPoint(), and make UpdateAndRenderEntities() draw entity locations][:"debug visualisation" :"entity system"] +[57:13][Find that our entity's actual position is wrong][:"debug visualisation" :"entity system" :run] +[57:53][Make GenerateRoom() place the floor tiles before placing the entities][:"entity system" :"procedural generation"] +[59:22][Find that the cat is now correctly placed on the floor, with only its Z-bias remaining incorrect][:"debug visualisation" :"entity system" :run] +[1:01:14][Offsetting entity pieces in Z][:"entity system" :speech] +[1:02:42][Make AddCat() offset the head position 0.1f in Z][:"entity system"] +[1:02:57][See the head's displacement, and position our other cats][:"asset system" :"entity system" :run :ui] +[1:09:40][Consider filling out the area around the edges of scenes, and fixing :camera interpolation and :lighting][:run] +[1:11:34][Check out our :art][:admin] +[1:16:52][Consider getting our characters in there and making an outdoors area][:run] +[1:17:34][Create an outdoors area in GenerateRoom()][:"procedural generation"] +[1:20:05][Explore the world outside the orphanage, and consider fixing the :camera and :lighting][:"procedural generation" :rendering :run] +[1:24:50][:Camera placement and interpolation][:speech] +[1:26:16][Toggle on the hero's light in UpdateAndRenderWorld()][:"entity system"] +[1:27:15][Traverse the world, to find that we can leap over single-tile thick walls][:movement :run] +[1:29:38][Reduce the hop search radius in ExecuteBrainHero() to 1.25f][:"entity system" :movement] +[1:30:02][Find that we can no longer leap over walls, and consider :camera improvements][:movement :run] +[1:33:27][Remove all the lights from the world][:lighting :"procedural generation"] +[1:33:43][Traverse our darkened orphanage][:lighting :"procedural generation" :run] +[1:34:12][:Camera fixes][:research] +[1:42:10][Make UpdateCameraForEntityMovement() set the :camera position relative to the Region->Origin][:camera] +[1:45:58][Find that the :camera height changes discontinuously][:run] +[1:46:42][Make UpdateCameraForEntityMovement() offset the TargetP.z straight off the bat, and remove OffsetZ from game_camera][:camera] +[1:50:10][Find that our :camera interpolation remains discontinuous][:run] +[1:51:18][Continue to investigate our :camera discontinuity][:research] +[1:54:57][Remove CameraOffset and CameraDolly from UpdateAndRenderWorld()][:camera] +[1:57:06][:Animation interpolation between absolute positions][:speech] +[1:57:47][Make UpdateAndRenderWorld() interpolate the :camera between its unmodified positions] +[1:58:16][Find that the :camera interpolates correctly][:run] +[1:59:10][Make UpdateCameraForEntityMovement() take a CameraZ from UpdateAndRenderWorld() to offset the :camera's actual position] +[2:00:10][Find that the :camera interpolation is now buttery smooth][:run] +[2:01:25][Q&A][:speech] +[2:01:40][@jmc516][Q: Have you ever found yourself angry with something in the game? Maybe the progress or a certain part? If so, how did you get past it?] +[2:02:26][@tili_us][Q: Are you planning to switch up the interpolation with a smoothdamp function?][:camera] +[2:03:21][@nickito97][Q: Do you ever feel like everything needs work to the point it's demotivating / you're not even sure where to start?] +[2:05:28][@garryjohanson][Q: So we've been debating the merits of using a garbage-collected :language like go in a network situation where you have absolutely no prediction of what data loads will be coming in. Do you think a language like go would be a good choice? (I feel like you've answered a question like this, but I honestly don't remember your response)][:memory] +[2:10:26][@tili_us][Q: Is it better to work on a fun task or a task that is more important if you have limited time?] +[2:11:27][Understanding the decision to use a technically suboptimal solution, e.g. garbage collection, as a trade-off][:speech] +[2:14:52][Wrap it up][:speech] +[/video] diff --git a/cmuratori/hero/code/code501.hmml b/cmuratori/hero/code/code501.hmml new file mode 100644 index 0000000..2a763eb --- /dev/null +++ b/cmuratori/hero/code/code501.hmml @@ -0,0 +1,2 @@ +[video member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Importing Orphans" vod_platform=youtube id=7MnGW4k0LLE annotator=] +[/video] \ No newline at end of file