首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用javaNIO发送游戏/模拟状态的可能方法是什么?

用javaNIO发送游戏/模拟状态的可能方法是什么?
EN

Stack Overflow用户
提问于 2011-03-24 21:21:45
回答 1查看 903关注 0票数 1

在网络游戏/模拟领域,我经常听到“发送游戏状态或模拟状态”这句话,我的问题就是由此而来的,我真的需要知道怎么做?

我正在进行实时网络物理模拟,我的问题只是:*模拟状态如何从服务器传输到客户机*?(最不模拟的状态是模拟bodies=的坐标X,Y)

可能的场景:以简单的球模拟为例,服务器正在移动多个球,并将每个球的坐标发送给客户端进行绘制和更新模拟,每个球应根据从服务器接收到的坐标移动。

谢谢,

吉比拉

请不要提及任何基于字符串的解决方案,我正在寻找适用于不同物理模拟的通用机制。

EN

回答 1

Stack Overflow用户

发布于 2011-03-24 22:14:20

在快节奏的动作游戏中,动态对象的状态在结构中不断地被发送。所谓状态,我的意思是通常是位置和旋转。根据模型的体系结构,它可以是服务器不断地推送状态,或者在发生状态时发送状态更改。更多的时候是第一个。当在一段时间内没有收到状态时,就会发生游戏延迟。状态也可以有诸如速度、加速度等参数,这确实取决于游戏和您想要如何处理游戏事件。假设我们正在编写一个简单的2D游戏,上面有飞行的船只,那么这个状态在java中可能是一个简单的类,比如:

代码语言:javascript
复制
class ShipState{ 
      public float x; 
      public float y; 
      public float angle;
}

游戏中的网码负责传输这些结构。游戏通常有自己的协议建立在TCP/IP和UDP之上来处理所有的事情,因为在真实的游戏中有很多不同类型的信息,而不仅仅是物理状态。如果你对你的项目很认真,你应该认真研究一下网络库。我强烈怀疑是否有什么真正好的地方,因为JAVA在这一前沿领域并不是很流行。谷歌的单一请求带来了这个看起来不错的克里奥库。您可能还可以查看奈蒂,它是一个非常可靠的通用网络库。如果我要用Java为游戏编写一个网络代码,我就会去挖掘用C/C++编写的开源游戏网络库,比如Enet来获取一些想法。

深入了解您的问题,关于在服务器上的球模拟,它是简单的服务器发送球坐标和客户端接收这些。如果您不确定它是如何完成的,您可能需要查看这些教程。以及其他一般的Java网络教程。祝好运!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5425706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档