Saving HHAs Modified by the In-Game Editor
?
?

Keyboard Navigation

Global Keys

[, < / ], > Jump to previous / next episode
W, K, P / S, J, N Jump to previous / next timestamp
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 and Index Controls

a
w
s
d
h j k l


Esc Close menu / unfocus timestamp

Quotes and References Menus and Index

Enter Jump to timestamp

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:01Recap and set the stage for the day saving our in-game asset edits
🏃
0:01Recap and set the stage for the day saving our in-game asset edits
🏃
0:01Recap and set the stage for the day saving our in-game asset edits
🏃
5:07Dive into saving asset modifications, introducing SaveAllChanges() and WriteAllHHAModifications()
5:07Dive into saving asset modifications, introducing SaveAllChanges() and WriteAllHHAModifications()
5:07Dive into saving asset modifications, introducing SaveAllChanges() and WriteAllHHAModifications()
10:35Fixing "redo"
🗩
10:35Fixing "redo"
🗩
10:35Fixing "redo"
🗩
13:14Respecify CleanUndoSentinelNext from in_game_editor as a CleanEdit, introducing FindCleanEditList() and EditExistsIn()
13:14Respecify CleanUndoSentinelNext from in_game_editor as a CleanEdit, introducing FindCleanEditList() and EditExistsIn()
13:14Respecify CleanUndoSentinelNext from in_game_editor as a CleanEdit, introducing FindCleanEditList() and EditExistsIn()
20:57Fix our "Revert" implementation in UpdateAndRenderEditor()
20:57Fix our "Revert" implementation in UpdateAndRenderEditor()
20:57Fix our "Revert" implementation in UpdateAndRenderEditor()
23:59Enable SaveAllChanges() to mark asset files as modified, introducing GetAssetForEdit()
23:59Enable SaveAllChanges() to mark asset files as modified, introducing GetAssetForEdit()
23:59Enable SaveAllChanges() to mark asset files as modified, introducing GetAssetForEdit()
32:30Try out our asset editing and saving
🏃
32:30Try out our asset editing and saving
🏃
32:30Try out our asset editing and saving
🏃
36:03Relaunch the game to find that our asset information was saved
🏃
36:03Relaunch the game to find that our asset information was saved
🏃
36:03Relaunch the game to find that our asset information was saved
🏃
36:41Prevent AddCat() from offsetting the pieces' positions
36:41Prevent AddCat() from offsetting the pieces' positions
36:41Prevent AddCat() from offsetting the pieces' positions
38:06Find that our cat is stuck underground
🏃
38:06Find that our cat is stuck underground
🏃
38:06Find that our cat is stuck underground
🏃
39:17Make UpdateAndRenderEntities() offset asset piece positions after they've been snapped to their parent
39:17Make UpdateAndRenderEntities() offset asset piece positions after they've been snapped to their parent
39:17Make UpdateAndRenderEntities() offset asset piece positions after they've been snapped to their parent
43:04Find that our cat is not standing on the ground
🏃
43:04Find that our cat is not standing on the ground
🏃
43:04Find that our cat is not standing on the ground
🏃
45:00Check how entities get placed
📖
45:00Check how entities get placed
📖
45:00Check how entities get placed
📖
48:39Enable drawing of traversable points in UpdateAndRenderEntities()
48:39Enable drawing of traversable points in UpdateAndRenderEntities()
48:39Enable drawing of traversable points in UpdateAndRenderEntities()
50:21Find that the traversable points are in the right place
🏃
50:21Find that the traversable points are in the right place
🏃
50:21Find that the traversable points are in the right place
🏃
50:56Make AddCat() call GetSimSpaceTraversable() as per AddPlayer()
50:56Make AddCat() call GetSimSpaceTraversable() as per AddPlayer()
50:56Make AddCat() call GetSimSpaceTraversable() as per AddPlayer()
53:56Find that our cat has moved, but not onto a traversable point
🏃
53:56Find that our cat has moved, but not onto a traversable point
🏃
53:56Find that our cat has moved, but not onto a traversable point
🏃
54:19Delete GetEntityGroundPoint(), and make UpdateAndRenderEntities() draw entity locations
54:19Delete GetEntityGroundPoint(), and make UpdateAndRenderEntities() draw entity locations
54:19Delete GetEntityGroundPoint(), and make UpdateAndRenderEntities() draw entity locations
57:13Find that our entity's actual position is wrong
🏃
57:13Find that our entity's actual position is wrong
🏃
57:13Find that our entity's actual position is wrong
🏃
57:53Make GenerateRoom() place the floor tiles before placing the entities
57:53Make GenerateRoom() place the floor tiles before placing the entities
57:53Make GenerateRoom() place the floor tiles before placing the entities
59:22Find that the cat is now correctly placed on the floor, with only its Z-bias remaining incorrect
🏃
59:22Find that the cat is now correctly placed on the floor, with only its Z-bias remaining incorrect
🏃
59:22Find that the cat is now correctly placed on the floor, with only its Z-bias remaining incorrect
🏃
1:01:14Offsetting entity pieces in Z
🗩
1:01:14Offsetting entity pieces in Z
🗩
1:01:14Offsetting entity pieces in Z
🗩
1:02:42Make AddCat() offset the head position 0.1f in Z
1:02:42Make AddCat() offset the head position 0.1f in Z
1:02:42Make AddCat() offset the head position 0.1f in Z
1:02:57See the head's displacement, and position our other cats
🏃
1:02:57See the head's displacement, and position our other cats
🏃
1:02:57See the head's displacement, and position our other cats
🏃
1:09:40Consider filling out the area around the edges of scenes, and fixing camera interpolation and lighting
🏃
1:09:40Consider filling out the area around the edges of scenes, and fixing camera interpolation and lighting
🏃
1:09:40Consider filling out the area around the edges of scenes, and fixing camera interpolation and lighting
🏃
1:11:34Check out our art
🗹
1:11:34Check out our art
🗹
1:11:34Check out our art
🗹
1:16:52Consider getting our characters in there and making an outdoors area
🏃
1:16:52Consider getting our characters in there and making an outdoors area
🏃
1:16:52Consider getting our characters in there and making an outdoors area
🏃
1:17:34Create an outdoors area in GenerateRoom()
1:17:34Create an outdoors area in GenerateRoom()
1:17:34Create an outdoors area in GenerateRoom()
1:20:05Explore the world outside the orphanage, and consider fixing the camera and lighting
🏃
1:20:05Explore the world outside the orphanage, and consider fixing the camera and lighting
🏃
1:20:05Explore the world outside the orphanage, and consider fixing the camera and lighting
🏃
1:24:50Camera placement and interpolation
🗩
1:24:50Camera placement and interpolation
🗩
1:24:50Camera placement and interpolation
🗩
1:26:16Toggle on the hero's light in UpdateAndRenderWorld()
1:26:16Toggle on the hero's light in UpdateAndRenderWorld()
1:26:16Toggle on the hero's light in UpdateAndRenderWorld()
1:27:15Traverse the world, to find that we can leap over single-tile thick walls
🏃
1:27:15Traverse the world, to find that we can leap over single-tile thick walls
🏃
1:27:15Traverse the world, to find that we can leap over single-tile thick walls
🏃
1:29:38Reduce the hop search radius in ExecuteBrainHero() to 1.25f
1:29:38Reduce the hop search radius in ExecuteBrainHero() to 1.25f
1:29:38Reduce the hop search radius in ExecuteBrainHero() to 1.25f
1:30:02Find that we can no longer leap over walls, and consider camera improvements
🏃
1:30:02Find that we can no longer leap over walls, and consider camera improvements
🏃
1:30:02Find that we can no longer leap over walls, and consider camera improvements
🏃
1:33:27Remove all the lights from the world
1:33:27Remove all the lights from the world
1:33:27Remove all the lights from the world
1:33:43Traverse our darkened orphanage
🏃
1:33:43Traverse our darkened orphanage
🏃
1:33:43Traverse our darkened orphanage
🏃
1:34:12Camera fixes
📖
1:34:12Camera fixes
📖
1:34:12Camera fixes
📖
1:42:10Make UpdateCameraForEntityMovement() set the camera position relative to the Region->Origin
1:42:10Make UpdateCameraForEntityMovement() set the camera position relative to the Region->Origin
1:42:10Make UpdateCameraForEntityMovement() set the camera position relative to the Region->Origin
1:45:58Find that the camera height changes discontinuously
🏃
1:45:58Find that the camera height changes discontinuously
🏃
1:45:58Find that the camera height changes discontinuously
🏃
1:46:42Make UpdateCameraForEntityMovement() offset the TargetP.z straight off the bat, and remove OffsetZ from game_camera
1:46:42Make UpdateCameraForEntityMovement() offset the TargetP.z straight off the bat, and remove OffsetZ from game_camera
1:46:42Make UpdateCameraForEntityMovement() offset the TargetP.z straight off the bat, and remove OffsetZ from game_camera
1:50:10Find that our camera interpolation remains discontinuous
🏃
1:50:10Find that our camera interpolation remains discontinuous
🏃
1:50:10Find that our camera interpolation remains discontinuous
🏃
1:51:18Continue to investigate our camera discontinuity
📖
1:51:18Continue to investigate our camera discontinuity
📖
1:51:18Continue to investigate our camera discontinuity
📖
1:54:57Remove CameraOffset and CameraDolly from UpdateAndRenderWorld()
1:54:57Remove CameraOffset and CameraDolly from UpdateAndRenderWorld()
1:54:57Remove CameraOffset and CameraDolly from UpdateAndRenderWorld()
1:57:06Animation interpolation between absolute positions
🗩
1:57:06Animation interpolation between absolute positions
🗩
1:57:06Animation interpolation between absolute positions
🗩
1:57:47Make UpdateAndRenderWorld() interpolate the camera between its unmodified positions
1:57:47Make UpdateAndRenderWorld() interpolate the camera between its unmodified positions
1:57:47Make UpdateAndRenderWorld() interpolate the camera between its unmodified positions
1:58:16Find that the camera interpolates correctly
🏃
1:58:16Find that the camera interpolates correctly
🏃
1:58:16Find that the camera interpolates correctly
🏃
1:59:10Make UpdateCameraForEntityMovement() take a CameraZ from UpdateAndRenderWorld() to offset the camera's actual position
1:59:10Make UpdateCameraForEntityMovement() take a CameraZ from UpdateAndRenderWorld() to offset the camera's actual position
1:59:10Make UpdateCameraForEntityMovement() take a CameraZ from UpdateAndRenderWorld() to offset the camera's actual position
2:00:10Find that the camera interpolation is now buttery smooth
🏃
2:00:10Find that the camera interpolation is now buttery smooth
🏃
2:00:10Find that the camera interpolation is now buttery smooth
🏃
2:01:25Q&A
🗩
2:01:25Q&A
🗩
2:01:25Q&A
🗩
2:01:40jmc516 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:01:40jmc516 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:01:40jmc516 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:26tili_us Q: Are you planning to switch up the interpolation with a smoothdamp function?
🗪
2:02:26tili_us Q: Are you planning to switch up the interpolation with a smoothdamp function?
🗪
2:02:26tili_us Q: Are you planning to switch up the interpolation with a smoothdamp function?
🗪
2:03:21nickito97 Q: Do you ever feel like everything needs work to the point it's demotivating / you're not even sure where to start?
🗪
2:03:21nickito97 Q: Do you ever feel like everything needs work to the point it's demotivating / you're not even sure where to start?
🗪
2:03:21nickito97 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:28garryjohanson 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)
🗪
2:05:28garryjohanson 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)
🗪
2:05:28garryjohanson 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)
🗪
2:10:26tili_us Q: Is it better to work on a fun task or a task that is more important if you have limited time?
🗪
2:10:26tili_us Q: Is it better to work on a fun task or a task that is more important if you have limited time?
🗪
2:10:26tili_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:27Understanding the decision to use a technically suboptimal solution, e.g. garbage collection, as a trade-off
🗩
2:11:27Understanding the decision to use a technically suboptimal solution, e.g. garbage collection, as a trade-off
🗩
2:11:27Understanding the decision to use a technically suboptimal solution, e.g. garbage collection, as a trade-off
🗩
2:14:52Wrap it up
🗩
2:14:52Wrap it up
🗩
2:14:52Wrap it up
🗩