当前网络实时战略游戏的最新状态是什么?
我似乎还记得几年前,一些AAA冠军只传递了玩家的信息(《星际争霸1》,《帝国时代》)。由于这需要您完全确定所有其他内容,因此这仍然是可行的选择吗?同步随机数生成器似乎是可行的,但是FPU实现中的细微差别如何?
还是战略游戏使用的是更接近动作游戏网络的东西,而是传输单个实体(使用某种形式的预测和(增量)压缩)?
如果是这样,如何处理弹丸等易挥发物品?
客户端/服务器与点对点呢?我猜所有这些都是紧密相关的。
感谢您的时间!
当前网络实时战略游戏的最新状态是什么?
我似乎还记得几年前,一些AAA冠军只传递了玩家的信息(《星际争霸1》,《帝国时代》)。由于这需要您完全确定所有其他内容,因此这仍然是可行的选择吗?同步随机数生成器似乎是可行的,但是FPU实现中的细微差别如何?
还是战略游戏使用的是更接近动作游戏网络的东西,而是传输单个实体(使用某种形式的预测和(增量)压缩)?
如果是这样,如何处理弹丸等易挥发物品?
客户端/服务器与点对点呢?我猜所有这些都是紧密相关的。
感谢您的时间!
Answers:
http://www.gamasutra.com/view/feature/3094/1500_archers_on_a_288_network_.php 这仍然是RTS游戏中进行联网的方式。P2P也是处理连接的常规方法。但是,使用锁定时间步长模型会导致令人反感的同步和作弊处理。有一种很好的方法来恢复发生不同步的情况,并且所有RTS游戏都简单地说“退出比赛”。错误跟踪不同步错误也是一个噩梦。
不适用于RTS,但任何快节奏的游戏都需要插值和预测
http://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking
这是一本很好的读物,它将回答您很多问题:
http://udn.epicgames.com/Three/NetworkingOverview.html
在我的策略/塔式防御游戏中,我使用的是客户端/服务器模型,并且能够保持到目前为止所有的确定性。客户端仅向服务器发送执行操作的请求(但实际上并未执行任何操作),并且当事情发生变化时,服务器会将更新,创建和删除发送给客户端。即使我的游戏目前是确定性的,我也不相信我的客户做任何正确的事,服务器是老板,并且完全控制游戏。客户端只是一个哑终端。
为了使一切真正简单,我将反射和事件结合使用,以使我的实体完全不了解事物的网络方面。我还使用了演员和“力”的概念(与FPS(如虚幻游戏)中的演员和典当相对)。这样就可以进行很好的封装,并可以存放部队的财物。