×

Sean Barrett's video: open block building game development 18

@open block building game development #18
2:19 Recap and set the stage for the day 5:08 Comment out the define NO_PLAYER_INPUT_BUFFERING, run the game and see our current status 7:19 Consider sending to the player how long the history is 9:35 Add valid to the player_net_controls struct and make process_player_input() set that validity 12:25 Introduce connection_info struct and make build_packet_for_player() set that info 14:18 Introduce count_buffered_packets_for_player() 17:26 Run the game and see how many packets it is buffering 19:29 Run a second client and assess this situation 22:28 Make client_net_tick() output the pending input 23:39 Chat comment: "How high are your monitors set up?" 26:44 Run the game with two clients and watch our "pending input" output 29:03 Set a breakpoint in render_objects(), run the game and find that it's not breaking 29:58 Make client_net_tick() force the object to be valid, run the game and see the guy 31:32 Update the TODO list 32:42 Introduce create_player() to replace some of create_connection() 35:30 Run the game and see if it works okay with two clients 38:50 Commit "print stats on clients, including of pending packets on server" 39:13 Chat comment: "Ground is at 92z" 40:46 Consider the TODO list 42:57 Add client_seq and client_frame to the connection_info struct and make build_packet_for_player() set those values 46:31 Make client_net_tick() output the last_frame received 48:43 Run the game and see that output 52:18 Make it do a ping 54:14 Introduce log_input() 56:17 Introduce get_timestamp_for_seq() 57:33 Make client_net_tick() output that ping 58:35 Run the game and see the ping 59:24 Commit "print ping (roundtrip processing time)" 59:58 Introduce build_ping_for_player() 1:01:48 Chat comment: "Reply from 127.0.0.1: bytes=32 time=100ms TTL=61" 1:02:03 Make server_net_tick_pre_physics() call build_ping_for_player() 1:06:31 Run the game and see the ping now 1:06:43 Chat comment: "His zen-mode programming style is supercalifragilisticexpialidocious" 1:08:07 Chat comment: "You're le zen dude, bro" 1:09:07 Correct the !is_server test, run the game and find that the server is no longer rendering 1:10:39 Prevent the server from creating a window 1:11:26 Introduce game_init() to do some of the work of render_init() 1:12:03 Run the game and see that it is broken 1:12:52 Let the server keep rendering for now 1:14:25 Consider making the server track multiple physics regions 1:19:20 Enable physics_move_walkable() to glide the player along walls 1:25:09 Run the game and try out the collision 1:26:34 Enable physics_move_walkable() to make the player step up, maintaining their velocity, while falling 1:33:59 Run the game and see if that movement now works as expected 1:34:33 Commit "report ping for player; tweak player physics" 1:35:45 Chat comment: "With the 2D AABB case I solve general push-out by testing and pushing out one axis at a time" 1:36:04 Chat comment: "In the past I have also tried iterating through different push-out solutions and choosing the one that is closest to the original "in-air" velocity" 1:36:45 Update and consult the TODO list 1:38:46 Make client_net_tick() replay the last K inputs relative to server update data 1:52:41 Introduce decode_net_controls_into_state() to do some of the work of server_net_tick_pre_physics() 1:53:38 Chat comment: "On that note where does uint8 get typdef'd?" 1:57:13 Make client_net_tick() output how many packets it replays 1:59:41 Run the game and watch that output 2:00:46 Make client_net_tick() apply a new input immediately once it is built 2:07:30 Increase the length of the history window 2:09:42 Run the game, see that it is weirdly jerky and investigate why 2:12:10 Make client_net_tick() test on the input_history[j], run the game and find that is does feel instantaneous now 2:15:24 Commit "initial client-side prediction / compensation" 2:16:26 Make server_net_tick_pre_physics() output the input frame, and client_net_tick() output the player's current frame 2:20:02 Run the game, view that output and try and trigger a replay spike 2:21:15 Set MAX_CLIENT_FRAME_NUMBER_LOG2 to 8, run the game and view that output again 2:25:16 Bail 2:25:42 Commit "more debug info for client side prediction" with a view to merging the Linux version, and update the overview Annotated by Miblo - https://handmade.network/m/Miblo

14

2
Sean Barrett
Subscribers
6.1K
Total Post
103
Total Views
108.3K
Avg. Views
2.1K
View Profile
This video was published on 2016-04-24 06:16:22 GMT by @Sean-Barrett on Youtube. Sean Barrett has total 6.1K subscribers on Youtube and has a total of 103 video.This video has received 14 Likes which are lower than the average likes that Sean Barrett gets . @Sean-Barrett receives an average views of 2.1K per video on Youtube.This video has received 2 comments which are lower than the average comments that Sean Barrett gets . Overall the views for this video was lower than the average for the profile.

Other post by @Sean Barrett