is presently its sole maintainer,
You can support him:
Recap and set the stage for the day
Run the game to see how the camera is working and consider introducing the notion of camera movement while lingering
handmade_sim_region.cpp: Begin to enable UpdateCameraForEntityMovement() to move the camera gradually towards a target
A few words on the commonness in games of moving gradually to a target
handmade_sim_region.cpp: Make UpdateCameraForEntityMovement() set the camera's target
Run the game to see no camera movement
handmade_sim_region.cpp: Enable UpdateCameraForEntityMovement() to snap the camera to its target
Run the game to see the camera snap between locations
handmade_sim_region.cpp: Enable UpdateCameraForEntityMovement() to gradually drive the camera from its current location to its target
Run the game to see that camera interpolation in action
Blackboard: Moving along a vector by a simplified rate
Run the game to show the constant velocity of the camera
Blackboard: Prentending that our velocity is encoded in the length of p
Blackboard: Computing instantaneous velocity, without acceleration, using a resolved rate equation
Run the game and determine to move the camera when lingering
handmade_entity.h: Add CameraBehavior to the entity struct
handmade_sim_region.cpp: Begin to enable UpdateCameraForEntityMovement() to handle camera behaviors
handmade_world_mode.cpp: Make AddStandardRoom() generate a CollisionVolume near the hole to trigger camera movement
Run the game and try triggering that CollisionVolume
handmade_sim_region.cpp: Introduce the notion of a SpecialCamera, and make UpdateCameraForEntityMovement() handle it on a timer
Run the game to try out the timed triggering
handmade_sim_region.cpp: Enable UpdateCameraForEntityMovement() to zoom the SpecialCamera
Run the game to see that timed camera movement with zoom, and tweak the movement
handmade_sim_region.cpp: Make UpdateCameraForEntityMovement() only trigger the camera movement when the hero is not moving
Run the game to try the camera, and determine to create a camera movement for the stairwell
handmade_world_mode.cpp: Prevent AddStandardRoom() from randomising the stair positions
Run the game to see our even stairwell, and tweak its dimensions
handmade_world_mode.cpp: Enable AddStandardRoom() to generate the stair tiles separately from the hole generation
Run the game to try out our wider stairwell, and tweak it
handmade_world_mode.cpp: Define the two StairsCam CollisionVolumes in AddStandardRoom()
Run the game and determine to create movement logic
handmade_sim_region.cpp: Implement some velocity constraints for the SpecialCamera in UpdateCameraForEntityMovement()
handmade_math.h: Introduce IsInRange()
handmade_sim_region.cpp: Enable UpdateCameraForEntityMovement() to distinguish between a Player and an Area camera
Run the game to try out those cameras
handmade_entity.h: Introduce the notion of a CameraMinTime in entity
Run the game to try out the timers
handmade_world_mode.cpp: Set GeneralVelocityConstraints for the HoleCam and StairsCam
Run the game to try triggering the StairsCam, and investigate the snapping
handmade_world_mode.cpp: Determine to enable UpdateAndRenderWorld() to correctly update the camera position when changing sim region
sahfortv Q: There seems to be a second problem with StairCam 1 vs StairCam 2, i.e. you need to be moving even though you're on the first stair, so the collision areas are out a bit?
rooctag Q: Why are the trees below smaller than the trees up top?
butwhynot1 Q: Are you going to experiment zooming by changing the FOV rather than changing the distance?
macielda Q: Why use velocity and not, for instance, acceleration as a constraint parameter?
m0re85 Q: Why are the health bars flickering? Seems to be most noticeable when the hero is at standstill (the familiars move all the time and they don't flicker as much)
handmade_entity.cpp: Enable DrawHitpoints() to prevent Z-fighting
radovik Q: Off-topic: Is it normal for a trivial code change to lead to a 250MB diff file? Is this optimization / MIPS architecture weirdness?
rooctag Q: What do you want to fit in the camera view? Whole room, or some amount of tiles so camera movement per room is needed
ahoward1024 Q: Hey Casey, in the PushBitmap function of the handmade_render_group you have a shadowed v4 parameter Color that is masked by the u32 Color. Compiles as a warning (to an error) in VS 2015
handmade_render_group.cpp: Move in PushSetup() and transient_clip_rect from handmade_render_group.h [see Resources, GitHub]
teamrandb Q: Does the profiler still work? If not, what is a quick overview of the work that is needed to get it working again? And was it purely a display issue that we could not see it?
handmade_render_group.cpp: Fix GetClipRect() to correctly clip the profiler's text
handmade_render_group.cpp: Introduce GetScreenPoint() for GetClipRect() to call
Run the game to see that it's getting closer to working
Blackboard: Mapping screen dimensions to -1 to 1
handmade_opengl.cpp: Try disabling the ClipRect bounds setting
Run the game to see what's going on with the clipping
teamrandb Q: Thanks Casey, appreciate you walking through it
handmade_render_group.cpp: Temporarily prevent the clipping from occuring and run the game to see that
macielda Q: Can you click "Threads" on the Profile window?
macielda Q: Is the mouse over text working now?