gpt4 book ai didi

javascript - 如何在考虑服务器负载的同时制作多人 javascript 游戏作弊证明

转载 作者:行者123 更新时间:2023-11-29 15:59:22 25 4
gpt4 key购买 nike

为了学习更多新技术,我开始制作一个小游戏。这个想法是不断扩展它并添加新的东西。这对我来说是一个很好的方式来试验和尝试新技术,同时也有一些东西可以玩。

现在我有一个很好的基础。它完全构建在 Vue.js 中。但是现在一切都在客户端处理。将来我想使用 websockets 将其变成多人游戏。我知道让客户处理所有事情并不理想,因为作弊很容易发生。我想知道应对这种情况的最佳方法是什么。我的游戏有点像太空侵略者。很多敌人产生,你必须射击他们。

最初,我想将所有游戏逻辑都放在服务器上,让客户端按照服务器的指示进行渲染。但是在高负载情况下会怎样呢?如果 10000 名玩家同时玩游戏,这将意味着每秒向服务器发出大量请求。我认为这会严重影响游戏的性能。

这方面的最佳做法是什么?我想尽可能地防止作弊,同时还要考虑到高负载和运行良好的游戏。我读过一些游戏只是使用某种形式的混淆来计算分数,但由于我的游戏非常简单,所以混淆它似乎并不会真正起作用。我附上了当前游戏的屏幕截图,让您了解我在说什么。

你是船,敌人是黄点并在顶部生成。当他们撞到最后一排时,你就失去了生命。当你输掉 3 时,游戏就结束了。我的问题是,如果同时运行许多此类游戏,跟踪所有这些敌人将变得极其困难,因为会有很多。

谨致问候。

最佳答案

首先,如果您计划让成千上万的用户保持同步,则 TCP 不是可行的方法,您必须使用更好的 UDP在处理多人游戏时比 TCP 协议(protocol)。

第二,你是对的,游戏引擎也必须在服务器上运行并且服务器引擎时钟必须领先玩家引擎时钟(可能是 200/500 毫秒) 以验证和预测用户输入。

然后,当您收到输入时,您可以在输入被触发时验证输入(您的引擎已经过了那个游戏时间)并在接下来的 200/500 毫秒检查条件,从而可以根据需要协调客户端状态。

多人数据预测和同步困难看看已经可用的实现,如this或关于此特定主题的文章 this

注意:您会在 https://gamedev.stackexchange.com/ 中找到更多帮助

关于javascript - 如何在考虑服务器负载的同时制作多人 javascript 游戏作弊证明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55001150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com