3d 虚拟世界帮助

3d 虚拟世界帮助,3d,client,3d,Client,我想开始写一个多人3D游戏。这将是一个虚拟世界,用户被表示为玩家。每个玩家,都是一个3D模型。我将用Java和JOGL编写这篇文章,因此它将是跨平台的,并且可以通过web(applet)访问。在C++中,服务器将是WRRITIN。 当用户用鼠标点击虚拟世界中的某个点时,它将在动画中转到该点。我的问题是,客户端是否应该计算到要去哪里,并每次向服务器发送他的新位置,以便服务器更新客户端?或者,客户机是否应该将服务器发送到他想去的地方,然后服务器将向该客户机和所有客户机发送他的新位置?考虑到我想要最小

我想开始写一个多人3D游戏。这将是一个虚拟世界,用户被表示为玩家。每个玩家,都是一个3D模型。我将用Java和JOGL编写这篇文章,因此它将是跨平台的,并且可以通过web(applet)访问。在C++中,服务器将是WRRITIN。 当用户用鼠标点击虚拟世界中的某个点时,它将在动画中转到该点。我的问题是,客户端是否应该计算到要去哪里,并每次向服务器发送他的新位置,以便服务器更新客户端?或者,客户机是否应该将服务器发送到他想去的地方,然后服务器将向该客户机和所有客户机发送他的新位置?考虑到我想要最小带宽并防止脚本小子。
谢谢。

我认为流行的设计是在客户端上假设一个操作会成功并继续,告诉服务器它做了什么,并允许服务器在检测到客户端做了可疑的事情时“纠正”客户端。这使得游戏客户端能够响应玩家的请求,同时仍然给予服务器否决权


因为服务器始终是世界状态的权威,而其他游戏客户端只能通过服务器接收其信息,客户端的任何非法操作都会在可能影响其他玩家之前被服务器捕获。

我认为流行的设计是在客户端上假设一个操作会成功并继续,告诉服务器它做了什么,并允许服务器“纠正”当客户端检测到它做了可疑的事情时。这使得游戏客户端能够响应玩家的请求,同时仍然给予服务器否决权


由于服务器始终是世界状态的权威,而其他游戏客户端只能通过服务器接收其信息,因此客户端的任何非法行为都将在可能影响其他玩家之前被服务器捕获。

如果您不喜欢客户端的欺骗,你最好通过服务器计算玩家的位置,但是,当服务器处理某人的位置时,你必须执行线程处理,以不落后于其他玩家。

如果你不喜欢客户端的作弊,最好通过服务器计算玩家的位置,但是,当服务器处理某人的位置时,您必须执行线程处理,以免落后于其他玩家。

永远不要信任客户端。它会受到各种各样的问题的影响,包括故意作弊和未被注意到的腐败。如果你允许客户端指定角色的位置,一些客户端会指定一个你想让该客户端越界的位置,而另一些客户端会生成一个非常不准确的位置,正常情况下是不可能跳出的(除非你有远程传送到基地的能力)

客户端应该告诉服务器角色要去哪里,服务器应该对此做出响应。它已经必须告诉其他所有相关的客户角色正在做什么,所以它可以很容易地为每个客户这样做


Runescape是我所知道的唯一一个按照你建议的方式工作的MMORPG。在Runescape上,如果您遇到连接问题并单击移动,则您的角色将保持静止(尽管以较小的方式移动,以使其看起来处于活动状态),直到服务器获取并确认移动。(您的角色将在没有用户输入的情况下战斗,从而使您有机会在危险区域中的坏连接中生存下来。)

永远不要信任客户端。它会受到各种各样的问题的影响,包括故意作弊和未被注意到的腐败。如果你允许客户端指定角色的位置,一些客户端会指定一个你想让该客户端越界的位置,而另一些客户端会生成一个非常不准确的位置,正常情况下是不可能跳出的(除非你有远程传送到基地的能力)

客户端应该告诉服务器角色要去哪里,服务器应该对此做出响应。它已经必须告诉其他所有相关的客户角色正在做什么,所以它可以很容易地为每个客户这样做


Runescape是我所知道的唯一一个按照你建议的方式工作的MMORPG。在Runescape上,如果您遇到连接问题并单击移动,则您的角色将保持静止(尽管以较小的方式移动,以使其看起来处于活动状态),直到服务器获取并确认移动。(你的角色将在没有用户输入的情况下战斗,让你有机会在危险区域的坏连接中生存。)

是的,我从RuneScape中获得了这个想法。是的,我从RuneScape中获得了这个想法。耶,RuneScape克隆!请在几周或几个月后回到这里,与我们分享你所做的一切,我真的很想看到你的进步。耶,RuneScape克隆!请在几周或几个月后回到这里,与我们分享您所做的工作,我真诚地希望看到您的进步。