Index hero/code656

This commit is contained in:
Miblo 2022-06-09 17:29:31 +01:00
parent 1bbff20746
commit f970a792d1
1 changed files with 66 additions and 0 deletions

View File

@ -0,0 +1,66 @@
[video output=day656 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Sketching Out Move Queues" vod_platform=youtube id=-GBFPHJbXFQ annotator=Miblo]
[0:00][Recap and set the stage for the day][:speech]
[0:44][The :audio tears and previously floating entities no longer move][:movement :run]
[2:06][@thesandvichmaker][This poor tortured piano][:audio]
[2:27][Toggle off the OutputPlayingSounds() call in GameGetSoundSamples()][:audio]
[3:48][The music has gone][:audio]
[3:56][Use #if 0 TEMPORARY][:language]
[5:17][Hero hopping feels fine, just needing trailing-edge events][:movement :run]
[6:38][Determine to move the glove with the hero, and sweep out a prescribed pattern upon attack][:movement :run]
[9:47][Continue with the idea of a move queue][:"entity system" :movement :research]
[10:51][Augment move_queue_entry with Damage and Speed][:"data structure" :"entity system" :movement]
[13:10][Determine to implement non-recallable glove attacks][:"entity system" :movement :research]
[17:37][Consider after-touch, and chaining attacks][:"entity system" :movement :research]
[18:26][Embark on attack patterns in ExecuteBrainHero(), changing Dest to Delta in move_queue_entry][:"data structure" :"entity system" :movement]
[20:20][Thoughts on the game looking grid-based, but actually being arbitrary][:geometry :research]
[21:10][Enable ExecuteBrainHero() to begin attacks in the correct direction][:"entity system" :movement]
[28:39][Set up ExecuteBrainHero() to push attack patterns onto the move queue][:"entity system" :movement]
[29:54][@notepaduser][enum is not in C][:language]
[31:34][Enable ExecuteBrainHero() to push attack patterns onto the move queue (cont.)][:"entity system" :movement]
[32:40][Consider chaining attacks together][:"entity system" :movement :research]
[33:57][Augment entity with a MoveGroupCount to limit the attack chain length created by ExecuteBrainHero()][:"data structure" :"entity system" :movement]
[36:28][Consider what constitutes the glove having "returned to hero"][:"entity system" :movement :research]
[38:19][Consider item statistics][:"entity system" :research]
[41:35][@notepaduser][Guys, if integers are more efficient than floats, should we make our int pointers point to decimal numbers?]
[42:05][Consider item statistics (cont.)][:"entity system" :research]
[43:26][Introduce stats][:"data structure" :"entity system"]
[44:53][Consider how to articulate modifiable glove statistics][:"entity system" :run]
[48:04][@frizi09][The glove has six slots for colorful stones, and if you fill them all, you can snap your fingers and half of the world dissolves]
[48:45][Introduce move_square_type and stat_coeff for stats to use / contain][:"data structure" :"entity system"]
[52:05][Introduce move_pattern][:"data structure" :"entity system"]
[53:09][Consider status effects][:"entity system" :research]
[56:42][Fill in move_pattern, introducing move_pattern_entry and move_queue_flag][:"data structure" :"entity system"]
[1:00:26][@tk_dev][@handmade_hero Not to be disrespectful, but it seems you are not following your own advice right now. I would suggest you implement the moving in a corner and continue from there. Sorry]
[1:00:34][Reflect on our stats and move_pattern sketch][:"entity system" :research]
[1:01:48][Add a MoveFlag_Ephemeral to move_queue_flag][:"entity system"]
[1:02:30][Reflect on our stats and move_pattern sketch (cont.)][:"entity system" :research]
[1:04:19][Enable ExecuteBrainHero() to initialise attack patterns, augmenting move_pattern with an EntryCount][:"data structure" :"entity system"]
[1:06:28][@rationalcoder][@tk_dev I had a similar thought, but you need some initial bullshit idea of structs and enums to start playing with usage code]
[1:06:59][@sagian2005][I don't understand how the "pattern" is involved in the game play. Like, what is the function of a pattern?][:"entity system"]
[1:08:33][@pileopoop][Like a chess move]
[1:09:19][Enable ExecuteBrainHero() to translate attack patterns from their canonical orientation, to the requested one][:"entity system"]
[1:13:14][Set up ExecuteBrainHero() to handle move queue overflow][:"entity system"]
[1:14:02][Explore ~4coder's function prototype HUD][:admin]
[1:15:59][Set up ExecuteBrainHero() to handle move queue overflow (cont.)][:"entity system"]
[1:17:29][Set up ExecuteBrainHero() to limit move queue pushes to the MaxMoveGroupCount][:"entity system"]
[1:18:35][Consider how / when to evaluate entity stats][:"entity system" :research]
[1:19:53][@sagian2005][Should the "if" just be the assert?]
[1:20:16][Consider how / when to evaluate entity stats (cont.)][:"entity system" :research]
[1:23:15][Reacquaint ourselves with the game update loop in Simulate()][:research]
[1:24:33][Consider how / when to evaluate entity stats (cont.)][:"entity system" :research]
[1:27:20][Consider entity stats evaluation to be harder than the move queue][:"entity system" :research]
[1:28:07][Use swappable hats to guide our entity stats evaluation considerations][:"entity system" :research]
[1:34:00][Consider evaluating entity stats when adding to hash][:"entity system" :research]
[1:35:29][Try making AddEntityToHash() recompute stats][:"entity system"]
[1:37:30][Augment entity with BaseStats, ActiveStats and AccumStats][:"data structure" :"entity system"]
[1:38:17][@thebaker__][Have you considered just dynamically calculating stats based off the current modifiers?][:"entity system"]
[1:40:35][@thebaker__][Well that way they just never get stale][:"entity system"]
[1:43:49][Reacquaint ourselves with our ATan2() calls][:mathematics :research]
[1:44:56][Rename the entity struct's ActiveStats and AccumStats to Stats and StatsAccum][:"data structure" :"entity system"]
[1:46:56][Introduce AdvanceEntityStats() for AddEntityToHash() to call][:"entity system"]
[1:48:04][Augment stats with Speed, for ExecuteBrainHero() to use][:"data structure" :"entity system"]
[1:49:25][Finish making ExecuteBrainHero() push moves onto the queue][:"entity system"]
[1:51:21][Make ExecuteBrainHero() consider the glove to be with the body if it is closer than 0.5 units away][:"entity system"]
[1:52:55][TODO([@cmuratori casey]): Set a return move when there's no moves in the queue?][:"entity system"]
[1:53:30][That's it for today][:speech]
[/video]