2012-03-25 136 views
1

我正在创建一个简单的Android游戏,处理多人游戏并连接到服务器。这就是我想为我的比赛做到的。客户端/服务器网络游戏的设计和逻辑

客户端向服务器发送按键移动。

服务器接受输入,更新状态和计算,并返回到客户端的新位置

客户获得新的位置,并更新屏幕。

我已经有一些代码编写的,因此我对我的一个线程发送击键到服务器,等待新的位置,然后更新屏幕。事情是球员的运动之间存在滞后。我认为这与延迟有关。我还尝试了两个线程,一个用于从服务器发送/接收数据,另一个用于更新屏幕。但它并没有解决我的延迟问题。

任何人都可以提出一个好的网络游戏设计?

我需要做早期预测吗?

我是否需要单独的线程来获取数据和渲染屏幕?

P.S.This是我第一次创建网络游戏,所以我不知道我在做什么。

回答

0

我更喜欢使用的结构是具有在客户端一个线程更新图形和逻辑,然后一个线程接收和发送数据到服务器。如果你有延迟问题,如果你想连续发送数据,有一个神奇的选择可以解决它。 (至少这是,如果你使用的是Java的语法)

mySocket.setTcpNoDelay(true); 

此选项解决了我的延迟问题,当我发送实时坐标在网络上。

编辑:我认为,在默认情况下等待的TCP和蕉发送前的数据,如果你想快发小的更新这可能是一个问题在一起。