【发布时间】:2015-10-09 09:30:02
【问题描述】:
我尝试制作一个可以运行的 PONG 游戏,然后将其更改为多人游戏。
您可以选择“游戏速度”,这基本上是在球可以移动和发送位置数据之前需要多少周期。
所以每次滴答(默认为 200)服务器都会发送给
pos:{0}:{1}&ballpos:{2}:{3}&gametick:{4}
(当然是 String.Format)
并且客户端的每个滴答声都会将其发送到服务器:
pos:{0}:{1}
为了将客户端位置与托管播放器同步。
它使用此功能发送消息:
public static void sendMessage( String message , UdpClient client)
{
Byte[] toSend = new byte[55];
toSend = Encoding.ASCII.GetBytes(message);
client.Send(toSend, toSend.Length);
}
现在当我们玩游戏时,例如我们在 Skype 上,Skype 连接质量非常低,而且非常滞后。 那么游戏就会变得迟钝。
有没有更有效的方式将数据发送到同步位置?
【问题讨论】:
-
您多久发送一次更新?是每 200 毫秒吗?
-
我不会每“滴答”一次,我会每隔几毫秒做一次。 200 次循环在现代计算机中算不了什么 - 难怪你们会互相攻击。
-
@Gusdor ,我每隔 'tick' 发送更新,默认情况下是 200 个循环的 while 循环
-
@PazHaviv 你想知道吗?似乎这比在互联网上随便问一个陌生人更有决定性。
-
@JamesThorpe 我目前不想搞乱作弊和反作弊。因为这只是朋友之间的游戏。
标签: c# udp multiplayer lag