战略游戏服务器概念

Van*_*ing 17 javascript webgl websocket node.js

我打算创建一个基于WebGL的实时战略游戏,让玩家可以一起玩.我将使用Node.js创建游戏服务器,并使用websockets实现实时连接.

我已经打破了关于同步客户端的最佳概念的想法.

一种可能性是仅将用户的订单(移动单元,建筑物等)发送到服务器,服务器将它们发送给所有其他客户端.但在这里,我有延迟的问题.我认为游戏会以这种方式变得异步.

另一种可能性是在服务器上制作游戏.客户端仍然将指令发送到服务器,但服务器现在将所有单元和建筑物的所有已更改状态发送到客户端的间隔很长.这里的问题是数据量大,速度有多快......

您有其他想法或改进建议吗?

谢谢!

Jos*_*eti 22

基本上你必须在速度安全性之间做出决定.

让客户端完成工作并且计算速度更快但数据存在风险,因为客户端可以操作数据.

另一方面,让服务器完成所有工作的速度较慢,但​​数据更安全.

您可以选择双重方法,决定让客户端仅计算一些数据,同步然后检查其有效性,并让其余的在服务器上执行.

它还取决于游戏运行的速度,计算的数据量,服务器和频段/连接的速度等等......

您应该对两种方法进行原型设计并尝试一些测试来模拟客户端和服务器负载.

如果游戏很小,我会选择更多的服务器端工作.另一方面,对于一个复杂的游戏来说,最好是向客户分享更多的工作.无论如何,我认为总是需要权衡.

以下是您可能会发现有用的一些链接

多人游戏编程简介

实时战略网络

多人编程线程(旧但仍有许多有用的链接)

滞后补偿

防止多人作弊

第一个链接帮助了我很多时候,imho仍然是这个主题的最佳资源之一.

图书

多人游戏编程