我一直在尝试将两台计算机的处理能力合二为一的方式(不是通过物理连接它们,而是将任务分成两半,每台计算机分成两半,然后是“帮助”计算机的结果被发回以与“主”计算机通过互联网的结果相结合)
我一直在使用这种方法来计算分形图像,效果很好。图像的左半部分和右半部分在不同的计算机上计算,然后合并为一个。将一半图像发送到另一台计算机并将它们组合起来的过程可能需要一秒钟,因此效率很高,可以将时间减少一半。
当您想要使用需要非常频繁地交换数据的“多计算机处理”时,问题就出现了。 例如,我想将它用于类似n体模拟的东西。您需要每秒多次进行数据交换,因此如果交换需要大约一秒钟,那么尝试使用两台计算机实际上需要更长的时间,那么它就需要一台。
那么在线视频游戏如何做呢?你周围的玩家,他们正在做什么,他们穿什么,每件事都要进行,每个人每秒都要玩很多次。
我只是在寻找有关如何以较快的速度发送大量数据的一般想法。 我一直在做的方式是在免费托管网站上使用PHP。帮助计算机将计算其一半的数据,然后将其发送到PHP文件,该文件将数据保存在某处。然后主计算机读取它并将其与已计算的数据相结合。 我觉得PHP不是可行的方法,但我对这类事情知之甚少。
答案 0 :(得分:2)
您的第一步是从使用HTTP请求直接使用套接字 - 这将使您更好地控制通信,并通过减少HTTP协议的开销来提高性能(这可能非常重要) 。此外,使用套接字,您可以更轻松地让程序直接相互通信,而不是通过基于PHP的软件。
网上有很多关于如何使用这种系统的指南,我建议谷歌搜索“游戏网络”和“分布式计算”等内容。
以下是我过去发现的一系列文章,其中涵盖了您想要阅读的各种内容:http://gafferongames.com/networking-for-game-programmers/
(他不使用Java,但这些想法是通用的)