open block building game development #11
Channel: Sean Barrett
Date: 2015-07-09

1:17 Consult the TODO list
2:37 Run the game and consider the feasability of guns and an object system
4:00 Enable render_objects() and draw_main() to toggle off the third-person camera
5:24 Chat comment: "This isn't actually being rendered with voxels, right?"
6:56 Enable process_tick_raw() to toggle flying and walking
7:48 Run the game and try out the flying
8:07 Make process_tick_raw() only smooth the camera rotation if flying
10:19 Chat comment: "Your hair is amazing! Please shake your head"
10:59 Perform some hairography
11:42 Scale the rotation, then run the game in walking mode and consider also smoothing that rotation in this mode
13:08 Chat comment: "So, when will this game have shadows? I think shadows is an important thing in a game"
14:25 Chat comment: "Font is fine"
14:41 Categorise the TODO list, and note the importance of considering networking from the start
23:11 Chat comment: "I'm excited to see networking implemented"
24:56 Start by linking SDL_net
28:18 Chat comment: "So, why this Windows version? You have it for a specific reason or you just like it?"
28:42 Consider the problems to be solved in networking
33:58 Create server.c and list the responsibilities of the server and client
46:01 Consider how to refactor into this server-client architecture
49:36 Rename mesh data structures in preparation for the server-client refactor and commit them
55:05 List the responsibilities of the terrain generator
57:12 Chat comment: "Not sure if vc6 has an option to compile in C?"
57:33 Specify server and client as customers of the mesh builder process and start to define some data and functions in server.c
1:01:18 Introduce s_process_mesh_chunk() and s_set_player_coord()
1:08:51 Run the game and see that 
1:09:01 Introduce update_server_cache_feedback() to allow visualising server data
1:16:24 Run the game and view our statistics
1:17:55 Consider making s_set_player_coord() request the missing chunks
1:19:57 Make request_mesh_generation() only conditionally consider meshes
1:23:44 Consider how to satisfy the mesh requests in the server-client architecture
1:29:53 Chat comment: "Both the client and server request at every frame / same amount of time?"
1:30:50 Consider treating them as separate requests
1:32:52 Chat comment: "Could the server update more often than the client? If not just calculate mesh and physic and put physics in a queue?"
1:33:26 Make mesh_chunk_status() take Bool needs_triangles
1:34:44 Chat comment: "Do you have a job?"
1:36:24 Make s_set_player_coord() take requested_mesh and generate the appropriate the requests
1:39:04 Chat comment: "Oh nooooo, that bool loop just icks me out"
1:39:11 Make request_mesh_generation() call s_set_player_coord()
1:43:45 Introduce s_init_physics_cache()
1:45:57 Make render_voxel_world() handle the respective requests of the server and client
1:47:57 Make worker_manager() conditionally do the mesh building" process
1:53:21 Run the game, crash and investigate why
1:56:00 Make worker_manager() memset the mesh_chunk_set
1:56:10 Run the game and see that this is clearly wrong
1:56:42 Commit "working on server/client refactor"
1:57:38 Identify a bug with the Y coordinates and investigate what is causing it
1:59:21 Make worker_manager() give the s_process_mesh_chunk() call to the client side
2:00:46 Run the game and see a bug with the physics chunk request having overwritten the render request
2:02:03 Make worker_manager() and mesh_worker_handler() correctly set the has_triangles flag
2:02:45 Run the game and still see some kind of bug with getting the wrong chunk data
2:03:11 Give the physics call back to the server, run the game and find that it's still busted
2:03:50 Set a breakpoint in s_process_mesh_chunk(), run the game and find that we only hit it once
2:08:35 Break into worker_manager() and inspect the mc-&gt;chunk_x and mc-&gt;chunk_y
2:09:13 Make update_server_cache_feedback() store the chunk coordinates
2:10:48 Make s_set_player_coord() put the requested mesh into world coordinates
2:11:16 Run the game and find that it is correctly generating physics data around the player
2:13:23 Stop there, with a glimpse into the future

Annotated by Miblo - https://handmade.network/m/Miblo