1
5
网络游戏编程是一个怪物的话题,所以很难说“是的,这就是你如何设计一个网络架构”。它完全取决于您的游戏要求。你打算发送多少包?是否会在每一帧发送一个数据包,表明播放器a持有左键?这种通信是否仅限于局域网? 对于像在4个客户机之间同步移动这样简单的事情,将发送、接收和呈现放在不同的线程中似乎有些过分了。也许作为一个起点,您应该从一个更简单的设计开始,当您觉得数据包的输出速度不够快时,就转向多线程。
在每一帧开始时,您可以读取udp套接字以获取传入的数据包和更新位置(以及发送给对等方的任何其他内容),然后绘制。当游戏输入被处理时,数据包被创建并累积在数据包队列中。通过这种方式,您可以执行优化,例如将多个消息塞进/合并到一个数据包中,删除重复的消息(例如,只发送最新的位置更新)等。因此,在每个游戏循环结束时,处理最终的数据包队列并将其发送给对等方。 不过,这是一个大话题,我已经忽略了很多细节。 看看gaffer的博客: http://gafferongames.com/networking-for-game-programmers/what-every-programmer-needs-to-know-about-game-networking/
|
fourthking · GameSparks手动配对 6 年前 |
0x1337 · 如何知道StreamReader何时准备就绪? 6 年前 |
Kavin-K · 如何构建一个简单的多设备聊天应用程序?[已关闭] 6 年前 |
Blazing Forrest · 在JAVA中查找WIFI状态 6 年前 |
Marco · 如何计算R中igraph对象中给定类的顶点数? 6 年前 |
John Conrad Geenty · 读取BPF程序集 6 年前 |