【发布时间】:2015-05-28 09:20:32
【问题描述】:
我正在尝试为我的 Tank 游戏 2D (Unity) 构建在线游戏服务器。在我的游戏中,会有 2-4 名玩家控制他们的坦克并互相战斗。
-
我尝试过使用 Unity 网络,它不太适合我的游戏,因为我们必须在房间里选择 1 个玩家成为“服务器”,这对于我未来的发展来说不是很灵活(例如当“服务器”退出时,我必须做很多工作才能保持其他玩家之间的联系)。
-
然后我尝试使用 Nodejs là socket.io 构建自己的服务器以进行服务器-客户端通信。这很简单:从一个接收数据并将它们广播给其他人。在物理部分出现之前,它似乎工作正常:当客户端说有东西被击中或爆炸时,服务器必须信任客户端,然后将其广播给其他客户端。且不说被骗客户端,随着网络延迟,客户端的物理模拟会有所不同。例如,一辆坦克可能被这个客户击中,但它应该被另一个客户挡在墙后面并保持生命,但由于延迟,他身后的坦克接住了子弹并爆炸。在这些情况下,服务器不知道该听哪一个。
更新
- 正如下面提到的@Catwood,Photon PUN 是我的另一个选择。一世 以前遵循过他们的教程之一。 Photon 不需要像 Unity 网络那样让玩家成为“服务器”。但是如何在服务器上实现我的游戏逻辑呢? (用于权威服务器)
- 显然 Smartfoxserver 是另一个不错的(而且价格昂贵)的选择。我还没有深入了解他们的 API 文档。我不知道我是否可以实现我的游戏逻辑和规则(为了简单起见,他们的教程跳过了这部分)。
总之,我需要一个关于我的游戏服务器的建议:
- 是权威服务器
- 可以处理游戏规则并决定会发生什么(也许应该有自己的物理引擎)
- 适用于 Unity2D
- Javascript、C#、Java 优先!
我的方向是否正确,因为似乎某些游戏服务器服务(例如 Photon、Unity 网络)并不关心如何在服务器上实现游戏逻辑。这是否使他们不再是权威服务器?
我是这个领域的新手,任何事情都会不胜感激!
【问题讨论】:
标签: unity3d game-engine multiplayer