半条命2引擎:Source 关于Multiplayer Networking
由
http://www.gamedev.net/topic/607747-udp-in-a-fps/
关于udp在FPS中的设计问题引出的:
著名的FPS半条命2使用的source引擎在Multiplayer Networking中各种情况的处理:
http://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking#Entity_interpolation
1. 网络丢包问题,画面出现抖动,采用entity interpolation
2. 采用input prediction预测玩家下一个状态,而不是干等着服务端发来处理后的结果
3. lag compensation: 时延补偿,虽然跟现实世界状况有点差别,比如你被爆头了,但是你却没看见
凶手,这是因为服务端采用时延补偿,把你的状态调整到了之前的snapshot, 那时你是暴露在凶手眼前的,呵呵,服务端就是上帝,判断那时你是被击中的,虽然是之前的事,正义公平来晚了,还是要把你弄死,呵呵,有点像死神来了,你必须死。
关于lag compensation更详细介绍:
http://developer.valvesoftware.com/wiki/Latency_Compensating_Methods_in_Client/Server_In-game_Protocol_Design_and_Optimization