Java Networking:创建没有静态IP的服务器

时间:2012-02-22 06:51:16

标签: java networking

我在java中有一个小型原型游戏,玩家可以在其中建立自己的关卡,然后将自己设置为服务器,邀请其他玩家进入他们的世界。总而言之,它是对网络世界的一个很好的介绍。

然而,对于最终产品,我一直在考虑扩展它,以便我可以拥有一个具有中心世界的中央服务器。这将允许玩家在中心游戏世界中相遇,然后互相邀请他们进入他们自己的世界或其他什么。

理想情况下,当玩家进入另一个玩家的世界时,所有玩家将被有效地断开连接(除了可能来自通用聊天频道),以便该组进入世界的玩家成为其他玩家的新服务器。这个设置有望为游戏提供MMO的开放式连续性,同时也将我的服务器上的流量保持在最低限度,因为玩家将主要关闭他们自己的区域。

我正在考虑普通玩家很可能没有静态IP - 这是一个问题吗?将一个客户端的连接信息传递给另一个客户端是否存在安全风险?在开始尝试之前,我应该注意其他任何问题或不可能吗?

1 个答案:

答案 0 :(得分:1)

有趣的想法,我看了几个游戏项目的类似概念。

我看到三大问题:

  • 难以在玩家之间建立P2P连接。您可能最好尝试采用现有的P2P网络工具并根据您的游戏进行调整,而不是从头开始编写内容,但无论哪种方式都会遇到挑战(动态IP,防火墙等)。您可以使用类似JXTA的内容。
  • 任何被提名为服务器的人都可以"欺骗"非常容易,当你不再控制服务器时,你将有限制的方法来阻止它。您必须确保最终为此做好计划 - 如果您的游戏足够受欢迎,您可以保证某些玩家会尝试滥用它。
  • 确定谁加入每个游戏世界的机制 - 可能变得相当复杂,例如断开连接会发生什么?你如何确保球员了解每个世界?他们需要同时加入吗?等等。

这些都不是完全无法克服的,但要让它一切顺利进行将是一个挑战....