android 游戏服务器,用于Android / iOS回合制棋盘游戏的游戏服务器

编辑您将如何进行大型多人游戏?

嗨西里尔,

正如你所注意到的,有两个主要的事情是两个考虑的:

>发送到服务器的信息

>发送给客户的信息

只有一种类型的信息要发送到服务器:用户输入.如果你不这样做,当流氓客户端试图向你的服务器发送虚假数据时会遇到令人头疼的问题(比如说“我的坦克现在有100 000 000护甲”).

然后你发送给客户端的是你自己,但完全有可能只向客户端发送其他玩家的输入.这是使绝对最小值和小带宽使用成为可能的方法.这就是暴雪魔兽争霸3这样的游戏正在做的事情.作为奖励,这会产生微小的重播文件(因为你需要做的就是重播游戏所需要的是每个玩家输入发生的时间(和输入)).

将另一个玩家的输入发送给客户端的一个缺点是,这意味着每个客户端都存在所有游戏的逻辑.对于某些游戏,这可能是一个问题,因为人们可能会通过逆向工程游戏并发现缺陷而作弊.通过仔细,可控,随机化可以减轻此问题(除了输入时间之外,您还可以预先输入客户端无法猜测随机性的输入时间随机性.

另一种方法是在服务器端进行一些逻辑计算.然后,显然,您需要将服务器计算的结果发送到客户端.如果做得不错,这有利于防止作弊和不可能的盗版行为(例如,没有人设法在真实经济中玩魔兽世界 – 也就是说,在真正的暴雪服务器上 – 使用假的许可证密钥).

关于基于手机回合制的游戏服务器:只看一款畅销的回合制游戏就是这样做的.以Uniwar为例:适用于iPhone和Android.游戏服务器是用Java编写的“当然”.

要实现的一件事是,像你计划编写的那个游戏完全是确定性的:如果你不能轻易地编写一个重放器代码,或者如果你不能轻易地重现任何导致逻辑错误的场景,你就是做错了.

注意,确定并不意味着你不能向你的玩家添加看起来像随机性的东西:简单地说,随机性也应该是确定性的(例如,通过简单地为每个游戏使用不同的种子,玩家输入的时间作为伪随机源).

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值