Validation 对';主动';游戏

Validation 对';主动';游戏,validation,Validation,假设我做了一个简单的蛇游戏,在上面添加了一个highscore函数 什么是确保球员不会作弊的最好方法?我能想到的最直接的方法是,确保验证所有内容,或者至少在服务器上模拟游戏。按对了吗?好吧,你的蛇向右移动什么的 这种服务器非常繁重的方式是唯一的方法吗?还是我遗漏了什么?不确定有多少游戏使用了共享客户端/服务器模式,但这可能是当今动作游戏的一个公平份额。基本上,服务器和客户端共享大部分代码库,并同时模拟游戏(如果您的方法都是确定性的,这会有所帮助,但对于火花/爆炸之类的图形效果则无关紧要,因为它们

假设我做了一个简单的蛇游戏,在上面添加了一个highscore函数

什么是确保球员不会作弊的最好方法?我能想到的最直接的方法是,确保验证所有内容,或者至少在服务器上模拟游戏。按对了吗?好吧,你的蛇向右移动什么的


这种服务器非常繁重的方式是唯一的方法吗?还是我遗漏了什么?

不确定有多少游戏使用了共享客户端/服务器模式,但这可能是当今动作游戏的一个公平份额。基本上,服务器和客户端共享大部分代码库,并同时模拟游戏(如果您的方法都是确定性的,这会有所帮助,但对于火花/爆炸之类的图形效果则无关紧要,因为它们不会影响核心游戏性)

服务器向客户端发送更新,告诉它实际发生了什么,客户端会纠正错误。这就是为什么在一些动作游戏中,当你在网络中出现尖峰时,你会丢下一些数据包,你可以继续四处奔走,向人们射击,然后突然服务器重新建立通信,并将你放回5秒钟前的位置

服务器控制所有重要的交互,如生命损失、死亡等,这样你就无法在任何时候提升10亿点的生命值

这里有一篇好文章:


这就解释了旧的“服务器就是老板”模型和新的带有客户端预测的共享编程模型等。虽然它已经有几年的历史了,但据我所知,其中大部分仍然适用。

不确定有多少游戏使用了共享的客户端/服务器模型,但现在它可能在动作游戏中占有相当大的份额。基本上,服务器和客户端共享大部分代码库,并同时模拟游戏(如果您的方法都是确定性的,这会有所帮助,但对于火花/爆炸之类的图形效果则无关紧要,因为它们不会影响核心游戏性)

服务器向客户端发送更新,告诉它实际发生了什么,客户端会纠正错误。这就是为什么在一些动作游戏中,当你在网络中出现尖峰时,你会丢下一些数据包,你可以继续四处奔走,向人们射击,然后突然服务器重新建立通信,并将你放回5秒钟前的位置

服务器控制所有重要的交互,如生命损失、死亡等,这样你就无法在任何时候提升10亿点的生命值

这里有一篇好文章:


这就解释了旧的“服务器就是老板”模型和新的带有客户端预测的共享编程模型等。虽然这已经有几年的历史了,但据我所知,其中大部分仍然适用。

我也很担心。谢谢你的确认,非常有帮助。它还解释了你仍然可以射击250毫秒前由于ping时间而移动的坏人的方式(使用客户端预测-你射击你看到的-你不需要像以前那样领导目标!)这真的取决于游戏。您可以进行完全模拟,也可以进行近似。在没有真正竞争性的游戏中,作弊是非常罕见的,你可以建立乐观的模型,比如有一个检查游戏的服务,直到后来ping用户说他是作弊者,然后禁止他,或者对他做任何你想做的事。如果这阻碍了你的发布,你可能只需要制作一个游戏,如果它成功了,那么制作足够好的作弊保护并不一定是完美的。作弊确实是多人游戏的破坏者,但对于这一款,我会很乐观,我也很害怕。谢谢你的确认,非常有帮助。它还解释了你仍然可以射击250毫秒前由于ping时间而移动的坏人的方式(使用客户端预测-你射击你看到的-你不需要像以前那样领导目标!)这真的取决于游戏。您可以进行完全模拟,也可以进行近似。在没有真正竞争性的游戏中,作弊是非常罕见的,你可以建立乐观的模型,比如有一个检查游戏的服务,直到后来ping用户说他是作弊者,然后禁止他,或者对他做任何你想做的事。如果这阻碍了你的发布,你可能只需要制作一个游戏,如果它成功了,那么制作足够好的作弊保护并不一定是完美的。作弊真的是多人游戏的破坏者,但对于这一个我会很乐观。