46 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| [video output=day063 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Simulation Regions" vod_platform=youtube id=a7_vSEEgArQ annotator=schme annotator=jpike]
 | |
| [0:25][Recap on getting initial usage code down to avoid bad design]
 | |
| [2:03][Design constraints for high/low frequency entities]
 | |
| [4:46][Float precision problem for large worlds]
 | |
| [8:21][Problem of scaling to large entity counts]
 | |
| [10:06][Realizing the problem - wrong way to think about low frequency entities]
 | |
| [11:18][Realizing the solution - simulation regions]
 | |
| [16:18][Handling entities moving outside boundaries of simulation region]
 | |
| [18:39][Starting the code reorganization]
 | |
| [19:33][The sim_region struct]
 | |
| [21:10][How to alter SetCamera]
 | |
| [21:56][Ending simulation by mapping entities in a sim_region into low space]
 | |
| [24:18][Beginning simulation by mapping entities into a sim_region]
 | |
| [26:12][Simplifying entity structs]
 | |
| [27:26][More details on BeginSim]
 | |
| [29:11][Adding an entity to a sim_region]
 | |
| [34:23][Switching from camera space positions to simulation space positions]
 | |
| [38:02][Adjusting the entity structs]
 | |
| [39:48][Memory allocation for sim_regions]
 | |
| [42:45][Storing back to low entities in EndSim]
 | |
| [45:45][Deleting code that is no longer applicable]
 | |
| [48:53][Replacing SetCamera with getting a sim_region in the main loop]
 | |
| [51:04][Moving camera position update from main loop to EndSim]
 | |
| [51:48][Adjusting rendering for simulation regions]
 | |
| [56:00][Wrapping up for today - fixing compiler errors]
 | |
| [59:10][Q&A][:speech]
 | |
| [59:46][Recommendation for names - instead of stored entities you could have stasis_entity and stasis_region; for the high frequency, you would keep the sim_region and sim_entity.]
 | |
| [1:00:29][Since we know that an entity's speed is bounded, couldn't we calculate a sim_region with bounds such that no entity can move outside of it during the frame?  That way anything that the entity could collide with would be pulled into the sim_region?]
 | |
| [1:02:29][How many TODOs do you have?]
 | |
| [1:04:36][How will you handle the disparity in update rate between offscreen and onscreen entities?  Does it matter?]
 | |
| [1:05:40][Will the sim_region away from the player cause large timesteps from the normal?]
 | |
| [1:06:22][I missed whether this new system is based around discrete rooms or integer mapped coordinates.  If it's based on rooms, would it be trivial to think in coords instead?]
 | |
| [1:06:44][What will happen if your sim_region and player location are at the same place?  Will it bug out?]
 | |
| [1:08:11][Why is the low-high frequency system so important?  Isn't creating basic gameplay rules and AI interactions in a small world more in-line with your philosophy of doing the simple thing first?]
 | |
| [1:13:34][How will we update low frequency regions given the sparse nature of the world?]
 | |
| [1:14:04][Is there a major advantage to using 'fors' instead of 'whiles'?]
 | |
| [1:15:10][What will the entities that are not visible on the screen be doing?  I can't really think of examples of things that need to be updated if they're far from the player.]
 | |
| [1:17:33][How many low entities does it take to screw in a light bulb?]
 | |
| [1:18:26][For your sparse storage, why not store the (x,y,z) coords bit-shifted into an aligned integer to use it as a composite key into a dictionary or hash map?]
 | |
| [1:20:01][Do you approach design in a similar way to your architecture (i.e. exploration-based design, design sort of emerges itself organically, etc.)?]
 | |
| [1:20:24][Is multi-threading in the scope of topics for the project?]
 | |
| [1:21:20][If a far away room gets updated and the rooms around it are updated too, don't we have this recursive problem where the around rooms need their neighbor too?]
 | |
| [1:22:29][How much work would it take to turn the game you are making from a 2D world into a 3D world?]
 | |
| [1:23:07][To clarify my early design question, I just mean as far as your design decisions for Handmade Hero.]
 | |
| [/video]
 |